diff --git a/npm/ng-packs/packages/permission-management/src/lib/actions/permission-management.actions.ts b/npm/ng-packs/packages/permission-management/src/lib/actions/permission-management.actions.ts index 2c21561a5c..c522ab4c6e 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/actions/permission-management.actions.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/actions/permission-management.actions.ts @@ -1,12 +1,11 @@ -import { PermissionManagement } from '../models/permission-management'; -import { UpdatePermissionsDto } from '../proxy/models'; +import { ProviderInfoDto, UpdatePermissionsDto } from '../proxy/models'; export class GetPermissions { static readonly type = '[PermissionManagement] Get Permissions'; - constructor(public payload: PermissionManagement.GrantedProvider) {} + constructor(public payload: ProviderInfoDto) {} } export class UpdatePermissions { static readonly type = '[PermissionManagement] Update Permissions'; - constructor(public payload: PermissionManagement.GrantedProvider & UpdatePermissionsDto) {} + constructor(public payload: ProviderInfoDto & UpdatePermissionsDto) {} } diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts index 8ee4fa113c..5b4623aeed 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts @@ -4,16 +4,22 @@ import { ConfigStateService, } from '@abp/ng.core'; import { LocaleDirection } from '@abp/ng.theme.shared'; -import { Component, EventEmitter, Input, Output, Renderer2, TrackByFunction } from '@angular/core'; +import { Component, EventEmitter, Input, Output, TrackByFunction } from '@angular/core'; import { Select, Store } from '@ngxs/store'; import { Observable, of } from 'rxjs'; import { finalize, map, pluck, switchMap, take, tap } from 'rxjs/operators'; import { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions'; import { PermissionManagement } from '../models/permission-management'; -import { UpdatePermissionDto } from '../proxy/models'; +import { + GetPermissionListResultDto, + PermissionGrantInfoDto, + PermissionGroupDto, + ProviderInfoDto, + UpdatePermissionDto, +} from '../proxy/models'; import { PermissionManagementState } from '../states/permission-management.state'; -type PermissionWithStyle = PermissionManagement.Permission & { +type PermissionWithStyle = PermissionGrantInfoDto & { style: string; }; @@ -68,14 +74,14 @@ export class PermissionManagementComponent @Output() readonly visibleChange = new EventEmitter(); @Select(PermissionManagementState.getPermissionGroups) - groups$: Observable; + groups$: Observable; @Select(PermissionManagementState.getEntityDisplayName) entityName$: Observable; - selectedGroup: PermissionManagement.Group; + selectedGroup: PermissionGroupDto; - permissions: PermissionManagement.Permission[] = []; + permissions: PermissionGrantInfoDto[] = []; selectThisTab = false; @@ -83,7 +89,7 @@ export class PermissionManagementComponent modalBusy = false; - trackByFn: TrackByFunction = (_, item) => item.name; + trackByFn: TrackByFunction = (_, item) => item.name; get selectedGroupPermissions$(): Observable { const margin = `margin-${ @@ -96,7 +102,7 @@ export class PermissionManagementComponent ? groups.find(group => group.name === this.selectedGroup.name).permissions : [], ), - map(permissions => + map(permissions => permissions.map( permission => (({ @@ -119,14 +125,14 @@ export class PermissionManagementComponent return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted; } - isGrantedByOtherProviderName(grantedProviders: PermissionManagement.GrantedProvider[]): boolean { + isGrantedByOtherProviderName(grantedProviders: ProviderInfoDto[]): boolean { if (grantedProviders.length) { return grantedProviders.findIndex(p => p.providerName !== this.providerName) > -1; } return false; } - onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) { + onClickCheckbox(clickedPermission: PermissionGrantInfoDto, value) { if ( clickedPermission.isGranted && this.isGrantedByOtherProviderName(clickedPermission.grantedProviders) @@ -212,7 +218,7 @@ export class PermissionManagementComponent this.selectThisTab = !this.selectAllTab; } - onChangeGroup(group: PermissionManagement.Group) { + onChangeGroup(group: PermissionGroupDto) { this.selectedGroup = group; this.setTabCheckboxState(); } @@ -274,7 +280,7 @@ export class PermissionManagementComponent ) .pipe( pluck('PermissionManagementState', 'permissionRes'), - tap((permissionRes: PermissionManagement.Response) => { + tap((permissionRes: GetPermissionListResultDto) => { this.selectedGroup = permissionRes.groups[0]; this.permissions = getPermissions(permissionRes.groups); }), @@ -306,10 +312,7 @@ export class PermissionManagementComponent } } -function findMargin( - permissions: PermissionManagement.Permission[], - permission: PermissionManagement.Permission, -) { +function findMargin(permissions: PermissionGrantInfoDto[], permission: PermissionGrantInfoDto) { const parentPermission = permissions.find(per => per.name === permission.parentName); if (parentPermission && parentPermission.parentName) { @@ -320,6 +323,6 @@ function findMargin( return parentPermission ? 20 : 0; } -function getPermissions(groups: PermissionManagement.Group[]): PermissionManagement.Permission[] { +function getPermissions(groups: PermissionGroupDto[]): PermissionGrantInfoDto[] { return groups.reduce((acc, val) => [...acc, ...val.permissions], []); } diff --git a/npm/ng-packs/packages/permission-management/src/lib/models/permission-management.ts b/npm/ng-packs/packages/permission-management/src/lib/models/permission-management.ts index 831fc30523..2202d14b48 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/models/permission-management.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/models/permission-management.ts @@ -1,55 +1,9 @@ import { EventEmitter } from '@angular/core'; +import { GetPermissionListResultDto } from '../proxy/models'; export namespace PermissionManagement { export interface State { - permissionRes: Response; - } - - /** - * @deprecated To be deleted in v4.0. - */ - export interface Response { - entityDisplayName: string; - groups: Group[]; - } - - /** - * @deprecated To be deleted in v4.0. - */ - export interface Group { - name: string; - displayName: string; - permissions: Permission[]; - } - - /** - * @deprecated To be deleted in v4.0. - */ - export interface MinimumPermission { - name: string; - isGranted: boolean; - } - - /** - * @deprecated To be deleted in v4.0. - */ - export interface Permission extends MinimumPermission { - displayName: string; - parentName: string; - allowedProviders: string[]; - grantedProviders: GrantedProvider[]; - } - - export interface GrantedProvider { - providerName: string; - providerKey: string; - } - - /** - * @deprecated To be deleted in v4.0. - */ - export interface UpdateRequest { - permissions: MinimumPermission[]; + permissionRes: GetPermissionListResultDto; } export interface PermissionManagementComponentInputs { diff --git a/npm/ng-packs/packages/permission-management/src/lib/services/index.ts b/npm/ng-packs/packages/permission-management/src/lib/services/index.ts index 8ac3c56f61..1304994db1 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/services/index.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/services/index.ts @@ -1,2 +1 @@ -export * from './permission-management.service'; export * from './permission-management-state.service'; diff --git a/npm/ng-packs/packages/permission-management/src/lib/services/permission-management.service.ts b/npm/ng-packs/packages/permission-management/src/lib/services/permission-management.service.ts deleted file mode 100644 index 4825036f81..0000000000 --- a/npm/ng-packs/packages/permission-management/src/lib/services/permission-management.service.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { Injectable } from '@angular/core'; -import { RestService, Rest } from '@abp/ng.core'; -import { Observable } from 'rxjs'; -import { PermissionManagement } from '../models/permission-management'; - -@Injectable({ - providedIn: 'root', -}) -export class PermissionManagementService { - apiName = 'AbpPermissionManagement'; - - constructor(private rest: RestService) {} - - getPermissions( - params: PermissionManagement.GrantedProvider, - ): Observable { - const request: Rest.Request = { - method: 'GET', - url: '/api/permission-management/permissions', - params, - }; - - return this.rest.request( - request, - { apiName: this.apiName }, - ); - } - - updatePermissions({ - permissions, - providerKey, - providerName, - }: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest): Observable { - const request: Rest.Request = { - method: 'PUT', - url: '/api/permission-management/permissions', - body: { permissions }, - params: { providerKey, providerName }, - }; - - return this.rest.request(request, { - apiName: this.apiName, - }); - } -} diff --git a/npm/ng-packs/packages/permission-management/src/lib/states/permission-management.state.ts b/npm/ng-packs/packages/permission-management/src/lib/states/permission-management.state.ts index 0a7f7830a8..e6952f091b 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/states/permission-management.state.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/states/permission-management.state.ts @@ -3,6 +3,7 @@ import { Action, Selector, State, StateContext } from '@ngxs/store'; import { tap } from 'rxjs/operators'; import { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions'; import { PermissionManagement } from '../models/permission-management'; +import { ProviderInfoDto } from '../proxy/models'; import { PermissionsService } from '../proxy/permissions.service'; @State({ @@ -26,9 +27,7 @@ export class PermissionManagementState { @Action(GetPermissions) permissionManagementGet( { patchState }: StateContext, - { - payload: { providerKey, providerName } = {} as PermissionManagement.GrantedProvider, - }: GetPermissions, + { payload: { providerKey, providerName } = {} as ProviderInfoDto }: GetPermissions, ) { return this.service.get(providerName, providerKey).pipe( tap(permissionResponse =>