hedgedoc/src/notes/note-permissions.dto.ts
David Mehren ea217b3613
Adapt permission DTOs for group permissions
Signed-off-by: David Mehren <git@herrmehren.de>
2020-08-20 19:43:10 +02:00

47 lines
948 B
TypeScript

import { IsArray, IsBoolean, IsString, ValidateNested } from 'class-validator';
import { UserInfoDto } from '../users/user-info.dto';
export class NoteUserPermissionEntryDto {
@ValidateNested()
user: UserInfoDto;
@IsBoolean()
canEdit: boolean;
}
export class NotePermissionEntryUpdateDto {
@IsString()
username: string;
@IsBoolean()
canEdit: boolean;
}
export class GroupInfoDto {
@IsString()
id: string
@IsString()
displayName: string
}
export class NoteGroupPermissionEntryDto {
@ValidateNested()
group: GroupInfoDto
@IsBoolean()
canEdit: boolean
}
export class NotePermissionsDto {
@ValidateNested()
owner: UserInfoDto;
@ValidateNested()
@IsArray()
sharedToUsers: NoteUserPermissionEntryDto[];
@ValidateNested()
@IsArray()
sharedToGroups: NoteGroupPermissionEntryDto[];
}
export class NotePermissionsUpdateDto {
@IsArray()
@ValidateNested()
sharedTo: NotePermissionEntryUpdateDto[];
}