From d631618fe06e0ca020404b84795af75c3960e337 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 22 Aug 2026 20:27:35 +0200 Subject: [PATCH] Add support to remove a received access on the access page --- apps/api/src/app/access/access.controller.ts | 5 ++++- .../access-table/access-table.component.html | 12 +++++++++--- .../access-table/access-table.component.ts | 5 ++++- .../user-account-access.component.ts | 9 +++++++-- .../user-account-access/user-account-access.html | 9 ++++++++- 5 files changed, 32 insertions(+), 8 deletions(-) diff --git a/apps/api/src/app/access/access.controller.ts b/apps/api/src/app/access/access.controller.ts index 0b8ae15ea..a2701dd0f 100644 --- a/apps/api/src/app/access/access.controller.ts +++ b/apps/api/src/app/access/access.controller.ts @@ -117,7 +117,10 @@ export class AccessController { public async deleteAccess(@Param('id') id: string): Promise { const originalAccess = await this.accessService.access({ id, - userId: this.request.user.id + OR: [ + { granteeUserId: this.request.user.id }, + { userId: this.request.user.id } + ] }); if (!originalAccess) { 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 4edaed42d..6dde5604c 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 @@ -61,7 +61,9 @@ class="no-max-width" xPosition="before" > - @if (user()?.settings?.isExperimentalFeatures) { + @if ( + !isReceivedAccess() && user()?.settings?.isExperimentalFeatures + ) { } @if ( - user()?.settings?.isExperimentalFeatures || + (!isReceivedAccess() && user()?.settings?.isExperimentalFeatures) || element.type === 'PUBLIC' ) {
@@ -86,7 +88,11 @@ diff --git a/apps/client/src/app/components/access-table/access-table.component.ts b/apps/client/src/app/components/access-table/access-table.component.ts index 900184110..7477ca138 100644 --- a/apps/client/src/app/components/access-table/access-table.component.ts +++ b/apps/client/src/app/components/access-table/access-table.component.ts @@ -52,6 +52,7 @@ import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; }) export class GfAccessTableComponent { public readonly accesses = input.required(); + public readonly isReceivedAccess = input(false); public readonly showActions = input(false); public readonly user = input.required(); @@ -119,7 +120,9 @@ export class GfAccessTableComponent { this.accessDeleted.emit(aId); }, confirmType: ConfirmationDialogType.Warn, - title: $localize`Do you really want to revoke this granted access?` + title: this.isReceivedAccess() + ? $localize`Do you really want to remove this received access?` + : $localize`Do you really want to revoke this granted access?` }); } diff --git a/apps/client/src/app/components/user-account-access/user-account-access.component.ts b/apps/client/src/app/components/user-account-access/user-account-access.component.ts index 57857803c..350d18bd8 100644 --- a/apps/client/src/app/components/user-account-access/user-account-access.component.ts +++ b/apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -36,7 +36,7 @@ import { addIcons } from 'ionicons'; import { addOutline, eyeOffOutline, eyeOutline } from 'ionicons/icons'; import { DeviceDetectorService } from 'ngx-device-detector'; import { EMPTY } from 'rxjs'; -import { catchError } from 'rxjs/operators'; +import { catchError, switchMap } from 'rxjs/operators'; import { GfCreateOrUpdateAccessDialogComponent } from './create-or-update-access-dialog/create-or-update-access-dialog.component'; import { CreateOrUpdateAccessDialogParams } from './create-or-update-access-dialog/interfaces/interfaces'; @@ -142,7 +142,12 @@ export class GfUserAccountAccessComponent implements OnInit { protected onDeleteAccess(aId: string) { this.dataService .deleteAccess(aId) - .pipe(takeUntilDestroyed(this.destroyRef)) + .pipe( + switchMap(() => { + return this.userService.get(true); + }), + takeUntilDestroyed(this.destroyRef) + ) .subscribe({ next: () => { this.update(); diff --git a/apps/client/src/app/components/user-account-access/user-account-access.html b/apps/client/src/app/components/user-account-access/user-account-access.html index 62b1648bb..8a733fee6 100644 --- a/apps/client/src/app/components/user-account-access/user-account-access.html +++ b/apps/client/src/app/components/user-account-access/user-account-access.html @@ -53,7 +53,14 @@
@if (accessesGet.length > 0) {

Received Access

- + }

Granted Access