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 { 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) {}
}

37
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<boolean>();
@Select(PermissionManagementState.getPermissionGroups)
groups$: Observable<PermissionManagement.Group[]>;
groups$: Observable<PermissionGroupDto[]>;
@Select(PermissionManagementState.getEntityDisplayName)
entityName$: Observable<string>;
selectedGroup: PermissionManagement.Group;
selectedGroup: PermissionGroupDto;
permissions: PermissionManagement.Permission[] = [];
permissions: PermissionGrantInfoDto[] = [];
selectThisTab = false;
@ -83,7 +89,7 @@ export class PermissionManagementComponent
modalBusy = false;
trackByFn: TrackByFunction<PermissionManagement.Group> = (_, item) => item.name;
trackByFn: TrackByFunction<PermissionGroupDto> = (_, item) => item.name;
get selectedGroupPermissions$(): Observable<PermissionWithStyle[]> {
const margin = `margin-${
@ -96,7 +102,7 @@ export class PermissionManagementComponent
? groups.find(group => group.name === this.selectedGroup.name).permissions
: [],
),
map<PermissionManagement.Permission[], PermissionWithStyle[]>(permissions =>
map<PermissionGrantInfoDto[], PermissionWithStyle[]>(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], []);
}

50
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 {

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';

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 { 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<PermissionManagement.State>({
@ -26,9 +27,7 @@ export class PermissionManagementState {
@Action(GetPermissions)
permissionManagementGet(
{ patchState }: StateContext<PermissionManagement.State>,
{
payload: { providerKey, providerName } = {} as PermissionManagement.GrantedProvider,
}: GetPermissions,
{ payload: { providerKey, providerName } = {} as ProviderInfoDto }: GetPermissions,
) {
return this.service.get(providerName, providerKey).pipe(
tap(permissionResponse =>

Loading…
Cancel
Save