shared nodes actions permission (#224)

This commit is contained in:
Cilibiu Bogdan
2018-03-06 18:17:06 +02:00
committed by Denys Vuika
parent a401b3d90a
commit a9d98fbe83
3 changed files with 71 additions and 3 deletions

View File

@@ -111,10 +111,18 @@ export abstract class PageComponent {
return selection.every(node => node.entry && this.nodeHasPermission(node.entry, 'delete'));
}
canDeleteShared(selection: Array<MinimalNodeEntity> = []): boolean {
return selection.every(node => node.entry && this.nodeSharedHasPermission(node.entry, 'delete'));
}
canMove(selection: Array<MinimalNodeEntity>): boolean {
return this.canDelete(selection);
}
canMoveShared(selection: Array<MinimalNodeEntity> = []): boolean {
return selection.every(node => node.entry && this.nodeSharedHasPermission(node.entry, 'delete'));
}
canPreviewFile(selection: Array<MinimalNodeEntity>): boolean {
return this.isFileSelected(selection);
}
@@ -127,7 +135,7 @@ export abstract class PageComponent {
return this.isFileSelected(selection);
}
nodeHasPermission(node: MinimalNodeEntryEntity, permission: string) {
nodeHasPermission(node: MinimalNodeEntryEntity, permission: string): boolean {
if (node && permission) {
const { allowableOperations = [] } = <any>(node || {});
@@ -139,6 +147,18 @@ export abstract class PageComponent {
return false;
}
nodeSharedHasPermission(node: MinimalNodeEntryEntity, permission: string): boolean {
if (node && permission) {
const { allowableOperationsOnTarget } = <any>(node || {});
if (allowableOperationsOnTarget && allowableOperationsOnTarget.indexOf(permission) > -1) {
return true;
}
}
return false;
}
onChangePageSize(event: Pagination): void {
this.preferences.paginationSize = event.maxItems;
}