diff --git a/apps/red-ui/src/app/services/entity-permissions/entity-permissions.service.ts b/apps/red-ui/src/app/services/entity-permissions/entity-permissions.service.ts index f753cd5c0..fbbf8b771 100644 --- a/apps/red-ui/src/app/services/entity-permissions/entity-permissions.service.ts +++ b/apps/red-ui/src/app/services/entity-permissions/entity-permissions.service.ts @@ -6,14 +6,15 @@ import { switchMap, tap } from 'rxjs/operators'; import { PermissionsConfigurationMapService } from './permissions-configuration-map.service'; import { PermissionsMapService } from './permissions-map.service'; import { mapEach } from '@iqser/common-ui/lib/utils'; +import { pick } from 'lodash-es'; @Injectable({ providedIn: 'root', }) export class EntityPermissionsService extends GenericService { + protected readonly _defaultModelPath = 'permissions'; readonly #permissionsConfigurationMapService = inject(PermissionsConfigurationMapService); readonly #permissionsMapService = inject(PermissionsMapService); - protected readonly _defaultModelPath = 'permissions'; loadConfigFor(targetObject: string): Observable { return this._http.get(`/${this._serviceName}/${this._defaultModelPath}/${targetObject}/mapping`).pipe( @@ -35,7 +36,9 @@ export class EntityPermissionsService extends GenericService { const config = this.#permissionsConfigurationMapService.get(targetObject); const targetPermissionConfig = config.find(p => p.searchKey === targetPermission); - const permissions = this.#permissionsMapService.get(targetObject); + const permissions: IPermissionsMapping[] = this.#permissionsMapService + .get(targetObject) + .map(p => pick(p, ['targetPermission', 'mappedPermissions'])); const currentTargetPermissionValues = this.#permissionsMapService.get(targetObject, targetPermission); const index = currentTargetPermissionValues.mappedPermissions.findIndex(p => p.name === changedPermission); if (index !== -1) {