mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
[ADF-2978] added a check when locally set permission is undefined (#3307)
This commit is contained in:
@@ -21,7 +21,7 @@ import { SearchService, NodesApiService, setupTestBed, CoreModule } from '@alfre
|
|||||||
import { MinimalNodeEntryEntity, PermissionElement } from 'alfresco-js-api';
|
import { MinimalNodeEntryEntity, PermissionElement } from 'alfresco-js-api';
|
||||||
import { Observable } from 'rxjs/Observable';
|
import { Observable } from 'rxjs/Observable';
|
||||||
import { fakeEmptyResponse, fakeNodeWithOnlyLocally, fakeSiteRoles, fakeSiteNodeResponse,
|
import { fakeEmptyResponse, fakeNodeWithOnlyLocally, fakeSiteRoles, fakeSiteNodeResponse,
|
||||||
fakeNodeToRemovePermission } from '../../mock/permission-list.component.mock';
|
fakeNodeToRemovePermission, fakeNodeWithoutPermissions } from '../../mock/permission-list.component.mock';
|
||||||
import { fakeAuthorityResults } from '../../mock/add-permission.component.mock';
|
import { fakeAuthorityResults } from '../../mock/add-permission.component.mock';
|
||||||
import { NodePermissionDialogService } from './node-permission-dialog.service';
|
import { NodePermissionDialogService } from './node-permission-dialog.service';
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@ describe('NodePermissionService', () => {
|
|||||||
'accessStatus' : 'ALLOWED'
|
'accessStatus' : 'ALLOWED'
|
||||||
};
|
};
|
||||||
spyOn(nodeService, 'updateNode').and.callFake((nodeId, permissionBody) => returnUpdatedNode(nodeId, permissionBody));
|
spyOn(nodeService, 'updateNode').and.callFake((nodeId, permissionBody) => returnUpdatedNode(nodeId, permissionBody));
|
||||||
const fakeNodeCopy = Object.assign(fakeNodeToRemovePermission);
|
const fakeNodeCopy = JSON.parse(JSON.stringify(fakeNodeToRemovePermission));
|
||||||
|
|
||||||
service.removePermission(fakeNodeCopy, fakePermission).subscribe((node: MinimalNodeEntryEntity) => {
|
service.removePermission(fakeNodeCopy, fakePermission).subscribe((node: MinimalNodeEntryEntity) => {
|
||||||
expect(node).not.toBeNull();
|
expect(node).not.toBeNull();
|
||||||
@@ -118,7 +118,7 @@ describe('NodePermissionService', () => {
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
it('should be able to update locally set permissions on the node by node id', async(() => {
|
it('should be able to update locally set permissions on the node by node id', async(() => {
|
||||||
const fakeNodeCopy = Object.assign(fakeNodeWithOnlyLocally);
|
const fakeNodeCopy = JSON.parse(JSON.stringify(fakeNodeWithOnlyLocally));
|
||||||
spyOn(nodeService, 'getNode').and.returnValue(Observable.of(fakeNodeCopy));
|
spyOn(nodeService, 'getNode').and.returnValue(Observable.of(fakeNodeCopy));
|
||||||
spyOn(nodeService, 'updateNode').and.callFake((nodeId, permissionBody) => returnUpdatedNode(nodeId, permissionBody));
|
spyOn(nodeService, 'updateNode').and.callFake((nodeId, permissionBody) => returnUpdatedNode(nodeId, permissionBody));
|
||||||
spyOn(searchApiService, 'searchByQueryBody').and.returnValue(Observable.of(fakeSiteNodeResponse));
|
spyOn(searchApiService, 'searchByQueryBody').and.returnValue(Observable.of(fakeSiteNodeResponse));
|
||||||
@@ -135,7 +135,7 @@ describe('NodePermissionService', () => {
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
it('should be able to update locally permissions on the node', async(() => {
|
it('should be able to update locally permissions on the node', async(() => {
|
||||||
const fakeNodeCopy = Object.assign(fakeNodeWithOnlyLocally);
|
const fakeNodeCopy = JSON.parse(JSON.stringify(fakeNodeWithOnlyLocally));
|
||||||
spyOn(nodeService, 'updateNode').and.callFake((nodeId, permissionBody) => returnUpdatedNode(nodeId, permissionBody));
|
spyOn(nodeService, 'updateNode').and.callFake((nodeId, permissionBody) => returnUpdatedNode(nodeId, permissionBody));
|
||||||
|
|
||||||
service.updateLocallySetPermissions(fakeNodeCopy, fakeAuthorityResults, fakeSiteRoles).subscribe((node: MinimalNodeEntryEntity) => {
|
service.updateLocallySetPermissions(fakeNodeCopy, fakeAuthorityResults, fakeSiteRoles).subscribe((node: MinimalNodeEntryEntity) => {
|
||||||
@@ -148,8 +148,23 @@ describe('NodePermissionService', () => {
|
|||||||
});
|
});
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('should be fail when user select the same authority and role to add', async(() => {
|
it('should be able to update locally permissions on the node without locally set permissions', async(() => {
|
||||||
const fakeNodeCopy = Object.assign(fakeNodeWithOnlyLocally);
|
let fakeNodeCopy = JSON.parse(JSON.stringify(fakeNodeWithoutPermissions));
|
||||||
|
fakeNodeCopy.permissions.locallySet = undefined;
|
||||||
|
spyOn(nodeService, 'updateNode').and.callFake((nodeId, permissionBody) => returnUpdatedNode(nodeId, permissionBody));
|
||||||
|
|
||||||
|
service.updateLocallySetPermissions(fakeNodeCopy, fakeAuthorityResults, fakeSiteRoles).subscribe((node: MinimalNodeEntryEntity) => {
|
||||||
|
expect(node).not.toBeNull();
|
||||||
|
expect(node.id).toBe('fake-updated-node');
|
||||||
|
expect(node.permissions.locallySet.length).toBe(3);
|
||||||
|
expect(node.permissions.locallySet[2].authorityId).not.toBe(fakeAuthorityResults[0].entry['cm:userName']);
|
||||||
|
expect(node.permissions.locallySet[1].authorityId).not.toBe(fakeAuthorityResults[1].entry['cm:userName']);
|
||||||
|
expect(node.permissions.locallySet[0].authorityId).not.toBe(fakeAuthorityResults[2].entry['cm:userName']);
|
||||||
|
});
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should fail when user select the same authority and role to add', async(() => {
|
||||||
|
const fakeNodeCopy = JSON.parse(JSON.stringify(fakeNodeWithOnlyLocally));
|
||||||
|
|
||||||
const fakeDuplicateAuthority: any = [{
|
const fakeDuplicateAuthority: any = [{
|
||||||
'entry': {
|
'entry': {
|
||||||
|
@@ -94,12 +94,14 @@ export class NodePermissionService {
|
|||||||
|
|
||||||
private getDuplicatedPermissions(nodeLocallySet: PermissionElement[], permissionListAdded: PermissionElement[]): PermissionElement[] {
|
private getDuplicatedPermissions(nodeLocallySet: PermissionElement[], permissionListAdded: PermissionElement[]): PermissionElement[] {
|
||||||
let duplicatePermissions: PermissionElement[] = [];
|
let duplicatePermissions: PermissionElement[] = [];
|
||||||
permissionListAdded.forEach((permission: PermissionElement) => {
|
if (nodeLocallySet) {
|
||||||
const duplicate = nodeLocallySet.find((localPermission) => this.isEqualPermission(localPermission, permission));
|
permissionListAdded.forEach((permission: PermissionElement) => {
|
||||||
if (duplicate) {
|
const duplicate = nodeLocallySet.find((localPermission) => this.isEqualPermission(localPermission, permission));
|
||||||
duplicatePermissions.push(duplicate);
|
if (duplicate) {
|
||||||
}
|
duplicatePermissions.push(duplicate);
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
return duplicatePermissions;
|
return duplicatePermissions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user