Browse Source

chore: remove legacy permission management types and service

pull/6169/head
Arman Ozak 6 years ago
parent
commit
d8a6f24c7a
  1. 7
      npm/ng-packs/packages/permission-management/src/lib/actions/permission-management.actions.ts
  2. 37
      npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts
  3. 50
      npm/ng-packs/packages/permission-management/src/lib/models/permission-management.ts
  4. 1
      npm/ng-packs/packages/permission-management/src/lib/services/index.ts
  5. 45
      npm/ng-packs/packages/permission-management/src/lib/services/permission-management.service.ts
  6. 5
      npm/ng-packs/packages/permission-management/src/lib/states/permission-management.state.ts

7
npm/ng-packs/packages/permission-management/src/lib/actions/permission-management.actions.ts

@ -1,12 +1,11 @@
import { PermissionManagement } from '../models/permission-management'; import { ProviderInfoDto, UpdatePermissionsDto } from '../proxy/models';
import { UpdatePermissionsDto } from '../proxy/models';
export class GetPermissions { export class GetPermissions {
static readonly type = '[PermissionManagement] Get Permissions'; static readonly type = '[PermissionManagement] Get Permissions';
constructor(public payload: PermissionManagement.GrantedProvider) {} constructor(public payload: ProviderInfoDto) {}
} }
export class UpdatePermissions { export class UpdatePermissions {
static readonly type = '[PermissionManagement] Update Permissions'; static readonly type = '[PermissionManagement] Update Permissions';
constructor(public payload: PermissionManagement.GrantedProvider & UpdatePermissionsDto) {} constructor(public payload: ProviderInfoDto & UpdatePermissionsDto) {}
} }

37
npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts

@ -4,16 +4,22 @@ import {
ConfigStateService, ConfigStateService,
} from '@abp/ng.core'; } from '@abp/ng.core';
import { LocaleDirection } from '@abp/ng.theme.shared'; 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 { Select, Store } from '@ngxs/store';
import { Observable, of } from 'rxjs'; import { Observable, of } from 'rxjs';
import { finalize, map, pluck, switchMap, take, tap } from 'rxjs/operators'; import { finalize, map, pluck, switchMap, take, tap } from 'rxjs/operators';
import { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions'; import { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';
import { PermissionManagement } from '../models/permission-management'; 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'; import { PermissionManagementState } from '../states/permission-management.state';
type PermissionWithStyle = PermissionManagement.Permission & { type PermissionWithStyle = PermissionGrantInfoDto & {
style: string; style: string;
}; };
@ -68,14 +74,14 @@ export class PermissionManagementComponent
@Output() readonly visibleChange = new EventEmitter<boolean>(); @Output() readonly visibleChange = new EventEmitter<boolean>();
@Select(PermissionManagementState.getPermissionGroups) @Select(PermissionManagementState.getPermissionGroups)
groups$: Observable<PermissionManagement.Group[]>; groups$: Observable<PermissionGroupDto[]>;
@Select(PermissionManagementState.getEntityDisplayName) @Select(PermissionManagementState.getEntityDisplayName)
entityName$: Observable<string>; entityName$: Observable<string>;
selectedGroup: PermissionManagement.Group; selectedGroup: PermissionGroupDto;
permissions: PermissionManagement.Permission[] = []; permissions: PermissionGrantInfoDto[] = [];
selectThisTab = false; selectThisTab = false;
@ -83,7 +89,7 @@ export class PermissionManagementComponent
modalBusy = false; modalBusy = false;
trackByFn: TrackByFunction<PermissionManagement.Group> = (_, item) => item.name; trackByFn: TrackByFunction<PermissionGroupDto> = (_, item) => item.name;
get selectedGroupPermissions$(): Observable<PermissionWithStyle[]> { get selectedGroupPermissions$(): Observable<PermissionWithStyle[]> {
const margin = `margin-${ const margin = `margin-${
@ -96,7 +102,7 @@ export class PermissionManagementComponent
? groups.find(group => group.name === this.selectedGroup.name).permissions ? groups.find(group => group.name === this.selectedGroup.name).permissions
: [], : [],
), ),
map<PermissionManagement.Permission[], PermissionWithStyle[]>(permissions => map<PermissionGrantInfoDto[], PermissionWithStyle[]>(permissions =>
permissions.map( permissions.map(
permission => permission =>
(({ (({
@ -119,14 +125,14 @@ export class PermissionManagementComponent
return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted; return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;
} }
isGrantedByOtherProviderName(grantedProviders: PermissionManagement.GrantedProvider[]): boolean { isGrantedByOtherProviderName(grantedProviders: ProviderInfoDto[]): boolean {
if (grantedProviders.length) { if (grantedProviders.length) {
return grantedProviders.findIndex(p => p.providerName !== this.providerName) > -1; return grantedProviders.findIndex(p => p.providerName !== this.providerName) > -1;
} }
return false; return false;
} }
onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) { onClickCheckbox(clickedPermission: PermissionGrantInfoDto, value) {
if ( if (
clickedPermission.isGranted && clickedPermission.isGranted &&
this.isGrantedByOtherProviderName(clickedPermission.grantedProviders) this.isGrantedByOtherProviderName(clickedPermission.grantedProviders)
@ -212,7 +218,7 @@ export class PermissionManagementComponent
this.selectThisTab = !this.selectAllTab; this.selectThisTab = !this.selectAllTab;
} }
onChangeGroup(group: PermissionManagement.Group) { onChangeGroup(group: PermissionGroupDto) {
this.selectedGroup = group; this.selectedGroup = group;
this.setTabCheckboxState(); this.setTabCheckboxState();
} }
@ -274,7 +280,7 @@ export class PermissionManagementComponent
) )
.pipe( .pipe(
pluck('PermissionManagementState', 'permissionRes'), pluck('PermissionManagementState', 'permissionRes'),
tap((permissionRes: PermissionManagement.Response) => { tap((permissionRes: GetPermissionListResultDto) => {
this.selectedGroup = permissionRes.groups[0]; this.selectedGroup = permissionRes.groups[0];
this.permissions = getPermissions(permissionRes.groups); this.permissions = getPermissions(permissionRes.groups);
}), }),
@ -306,10 +312,7 @@ export class PermissionManagementComponent
} }
} }
function findMargin( function findMargin(permissions: PermissionGrantInfoDto[], permission: PermissionGrantInfoDto) {
permissions: PermissionManagement.Permission[],
permission: PermissionManagement.Permission,
) {
const parentPermission = permissions.find(per => per.name === permission.parentName); const parentPermission = permissions.find(per => per.name === permission.parentName);
if (parentPermission && parentPermission.parentName) { if (parentPermission && parentPermission.parentName) {
@ -320,6 +323,6 @@ function findMargin(
return parentPermission ? 20 : 0; return parentPermission ? 20 : 0;
} }
function getPermissions(groups: PermissionManagement.Group[]): PermissionManagement.Permission[] { function getPermissions(groups: PermissionGroupDto[]): PermissionGrantInfoDto[] {
return groups.reduce((acc, val) => [...acc, ...val.permissions], []); return groups.reduce((acc, val) => [...acc, ...val.permissions], []);
} }

50
npm/ng-packs/packages/permission-management/src/lib/models/permission-management.ts

@ -1,55 +1,9 @@
import { EventEmitter } from '@angular/core'; import { EventEmitter } from '@angular/core';
import { GetPermissionListResultDto } from '../proxy/models';
export namespace PermissionManagement { export namespace PermissionManagement {
export interface State { export interface State {
permissionRes: Response; permissionRes: GetPermissionListResultDto;
}
/**
* @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[];
} }
export interface PermissionManagementComponentInputs { export interface PermissionManagementComponentInputs {

1
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'; export * from './permission-management-state.service';

45
npm/ng-packs/packages/permission-management/src/lib/services/permission-management.service.ts

@ -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<PermissionManagement.Response> {
const request: Rest.Request<PermissionManagement.GrantedProvider> = {
method: 'GET',
url: '/api/permission-management/permissions',
params,
};
return this.rest.request<PermissionManagement.GrantedProvider, PermissionManagement.Response>(
request,
{ apiName: this.apiName },
);
}
updatePermissions({
permissions,
providerKey,
providerName,
}: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest): Observable<null> {
const request: Rest.Request<PermissionManagement.UpdateRequest> = {
method: 'PUT',
url: '/api/permission-management/permissions',
body: { permissions },
params: { providerKey, providerName },
};
return this.rest.request<PermissionManagement.UpdateRequest, null>(request, {
apiName: this.apiName,
});
}
}

5
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 { tap } from 'rxjs/operators';
import { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions'; import { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';
import { PermissionManagement } from '../models/permission-management'; import { PermissionManagement } from '../models/permission-management';
import { ProviderInfoDto } from '../proxy/models';
import { PermissionsService } from '../proxy/permissions.service'; import { PermissionsService } from '../proxy/permissions.service';
@State<PermissionManagement.State>({ @State<PermissionManagement.State>({
@ -26,9 +27,7 @@ export class PermissionManagementState {
@Action(GetPermissions) @Action(GetPermissions)
permissionManagementGet( permissionManagementGet(
{ patchState }: StateContext<PermissionManagement.State>, { patchState }: StateContext<PermissionManagement.State>,
{ { payload: { providerKey, providerName } = {} as ProviderInfoDto }: GetPermissions,
payload: { providerKey, providerName } = {} as PermissionManagement.GrantedProvider,
}: GetPermissions,
) { ) {
return this.service.get(providerName, providerKey).pipe( return this.service.get(providerName, providerKey).pipe(
tap(permissionResponse => tap(permissionResponse =>

Loading…
Cancel
Save