Skip to content

Commit

Permalink
fix: reimplement default role manager
Browse files Browse the repository at this point in the history
Signed-off-by: Andreas Bichinger <[email protected]>
  • Loading branch information
abichinger committed Nov 5, 2021
1 parent b1d13e3 commit b8f7fa7
Show file tree
Hide file tree
Showing 7 changed files with 434 additions and 339 deletions.
6 changes: 5 additions & 1 deletion casbin/core_enforcer.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,11 @@ def clear_policy(self):
def init_rm_map(self):
if "g" in self.model.keys():
for ptype in self.model["g"]:
self.rm_map[ptype] = default_role_manager.RoleManager(10)
assertion = self.model["g"][ptype]
if assertion.value.count("_") == 2:
self.rm_map[ptype] = default_role_manager.RoleManager(10)
else:
self.rm_map[ptype] = default_role_manager.DomainManager(10)

def load_policy(self):
"""reloads the policy from file/database."""
Expand Down
2 changes: 1 addition & 1 deletion casbin/enforcer.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ def has_permission_for_user(self, user, *permission):
"""
return self.has_policy(join_slice(user, *permission))

def get_implicit_roles_for_user(self, name, domain=None):
def get_implicit_roles_for_user(self, name, domain=""):
"""
gets implicit roles that a user has.
Compared to get_roles_for_user(), this function retrieves indirect roles besides direct roles.
Expand Down
2 changes: 1 addition & 1 deletion casbin/rbac/default_role_manager/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
from .role_manager import RoleManager
from .role_manager import RoleManager, DomainManager
Loading

0 comments on commit b8f7fa7

Please sign in to comment.