mirror of https://github.com/jumpserver/jumpserver
perf: 修改perm判断逻辑
parent
c4a6715eb8
commit
1cca9c10fb
|
@ -18,7 +18,10 @@ class RBACBackend(JMSBaseAuthBackend):
|
||||||
def has_perm(self, user_obj, perm, obj=None):
|
def has_perm(self, user_obj, perm, obj=None):
|
||||||
if not user_obj.is_active:
|
if not user_obj.is_active:
|
||||||
raise PermissionDenied()
|
raise PermissionDenied()
|
||||||
has_perm = perm in user_obj.perms
|
if perm == '*':
|
||||||
|
return True
|
||||||
|
perm_set = set(i.strip() for i in perm.split('|'))
|
||||||
|
has_perm = bool(perm_set & set(user_obj.perms))
|
||||||
if not has_perm:
|
if not has_perm:
|
||||||
raise PermissionDenied()
|
raise PermissionDenied()
|
||||||
return has_perm
|
return has_perm
|
||||||
|
|
|
@ -806,15 +806,6 @@ class User(AuthMixin, TokenMixin, RoleMixin, MFAMixin, AbstractUser):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def has_perms(self, perm_list, obj=None):
|
|
||||||
"""
|
|
||||||
Return True if the user has each of the specified permissions. If
|
|
||||||
object is passed, check if the user has all required perms for it.
|
|
||||||
"""
|
|
||||||
if '*' in perm_list:
|
|
||||||
return True
|
|
||||||
return all(any(self.has_perm(perm, obj) for perm in perms.split(' | ')) for perms in perm_list)
|
|
||||||
|
|
||||||
|
|
||||||
class UserPasswordHistory(models.Model):
|
class UserPasswordHistory(models.Model):
|
||||||
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
|
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
|
||||||
|
|
Loading…
Reference in New Issue