From bd77b2a94236bad19e0724081ab57537a5641129 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Fri, 17 Jul 2020 13:00:47 +0300 Subject: [PATCH 1/5] fix(permission-management): add isFetchAppConfigNecessary method --- .../permission-management.component.ts | 56 +++++++++++++------ 1 file changed, 38 insertions(+), 18 deletions(-) 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 b6b1dcbdd3e..91ced82d3b9 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 @@ -1,7 +1,8 @@ +import { ApplicationConfiguration, ConfigState, GetAppConfiguration } from '@abp/ng.core'; import { Component, EventEmitter, Input, Output, Renderer2, TrackByFunction } from '@angular/core'; import { Select, Store } from '@ngxs/store'; -import { Observable } from 'rxjs'; -import { finalize, map, pluck, take, tap } from 'rxjs/operators'; +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 { PermissionManagementState } from '../states/permission-management.state'; @@ -203,7 +204,6 @@ export class PermissionManagementComponent } submit() { - this.modalBusy = true; const unchangedPermissions = getPermissions( this.store.selectSnapshot(PermissionManagementState.getPermissionGroups), ); @@ -217,23 +217,29 @@ export class PermissionManagementComponent ) .map(({ name, isGranted }) => ({ name, isGranted })); - if (changedPermissions.length) { - this.store - .dispatch( - new UpdatePermissions({ - providerKey: this.providerKey, - providerName: this.providerName, - permissions: changedPermissions, - }), - ) - .pipe(finalize(() => (this.modalBusy = false))) - .subscribe(() => { - this.visible = false; - }); - } else { - this.modalBusy = false; + if (!changedPermissions.length) { this.visible = false; + return; } + + this.modalBusy = true; + this.store + .dispatch( + new UpdatePermissions({ + providerKey: this.providerKey, + providerName: this.providerName, + permissions: changedPermissions, + }), + ) + .pipe( + switchMap(() => + this.isFetchAppConfigNecessary() ? this.store.dispatch(GetAppConfiguration) : of(null), + ), + finalize(() => (this.modalBusy = false)), + ) + .subscribe(() => { + this.visible = false; + }); } openModal() { @@ -268,6 +274,20 @@ export class PermissionManagementComponent 0, ); } + + isFetchAppConfigNecessary() { + const currentUser = this.store.selectSnapshot( + ConfigState.getOne('currentUser'), + ) as ApplicationConfiguration.CurrentUser; + + if (this.providerName === 'R') { + return currentUser.roles.findIndex(role => role === this.providerKey) > -1; + } + + if (this.providerName === 'U') { + return currentUser.id === this.providerKey; + } + } } function findMargin( From 83ca22302897eaacacb82322d408abcdafdabd70 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 17 Jul 2020 18:14:35 +0800 Subject: [PATCH 2/5] Use eventEntry.EventBus instead of eventPublisher --- .../Volo/Abp/Domain/Entities/Events/EntityChangeEventHelper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityChangeEventHelper.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityChangeEventHelper.cs index 5de3b22c77f..27472570018 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityChangeEventHelper.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityChangeEventHelper.cs @@ -263,7 +263,7 @@ await eventPublisher.PublishAsync( { try { - await eventPublisher.PublishAsync( + await eventEntry.EventBus.PublishAsync( eventEntry.EventType, Activator.CreateInstance(eventEntry.EventType, eventEntry.EntityOrEto) ); From cfab52042cee23d3f25739ba41b821d9d3416c4b Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Fri, 17 Jul 2020 16:53:36 +0300 Subject: [PATCH 3/5] refactor(permission-management): change a method name --- .../src/lib/components/permission-management.component.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 91ced82d3b9..35ab0186b73 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 @@ -233,7 +233,7 @@ export class PermissionManagementComponent ) .pipe( switchMap(() => - this.isFetchAppConfigNecessary() ? this.store.dispatch(GetAppConfiguration) : of(null), + this.shouldFetchAppConfig() ? this.store.dispatch(GetAppConfiguration) : of(null), ), finalize(() => (this.modalBusy = false)), ) @@ -275,7 +275,7 @@ export class PermissionManagementComponent ); } - isFetchAppConfigNecessary() { + shouldFetchAppConfig() { const currentUser = this.store.selectSnapshot( ConfigState.getOne('currentUser'), ) as ApplicationConfiguration.CurrentUser; @@ -287,6 +287,8 @@ export class PermissionManagementComponent if (this.providerName === 'U') { return currentUser.id === this.providerKey; } + + return false; } } From 3d7a385ff8b201e8a696675039a8ba31a6c86420 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Fri, 17 Jul 2020 16:58:45 +0300 Subject: [PATCH 4/5] refactor(permission-management): improve code quality --- .../src/lib/components/permission-management.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 35ab0186b73..d766bc9a0a5 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 @@ -281,7 +281,7 @@ export class PermissionManagementComponent ) as ApplicationConfiguration.CurrentUser; if (this.providerName === 'R') { - return currentUser.roles.findIndex(role => role === this.providerKey) > -1; + currentUser.roles.some(role => role === this.providerKey); } if (this.providerName === 'U') { From 6cde48f1bf658e5cd51548328d3e37ee6af681d1 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Fri, 17 Jul 2020 17:01:19 +0300 Subject: [PATCH 5/5] refactor: remove if curly --- .../src/lib/components/permission-management.component.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) 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 d766bc9a0a5..c2220a30d2e 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 @@ -280,13 +280,9 @@ export class PermissionManagementComponent ConfigState.getOne('currentUser'), ) as ApplicationConfiguration.CurrentUser; - if (this.providerName === 'R') { - currentUser.roles.some(role => role === this.providerKey); - } + if (this.providerName === 'R') return currentUser.roles.some(role => role === this.providerKey); - if (this.providerName === 'U') { - return currentUser.id === this.providerKey; - } + if (this.providerName === 'U') return currentUser.id === this.providerKey; return false; }