@@ -31,8 +31,8 @@ angular.module('stylet.acl', []);
3131 * privileges, respectively.
3232 *
3333 * @callback AclAssertion
34- * @param {Object |string } role
35- * @param {Object |string } resource
34+ * @param {AclRoleInterface |string } role
35+ * @param {AclResourceInterface |string } resource
3636 * @param {string } privilege
3737 */
3838
@@ -71,6 +71,7 @@ angular.module('stylet.acl').service('AclService', ["AclRegistryService", functi
7171 byResourceId : { }
7272 } ;
7373 var _isAllowedResource = null ;
74+ var _isAllowedRole = null ;
7475
7576 /**
7677 * @returns {{AclRoleInterface|null} }
@@ -111,7 +112,7 @@ angular.module('stylet.acl').service('AclService', ["AclRegistryService", functi
111112 * @param {string } [privilege=null] privilege
112113 * @returns {boolean }
113114 */
114- this . can = function ( resource /*null*/ , privilege /*null*/ ) {
115+ this . can = function ( resource , privilege ) {
115116 resource = typeof resource === 'undefined' ? null : resource ;
116117 privilege = typeof privilege === 'undefined' ? null : privilege ;
117118
@@ -227,9 +228,11 @@ angular.module('stylet.acl').service('AclService', ["AclRegistryService", functi
227228 var result , ruleTypeAllPrivileges ;
228229
229230 // reset role & resource to null
231+ _isAllowedRole = null ;
230232 _isAllowedResource = null ;
231233
232234 if ( role !== null ) {
235+ _isAllowedRole = role ;
233236 role = self . getRole ( role ) ;
234237 }
235238 if ( resource !== null ) {
@@ -249,8 +252,6 @@ angular.module('stylet.acl').service('AclService', ["AclRegistryService", functi
249252 var rules ;
250253 if ( ( rules = getRules ( resource , null ) ) !== null ) {
251254 for ( privilege in rules . byPrivilegeId ) {
252- var rule = rules . byPrivilegeId [ privilege ] ;
253-
254255 if ( self . TYPE_DENY === getRuleType ( resource , null , privilege ) ) {
255256 return false ;
256257 }
@@ -959,7 +960,7 @@ angular.module('stylet.acl').service('AclService', ["AclRegistryService", functi
959960 var assertion = rule . assert ;
960961 assertionValue = assertion . call (
961962 self ,
962- role ,
963+ _isAllowedRole === self . USER_IDENTITY_ROLE && self . getUserIdentity ( ) !== null ? self . getUserIdentity ( ) : role ,
963964 _isAllowedResource !== null ? _isAllowedResource : resource ,
964965 privilege
965966 ) ;
0 commit comments