mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-05-12 17:04:46 +00:00
shared nodes actions permission (#224)
This commit is contained in:
parent
a401b3d90a
commit
a9d98fbe83
@ -298,4 +298,52 @@ describe('PageComponent', () => {
|
|||||||
expect(component.nodeHasPermission(node, 'some-operation')).toBe(false);
|
expect(component.nodeHasPermission(node, 'some-operation')).toBe(false);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('canDeleteShared()', () => {
|
||||||
|
it('should return true if shared node can be deleted', () => {
|
||||||
|
const selection = [ { entry: {
|
||||||
|
allowableOperationsOnTarget: ['delete']
|
||||||
|
} } ];
|
||||||
|
|
||||||
|
expect(component.canDeleteShared(selection)).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should return false if shared node doesn't have permission`, () => {
|
||||||
|
const selection = [ { entry: {
|
||||||
|
allowableOperationsOnTarget: ['something']
|
||||||
|
} } ];
|
||||||
|
|
||||||
|
expect(component.canDeleteShared(selection)).toBe(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should return false if shared node doesn't have permissions property`, () => {
|
||||||
|
const selection = [ { entry: { } } ];
|
||||||
|
|
||||||
|
expect(component.canDeleteShared(selection)).toBe(false);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('canMoveShared()', () => {
|
||||||
|
it('should return true if shared node can be moved', () => {
|
||||||
|
const selection = [ { entry: {
|
||||||
|
allowableOperationsOnTarget: ['delete']
|
||||||
|
} } ];
|
||||||
|
|
||||||
|
expect(component.canMoveShared(selection)).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should return false if shared node doesn't have permission`, () => {
|
||||||
|
const selection = [ { entry: {
|
||||||
|
allowableOperationsOnTarget: ['something']
|
||||||
|
} } ];
|
||||||
|
|
||||||
|
expect(component.canMoveShared(selection)).toBe(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should return false if shared node doesn't have permissions property`, () => {
|
||||||
|
const selection = [ { entry: { } } ];
|
||||||
|
|
||||||
|
expect(component.canMoveShared(selection)).toBe(false);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@ -111,10 +111,18 @@ export abstract class PageComponent {
|
|||||||
return selection.every(node => node.entry && this.nodeHasPermission(node.entry, 'delete'));
|
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 {
|
canMove(selection: Array<MinimalNodeEntity>): boolean {
|
||||||
return this.canDelete(selection);
|
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 {
|
canPreviewFile(selection: Array<MinimalNodeEntity>): boolean {
|
||||||
return this.isFileSelected(selection);
|
return this.isFileSelected(selection);
|
||||||
}
|
}
|
||||||
@ -127,7 +135,7 @@ export abstract class PageComponent {
|
|||||||
return this.isFileSelected(selection);
|
return this.isFileSelected(selection);
|
||||||
}
|
}
|
||||||
|
|
||||||
nodeHasPermission(node: MinimalNodeEntryEntity, permission: string) {
|
nodeHasPermission(node: MinimalNodeEntryEntity, permission: string): boolean {
|
||||||
if (node && permission) {
|
if (node && permission) {
|
||||||
const { allowableOperations = [] } = <any>(node || {});
|
const { allowableOperations = [] } = <any>(node || {});
|
||||||
|
|
||||||
@ -139,6 +147,18 @@ export abstract class PageComponent {
|
|||||||
return false;
|
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 {
|
onChangePageSize(event: Pagination): void {
|
||||||
this.preferences.paginationSize = event.maxItems;
|
this.preferences.paginationSize = event.maxItems;
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
|
|
||||||
<button
|
<button
|
||||||
mat-menu-item
|
mat-menu-item
|
||||||
*ngIf="canMove(documentList.selection)"
|
*ngIf="canMoveShared(documentList.selection)"
|
||||||
[app-move-node]="documentList.selection">
|
[app-move-node]="documentList.selection">
|
||||||
<mat-icon>library_books</mat-icon>
|
<mat-icon>library_books</mat-icon>
|
||||||
<span>{{ 'APP.ACTIONS.MOVE' | translate }}</span>
|
<span>{{ 'APP.ACTIONS.MOVE' | translate }}</span>
|
||||||
@ -67,7 +67,7 @@
|
|||||||
|
|
||||||
<button
|
<button
|
||||||
mat-menu-item
|
mat-menu-item
|
||||||
*ngIf="canDelete(documentList.selection)"
|
*ngIf="canDeleteShared(documentList.selection)"
|
||||||
[app-delete-node]="documentList.selection">
|
[app-delete-node]="documentList.selection">
|
||||||
<mat-icon>delete</mat-icon>
|
<mat-icon>delete</mat-icon>
|
||||||
<span>{{ 'APP.ACTIONS.DELETE' | translate }}</span>
|
<span>{{ 'APP.ACTIONS.DELETE' | translate }}</span>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user