77 lines
1.3 KiB
TypeScript
77 lines
1.3 KiB
TypeScript
import { Transform } from 'class-transformer';
|
|
import { IsArray, IsBoolean, IsEmail, IsEnum, IsOptional, IsString, IsUUID, MinLength } from 'class-validator';
|
|
import { AdminRole } from './admin-role';
|
|
|
|
export class ListAdminsQuery {
|
|
@IsOptional()
|
|
@IsString()
|
|
page?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
limit?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
keyword?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
role?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
state?: string;
|
|
}
|
|
|
|
export class CreateAdminDto {
|
|
@Transform(({ value }) => typeof value === 'string' ? value.trim().toLowerCase() : value)
|
|
@IsEmail()
|
|
email!: string;
|
|
|
|
@IsString()
|
|
name!: string;
|
|
|
|
@IsEnum(AdminRole)
|
|
role!: AdminRole;
|
|
|
|
@IsString()
|
|
@MinLength(8)
|
|
temporaryPassword!: string;
|
|
}
|
|
|
|
export class UpdateAdminStatusDto {
|
|
@IsBoolean()
|
|
isActive!: boolean;
|
|
}
|
|
|
|
export class UpdateAdminRoleDto {
|
|
@IsEnum(AdminRole)
|
|
role!: AdminRole;
|
|
}
|
|
|
|
export class ResetAdminPasswordDto {
|
|
@IsString()
|
|
@MinLength(8)
|
|
temporaryPassword!: string;
|
|
}
|
|
|
|
export class CreateAdminSshKeyDto {
|
|
@IsOptional()
|
|
@IsString()
|
|
label?: string;
|
|
|
|
@IsString()
|
|
publicKey!: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
giteaUsername?: string;
|
|
}
|
|
|
|
export class UpdateAdminAppPermissionsDto {
|
|
@IsArray()
|
|
@IsUUID('4', { each: true })
|
|
appIds!: string[];
|
|
}
|