mirror of
https://github.com/HangarMC/Hangar.git
synced 2025-01-30 14:30:08 +08:00
also hide hidden members on org page
Signed-off-by: MiniDigger <admin@benndorf.dev>
This commit is contained in:
parent
a774a8acdd
commit
c4fb6df2e7
@ -53,6 +53,7 @@
|
||||
<span v-if="!member.editing" class="flex-right">
|
||||
<span v-if="member.roleAccepted">{{ member.roleTitle }}</span>
|
||||
<span v-else>{{ $t('form.memberList.invitedAs', [member.roleTitle]) }}</span>
|
||||
<span v-if="member.hidden">Hidden: {{ member.hidden }}</span>
|
||||
</span>
|
||||
<v-select
|
||||
v-else
|
||||
@ -109,6 +110,7 @@
|
||||
</v-autocomplete>
|
||||
</v-list-item>
|
||||
</template>
|
||||
<template v-if="!members || members.length === 0"> {{ $t('project.noPublicMembers') }} </template>
|
||||
</v-list>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
@ -131,6 +133,7 @@ interface EditableMember {
|
||||
editing: boolean;
|
||||
toDelete: boolean;
|
||||
new: boolean;
|
||||
hidden: boolean;
|
||||
}
|
||||
|
||||
@Component({
|
||||
@ -188,6 +191,7 @@ export default class MemberList extends HangarComponent {
|
||||
editing: false,
|
||||
toDelete: false,
|
||||
new: false,
|
||||
hidden: jm.hidden,
|
||||
}));
|
||||
}
|
||||
|
||||
@ -223,6 +227,7 @@ export default class MemberList extends HangarComponent {
|
||||
editing: true,
|
||||
roleAssignable: true,
|
||||
toDelete: false,
|
||||
hidden: false,
|
||||
});
|
||||
this.selectedUser = null;
|
||||
}
|
||||
|
@ -95,6 +95,7 @@ export default {
|
||||
watchers: 'Watchers',
|
||||
noWatchers: 'There are no watchers on this project yet 😢',
|
||||
members: 'Members',
|
||||
noPublicMembers: 'There are no public members.',
|
||||
category: {
|
||||
info: 'Category',
|
||||
admin_tools: 'Admin Tools',
|
||||
|
1
frontend/types/internal/users.d.ts
vendored
1
frontend/types/internal/users.d.ts
vendored
@ -60,6 +60,7 @@ declare module 'hangar-internal' {
|
||||
interface JoinableMember {
|
||||
user: UserTable;
|
||||
role: RoleTable;
|
||||
hidden: boolean;
|
||||
}
|
||||
|
||||
interface Joinable {
|
||||
|
@ -26,9 +26,11 @@ public interface HangarOrganizationsDAO {
|
||||
" uor.user_id uor_user_id," +
|
||||
" uor.role_type uor_role_type," +
|
||||
" uor.organization_id uor_organization_id," +
|
||||
" uor.accepted uor_accepted" +
|
||||
" uor.accepted uor_accepted," +
|
||||
" om.hidden hidden" +
|
||||
" FROM user_organization_roles uor" +
|
||||
" JOIN users u ON uor.user_id = u.id" +
|
||||
" WHERE uor.organization_id = :orgId <if(!canSeePending)>AND (uor.accepted IS TRUE OR uor.user_id = :userId)<endif>")
|
||||
" LEFT JOIN organization_members om ON om.user_id = u.id" +
|
||||
" WHERE uor.organization_id = :orgId <if(!canSeePending)>AND (uor.accepted IS TRUE OR uor.user_id = :userId) AND (om.hidden IS FALSE OR uor.user_id = :userId)<endif>")
|
||||
List<JoinableMember<OrganizationRoleTable>> getOrganizationMembers(long orgId, Long userId, @Define boolean canSeePending);
|
||||
}
|
||||
|
@ -11,6 +11,8 @@ import org.jdbi.v3.core.mapper.RowMapperFactory;
|
||||
import org.jdbi.v3.core.mapper.RowMappers;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Optional;
|
||||
|
||||
public class JoinableRowMapperFactory implements RowMapperFactory {
|
||||
@ -32,9 +34,15 @@ public class JoinableRowMapperFactory implements RowMapperFactory {
|
||||
RowMapper<? extends ExtendedRoleTable<?, ?>> tableMapper = rowMappers.findFor(extendedRoleTableType).orElseThrow(() -> new NoSuchMapperException("Could not find mapper for " + tableType.getTypeName()));
|
||||
RowMapper<UserTable> userTableMapper = rowMappers.findFor(UserTable.class).orElseThrow(() -> new NoSuchMapperException("Could not find mapper for " + UserTable.class.getTypeName()));
|
||||
|
||||
|
||||
|
||||
RowMapper<JoinableMember<?>> mapper = (rs, ctx) -> new JoinableMember<>(tableMapper.map(rs, ctx), userTableMapper.map(rs, ctx));
|
||||
RowMapper<JoinableMember<?>> mapper = (rs, ctx) -> new JoinableMember<>(tableMapper.map(rs, ctx), userTableMapper.map(rs, ctx), getOrFalse(rs, "hidden"));
|
||||
return Optional.of(mapper);
|
||||
}
|
||||
|
||||
private boolean getOrFalse(ResultSet rs, String col) {
|
||||
try {
|
||||
return rs.getBoolean(col);
|
||||
} catch (SQLException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,10 +8,12 @@ public class JoinableMember<R extends ExtendedRoleTable<?, ?>> {
|
||||
|
||||
private final R role;
|
||||
private final UserTable user;
|
||||
private final boolean hidden;
|
||||
|
||||
public JoinableMember(@Nested R role, UserTable user) {
|
||||
public JoinableMember(@Nested R role, UserTable user, boolean hidden) {
|
||||
this.role = role;
|
||||
this.user = user;
|
||||
this.hidden = hidden;
|
||||
}
|
||||
|
||||
public R getRole() {
|
||||
@ -22,11 +24,16 @@ public class JoinableMember<R extends ExtendedRoleTable<?, ?>> {
|
||||
return user;
|
||||
}
|
||||
|
||||
public boolean isHidden() {
|
||||
return hidden;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "JoinableMember{" +
|
||||
"role=" + role +
|
||||
", user=" + user +
|
||||
", hidden=" + hidden +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user