ロールのユーザーリストを非公開にできるように (#10987)
* ロールのユーザーリストを非公開にできるように * Changelog update
This commit is contained in:
11
packages/backend/migration/1686381571997-roleuserhidden.js
Normal file
11
packages/backend/migration/1686381571997-roleuserhidden.js
Normal file
@@ -0,0 +1,11 @@
|
||||
export class roleuserhidden1686381571997 {
|
||||
name = 'roleuserhidden1686381571997'
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "role" ADD "isPublicUsers" boolean NOT NULL DEFAULT true`);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "role" DROP COLUMN "isPublicUsers"`);
|
||||
}
|
||||
}
|
@@ -167,6 +167,11 @@ export class Role {
|
||||
})
|
||||
public displayOrder: number;
|
||||
|
||||
@Column('boolean', {
|
||||
default: true,
|
||||
})
|
||||
public isPublicUsers: boolean;
|
||||
|
||||
@Column('jsonb', {
|
||||
default: { },
|
||||
})
|
||||
|
@@ -26,6 +26,7 @@ export const paramDef = {
|
||||
isModerator: { type: 'boolean' },
|
||||
isAdministrator: { type: 'boolean' },
|
||||
isExplorable: { type: 'boolean', default: false }, // optional for backward compatibility
|
||||
isPublicUsers: { type: 'boolean', default: true }, // optional for backward compatibility
|
||||
asBadge: { type: 'boolean' },
|
||||
canEditMembersByModerator: { type: 'boolean' },
|
||||
displayOrder: { type: 'number' },
|
||||
@@ -78,6 +79,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||
isAdministrator: ps.isAdministrator,
|
||||
isModerator: ps.isModerator,
|
||||
isExplorable: ps.isExplorable,
|
||||
isPublicUsers: ps.isPublicUsers,
|
||||
asBadge: ps.asBadge,
|
||||
canEditMembersByModerator: ps.canEditMembersByModerator,
|
||||
displayOrder: ps.displayOrder,
|
||||
|
@@ -34,6 +34,7 @@ export const paramDef = {
|
||||
isModerator: { type: 'boolean' },
|
||||
isAdministrator: { type: 'boolean' },
|
||||
isExplorable: { type: 'boolean' },
|
||||
isPublicUsers: { type: 'boolean' },
|
||||
asBadge: { type: 'boolean' },
|
||||
canEditMembersByModerator: { type: 'boolean' },
|
||||
displayOrder: { type: 'number' },
|
||||
@@ -87,6 +88,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||
isModerator: ps.isModerator,
|
||||
isAdministrator: ps.isAdministrator,
|
||||
isExplorable: ps.isExplorable,
|
||||
isPublicUsers: ps.isPublicUsers,
|
||||
asBadge: ps.asBadge,
|
||||
canEditMembersByModerator: ps.canEditMembersByModerator,
|
||||
displayOrder: ps.displayOrder,
|
||||
|
@@ -54,6 +54,9 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||
if (role == null) {
|
||||
throw new ApiError(meta.errors.noSuchRole);
|
||||
}
|
||||
if (!role.isPublicUsers) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const query = this.queryService.makePaginationQuery(this.roleAssignmentsRepository.createQueryBuilder('assign'), ps.sinceId, ps.untilId)
|
||||
.andWhere('assign.roleId = :roleId', { roleId: role.id })
|
||||
|
Reference in New Issue
Block a user