add set permission endpoint and UI

This commit is contained in:
mgabor
2024-04-12 18:28:50 +02:00
parent 98f1d1517a
commit ac1c4e206e
18 changed files with 419 additions and 6 deletions

View File

@@ -264,6 +264,26 @@ export class AlbumService {
await this.albumPermissionRepository.delete(userId, id);
}
async setAlbumPermission(
auth: AuthDto,
id: string,
userId: string,
dto: Partial<AlbumPermissionEntity>,
): Promise<void> {
await this.access.requirePermission(auth, Permission.ALBUM_SHARE, id);
const album = await this.findOrFail(id, { withAssets: false });
const permission = album.albumPermissions.find(({ users: { id } }) => id === userId);
if (!permission) {
throw new BadRequestException('Album not shared with user');
}
console.log(userId, id, dto.readonly);
await this.albumPermissionRepository.update(userId, id, { readonly: dto.readonly });
}
private async findOrFail(id: string, options: AlbumInfoOptions) {
const album = await this.albumRepository.getById(id, options);
if (!album) {