Skip to content

Commit 70181ad

Browse files
committed
removeRoleAll method added
1 parent 1d11c66 commit 70181ad

File tree

3 files changed

+60
-0
lines changed

3 files changed

+60
-0
lines changed

dist/acl.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,27 @@ angular.module('stylet.acl').service('AclService', ["AclRegistryService", functi
500500
return self;
501501
};
502502

503+
/**
504+
* Removes all Roles from the registry
505+
*
506+
* @return {AclService} Provides a fluent interface
507+
*/
508+
this.removeRoleAll = function () {
509+
_roleRegistry.removeAll();
510+
511+
for (var roleCurrent in _rules.allResources.byRoleId) {
512+
delete _rules.allResources.byRoleId[roleCurrent];
513+
}
514+
515+
for (var resourceCurrent in _rules.byResourceId) {
516+
for (var roleIdCurrent in _rules.byResourceId[resourceCurrent].byRoleId) {
517+
delete _rules.byResourceId[resourceCurrent].byRoleId[roleIdCurrent];
518+
}
519+
}
520+
521+
return self;
522+
};
523+
503524

504525
/**
505526
* Performs operations on ACL rules

src/acl-service.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,27 @@ angular.module('stylet.acl').service('AclService', function (AclRegistryService)
499499
return self;
500500
};
501501

502+
/**
503+
* Removes all Roles from the registry
504+
*
505+
* @return {AclService} Provides a fluent interface
506+
*/
507+
this.removeRoleAll = function () {
508+
_roleRegistry.removeAll();
509+
510+
for (var roleCurrent in _rules.allResources.byRoleId) {
511+
delete _rules.allResources.byRoleId[roleCurrent];
512+
}
513+
514+
for (var resourceCurrent in _rules.byResourceId) {
515+
for (var roleIdCurrent in _rules.byResourceId[resourceCurrent].byRoleId) {
516+
delete _rules.byResourceId[resourceCurrent].byRoleId[roleIdCurrent];
517+
}
518+
}
519+
520+
return self;
521+
};
522+
502523

503524
/**
504525
* Performs operations on ACL rules

test/acl-service.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,24 @@ describe('ncAclService', function () {
102102
}).toThrow();
103103
});
104104

105+
it('ensures that removal of all Roles works', function () {
106+
AclService.addRole('Guest');
107+
expect(AclService.hasRole('Guest')).toBeTruthy();
108+
109+
AclService.removeRoleAll();
110+
expect(AclService.hasRole('Guest')).toBeFalsy();
111+
});
112+
113+
it('ensures that removal of all Roles results in Role-specific rules being removed', function () {
114+
AclService.addRole('Guest').allow('Guest');
115+
expect(AclService.isAllowed('Guest')).toBeTruthy();
116+
117+
AclService.removeRoleAll();
118+
119+
AclService.addRole('Guest');
120+
expect(AclService.isAllowed('Guest')).toBeFalsy();
121+
});
122+
105123
});
106124

107125
describe('Resource management', function () {

0 commit comments

Comments
 (0)