From ae6f5b625549813455c555f85b10b44b0567ce47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Mart=C3=ADn?= Date: Sun, 5 Oct 2025 22:47:00 +0200 Subject: [PATCH] Refactor access management: reorder parameters, enhance validation, and improve dialog handling --- apps/api/src/app/access/access.controller.ts | 4 +- apps/api/src/app/access/access.service.ts | 12 +++--- apps/api/src/app/access/update-access.dto.ts | 6 +-- .../access-table/access-table.component.html | 1 + ...reate-or-update-access-dialog.component.ts | 39 +++++++++---------- .../user-account-access.component.ts | 30 +++++++------- libs/common/src/lib/permissions.ts | 2 +- 7 files changed, 47 insertions(+), 47 deletions(-) diff --git a/apps/api/src/app/access/access.controller.ts b/apps/api/src/app/access/access.controller.ts index 836bd49c0..177191a6e 100644 --- a/apps/api/src/app/access/access.controller.ts +++ b/apps/api/src/app/access/access.controller.ts @@ -129,8 +129,8 @@ export class AccessController { @Put(':id') @UseGuards(AuthGuard('jwt'), HasPermissionGuard) public async updateAccess( - @Param('id') id: string, - @Body() data: UpdateAccessDto + @Body() data: UpdateAccessDto, + @Param('id') id: string ): Promise { if ( this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION') && diff --git a/apps/api/src/app/access/access.service.ts b/apps/api/src/app/access/access.service.ts index 4c4534811..70e46dc36 100644 --- a/apps/api/src/app/access/access.service.ts +++ b/apps/api/src/app/access/access.service.ts @@ -20,16 +20,14 @@ export class AccessService { } public async accesses(params: { + cursor?: Prisma.AccessWhereUniqueInput; include?: Prisma.AccessInclude; + orderBy?: Prisma.Enumerable; skip?: number; take?: number; - cursor?: Prisma.AccessWhereUniqueInput; where?: Prisma.AccessWhereInput; - orderBy?: - | Prisma.AccessOrderByWithRelationInput - | Prisma.AccessOrderByWithRelationInput[]; }): Promise { - const { include, skip, take, cursor, where, orderBy } = params; + const { cursor, include, orderBy, skip, take, where } = params; return this.prismaService.access.findMany({ cursor, @@ -63,8 +61,8 @@ export class AccessService { where: Prisma.AccessWhereUniqueInput; }): Promise { return this.prismaService.access.update({ - where, - data + data, + where }); } } diff --git a/apps/api/src/app/access/update-access.dto.ts b/apps/api/src/app/access/update-access.dto.ts index 26b6df687..2850186f9 100644 --- a/apps/api/src/app/access/update-access.dto.ts +++ b/apps/api/src/app/access/update-access.dto.ts @@ -2,9 +2,6 @@ import { AccessPermission } from '@prisma/client'; import { IsEnum, IsOptional, IsString, IsUUID } from 'class-validator'; export class UpdateAccessDto { - @IsString() - id: string; - @IsOptional() @IsString() alias?: string; @@ -13,6 +10,9 @@ export class UpdateAccessDto { @IsUUID() granteeUserId?: string; + @IsString() + id: string; + @IsEnum(AccessPermission, { each: true }) @IsOptional() permissions?: AccessPermission[]; diff --git a/apps/client/src/app/components/access-table/access-table.component.html b/apps/client/src/app/components/access-table/access-table.component.html index ded172acd..b7001782a 100644 --- a/apps/client/src/app/components/access-table/access-table.component.html +++ b/apps/client/src/app/components/access-table/access-table.component.html @@ -72,6 +72,7 @@ Edit +
} @if (element.type === 'PUBLIC') {