Skip to content

Commit

Permalink
Merge pull request abpframework#14758 from abpframework/Issue-1358
Browse files Browse the repository at this point in the history
Edit permission-management.component.
  • Loading branch information
muhammedaltug authored Nov 24, 2022
2 parents ac2a404 + 98a5ca3 commit 0679d32
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,11 @@ <h4>
class="nav-link pointer"
[class.active]="selectedGroup?.name === group?.name"
(click)="onChangeGroup(group)"
(select)="setDisabled(group.permissions)"
>
<div [class.font-weight-bold]="count.assignedCount">
{{ group?.displayName }}
<span>({{ count.assignedCount }})</span>
<span *ngIf="count.assignedCount > 0">({{ count.assignedCount }})</span>
</div>
</a>
</li>
Expand All @@ -53,6 +54,7 @@ <h4>{{ selectedGroup?.displayName }}</h4>
name="select-all-in-this-tabs"
class="form-check-input"
[(ngModel)]="selectThisTab"
[disabled]="disableSelectAllTab"
(click)="onClickSelectThisTab()"
/>
<label class="form-check-label" for="select-all-in-this-tabs">{{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,8 @@ export class PermissionManagementComponent

selectAllTab = false;

disableSelectAllTab = false;

modalBusy = false;

trackByFn: TrackByFunction<PermissionGroupDto> = (_, item) => item.name;
Expand Down Expand Up @@ -135,6 +137,18 @@ export class PermissionManagementComponent
return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;
}

setDisabled(grantedProviders) {
if (grantedProviders.length) {
grantedProviders.forEach(permission => {
this.disableSelectAllTab = permission.grantedProviders?.some(
p => p.providerName !== this.providerName,
);
});
} else {
this.disableSelectAllTab = false;
}
}

isGrantedByOtherProviderName(grantedProviders: ProviderInfoDto[]): boolean {
if (grantedProviders.length) {
return grantedProviders.findIndex(p => p.providerName !== this.providerName) > -1;
Expand All @@ -150,24 +164,25 @@ export class PermissionManagementComponent
return;

setTimeout(() => {
this.permissions = this.permissions.map(per => {
if (clickedPermission.name === per.name) {
return { ...per, isGranted: !per.isGranted };
} else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {
return { ...per, isGranted: false };
} else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {
return { ...per, isGranted: true };
}

return per;
}).map((per,index,permissions) => {
const childrens = permissions
.filter(p => p.parentName === per.name);
if(childrens.length > 0 && childrens.every(x => !x.isGranted)){
this.permissions = this.permissions
.map(per => {
if (clickedPermission.name === per.name) {
return { ...per, isGranted: !per.isGranted };
} else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {
return { ...per, isGranted: false };
} else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {
return { ...per, isGranted: true };
}
return per
});

return per;
})
.map((per, index, permissions) => {
const childrens = permissions.filter(p => p.parentName === per.name);
if (childrens.length > 0 && childrens.every(x => !x.isGranted)) {
return { ...per, isGranted: false };
}
return per;
});
this.setTabCheckboxState();
this.setGrantCheckboxState();
}, 0);
Expand Down Expand Up @@ -231,6 +246,7 @@ export class PermissionManagementComponent
}

onChangeGroup(group: PermissionGroupDto) {
this.setDisabled(group.permissions);
this.selectedGroup = group;
this.setTabCheckboxState();
}
Expand Down Expand Up @@ -283,6 +299,7 @@ export class PermissionManagementComponent
initModal() {
// TODO: Refactor
setTimeout(() => {
this.setDisabled(this.permissions);
this.setTabCheckboxState();
this.setGrantCheckboxState();
});
Expand Down

0 comments on commit 0679d32

Please sign in to comment.