feat(endpoints): copyOnMoveAccount
This commit is contained in:
parent
3ac98f2032
commit
4167a099c7
|
@ -13,6 +13,7 @@ import type { MiRole } from '@/models/Role.js';
|
||||||
import { bindThis } from '@/decorators.js';
|
import { bindThis } from '@/decorators.js';
|
||||||
import { DEFAULT_POLICIES } from '@/core/RoleService.js';
|
import { DEFAULT_POLICIES } from '@/core/RoleService.js';
|
||||||
import { IdService } from '@/core/IdService.js';
|
import { IdService } from '@/core/IdService.js';
|
||||||
|
import { Packed } from '@/misc/json-schema.js';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class RoleEntityService {
|
export class RoleEntityService {
|
||||||
|
@ -31,7 +32,7 @@ export class RoleEntityService {
|
||||||
public async pack(
|
public async pack(
|
||||||
src: MiRole['id'] | MiRole,
|
src: MiRole['id'] | MiRole,
|
||||||
me?: { id: MiUser['id'] } | null | undefined,
|
me?: { id: MiUser['id'] } | null | undefined,
|
||||||
) {
|
): Promise<Packed<'Role'>> {
|
||||||
const role = typeof src === 'object' ? src : await this.rolesRepository.findOneByOrFail({ id: src });
|
const role = typeof src === 'object' ? src : await this.rolesRepository.findOneByOrFail({ id: src });
|
||||||
|
|
||||||
const assignedCount = await this.roleAssignmentsRepository.createQueryBuilder('assign')
|
const assignedCount = await this.roleAssignmentsRepository.createQueryBuilder('assign')
|
||||||
|
@ -67,6 +68,7 @@ export class RoleEntityService {
|
||||||
isModerator: role.isModerator,
|
isModerator: role.isModerator,
|
||||||
isExplorable: role.isExplorable,
|
isExplorable: role.isExplorable,
|
||||||
asBadge: role.asBadge,
|
asBadge: role.asBadge,
|
||||||
|
copyOnMoveAccount: role.copyOnMoveAccount,
|
||||||
canEditMembersByModerator: role.canEditMembersByModerator,
|
canEditMembersByModerator: role.canEditMembersByModerator,
|
||||||
displayOrder: role.displayOrder,
|
displayOrder: role.displayOrder,
|
||||||
policies: policies,
|
policies: policies,
|
||||||
|
|
|
@ -389,6 +389,12 @@ export const packedRoleSchema = {
|
||||||
optional: false, nullable: false,
|
optional: false, nullable: false,
|
||||||
example: false,
|
example: false,
|
||||||
},
|
},
|
||||||
|
copyOnMoveAccount: {
|
||||||
|
type: 'boolean',
|
||||||
|
description: 'True if the role is going to be copied to dest account on account move.',
|
||||||
|
optional: false, nullable: false,
|
||||||
|
example: false,
|
||||||
|
},
|
||||||
canEditMembersByModerator: {
|
canEditMembersByModerator: {
|
||||||
type: 'boolean',
|
type: 'boolean',
|
||||||
optional: false, nullable: false,
|
optional: false, nullable: false,
|
||||||
|
|
|
@ -36,6 +36,7 @@ export const paramDef = {
|
||||||
isAdministrator: { type: 'boolean' },
|
isAdministrator: { type: 'boolean' },
|
||||||
isExplorable: { type: 'boolean', default: false }, // optional for backward compatibility
|
isExplorable: { type: 'boolean', default: false }, // optional for backward compatibility
|
||||||
asBadge: { type: 'boolean' },
|
asBadge: { type: 'boolean' },
|
||||||
|
copyOnMoveAccount: { type: 'boolean' },
|
||||||
canEditMembersByModerator: { type: 'boolean' },
|
canEditMembersByModerator: { type: 'boolean' },
|
||||||
displayOrder: { type: 'number' },
|
displayOrder: { type: 'number' },
|
||||||
policies: {
|
policies: {
|
||||||
|
|
|
@ -41,6 +41,7 @@ export const paramDef = {
|
||||||
isAdministrator: { type: 'boolean' },
|
isAdministrator: { type: 'boolean' },
|
||||||
isExplorable: { type: 'boolean' },
|
isExplorable: { type: 'boolean' },
|
||||||
asBadge: { type: 'boolean' },
|
asBadge: { type: 'boolean' },
|
||||||
|
copyOnMoveAccount: { type: 'boolean' },
|
||||||
canEditMembersByModerator: { type: 'boolean' },
|
canEditMembersByModerator: { type: 'boolean' },
|
||||||
displayOrder: { type: 'number' },
|
displayOrder: { type: 'number' },
|
||||||
policies: {
|
policies: {
|
||||||
|
@ -78,6 +79,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
|
||||||
isAdministrator: ps.isAdministrator,
|
isAdministrator: ps.isAdministrator,
|
||||||
isExplorable: ps.isExplorable,
|
isExplorable: ps.isExplorable,
|
||||||
asBadge: ps.asBadge,
|
asBadge: ps.asBadge,
|
||||||
|
copyOnMoveAccount: ps.copyOnMoveAccount,
|
||||||
canEditMembersByModerator: ps.canEditMembersByModerator,
|
canEditMembersByModerator: ps.canEditMembersByModerator,
|
||||||
displayOrder: ps.displayOrder,
|
displayOrder: ps.displayOrder,
|
||||||
policies: ps.policies,
|
policies: ps.policies,
|
||||||
|
|
|
@ -5132,6 +5132,11 @@ export type components = {
|
||||||
isExplorable: boolean;
|
isExplorable: boolean;
|
||||||
/** @example false */
|
/** @example false */
|
||||||
asBadge: boolean;
|
asBadge: boolean;
|
||||||
|
/**
|
||||||
|
* @description True if the role is going to be copied to dest account on account move.
|
||||||
|
* @example false
|
||||||
|
*/
|
||||||
|
copyOnMoveAccount: boolean;
|
||||||
/** @example false */
|
/** @example false */
|
||||||
canEditMembersByModerator: boolean;
|
canEditMembersByModerator: boolean;
|
||||||
policies: {
|
policies: {
|
||||||
|
@ -9347,6 +9352,7 @@ export type operations = {
|
||||||
/** @default false */
|
/** @default false */
|
||||||
isExplorable?: boolean;
|
isExplorable?: boolean;
|
||||||
asBadge: boolean;
|
asBadge: boolean;
|
||||||
|
copyOnMoveAccount?: boolean;
|
||||||
canEditMembersByModerator: boolean;
|
canEditMembersByModerator: boolean;
|
||||||
displayOrder: number;
|
displayOrder: number;
|
||||||
policies: Record<string, never>;
|
policies: Record<string, never>;
|
||||||
|
@ -9622,6 +9628,7 @@ export type operations = {
|
||||||
isAdministrator?: boolean;
|
isAdministrator?: boolean;
|
||||||
isExplorable?: boolean;
|
isExplorable?: boolean;
|
||||||
asBadge?: boolean;
|
asBadge?: boolean;
|
||||||
|
copyOnMoveAccount?: boolean;
|
||||||
canEditMembersByModerator?: boolean;
|
canEditMembersByModerator?: boolean;
|
||||||
displayOrder?: number;
|
displayOrder?: number;
|
||||||
policies?: Record<string, never>;
|
policies?: Record<string, never>;
|
||||||
|
|
Loading…
Reference in New Issue