mirror of https://github.com/jumpserver/jumpserver
parent
6bde31cdd0
commit
9b73727bbc
|
@ -8,20 +8,21 @@ import random
|
||||||
import datetime
|
import datetime
|
||||||
from typing import Callable
|
from typing import Callable
|
||||||
|
|
||||||
|
from django.db import models
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.utils import timezone
|
||||||
|
from django.core.cache import cache
|
||||||
|
from django.shortcuts import reverse
|
||||||
from django.contrib.auth.models import AbstractUser
|
from django.contrib.auth.models import AbstractUser
|
||||||
from django.contrib.auth.hashers import check_password
|
from django.contrib.auth.hashers import check_password
|
||||||
from django.core.cache import cache
|
|
||||||
from django.db import models
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from django.utils import timezone
|
|
||||||
from django.shortcuts import reverse
|
|
||||||
|
|
||||||
from orgs.utils import current_org
|
from orgs.utils import current_org
|
||||||
from orgs.models import Organization
|
from orgs.models import Organization
|
||||||
from common.utils import date_expired_default, get_logger, lazyproperty, random_string
|
from rbac.const import Scope
|
||||||
from common import fields
|
from common import fields
|
||||||
from django.db.models import TextChoices
|
from common.utils import date_expired_default, get_logger, lazyproperty, random_string
|
||||||
from ..signals import post_user_change_password, post_user_leave_org, pre_user_leave_org
|
from ..signals import post_user_change_password, post_user_leave_org, pre_user_leave_org
|
||||||
|
|
||||||
__all__ = ['User', 'UserPasswordHistory']
|
__all__ = ['User', 'UserPasswordHistory']
|
||||||
|
@ -177,14 +178,14 @@ class RoleManager(models.Manager):
|
||||||
|
|
||||||
def get_role_binding_cls(self):
|
def get_role_binding_cls(self):
|
||||||
from rbac.models import SystemRoleBinding, OrgRoleBinding
|
from rbac.models import SystemRoleBinding, OrgRoleBinding
|
||||||
if self.scope == 'org':
|
if self.scope == Scope.org:
|
||||||
return OrgRoleBinding
|
return OrgRoleBinding
|
||||||
else:
|
else:
|
||||||
return SystemRoleBinding
|
return SystemRoleBinding
|
||||||
|
|
||||||
def get_role_cls(self):
|
def get_role_cls(self):
|
||||||
from rbac.models import SystemRole, OrgRole
|
from rbac.models import SystemRole, OrgRole
|
||||||
if self.scope == 'org':
|
if self.scope == Scope.org:
|
||||||
return OrgRole
|
return OrgRole
|
||||||
else:
|
else:
|
||||||
return SystemRole
|
return SystemRole
|
||||||
|
@ -244,7 +245,7 @@ class RoleManager(models.Manager):
|
||||||
'user': self.user,
|
'user': self.user,
|
||||||
'scope': self.scope
|
'scope': self.scope
|
||||||
}
|
}
|
||||||
if not current_org.is_root():
|
if self.scope == Scope.org and not current_org.is_root():
|
||||||
kwargs['org_id'] = current_org.id
|
kwargs['org_id'] = current_org.id
|
||||||
items.append(self.role_binding_cls(**kwargs))
|
items.append(self.role_binding_cls(**kwargs))
|
||||||
|
|
||||||
|
@ -615,7 +616,7 @@ class MFAMixin:
|
||||||
|
|
||||||
|
|
||||||
class User(AuthMixin, TokenMixin, RoleMixin, MFAMixin, AbstractUser):
|
class User(AuthMixin, TokenMixin, RoleMixin, MFAMixin, AbstractUser):
|
||||||
class Source(TextChoices):
|
class Source(models.TextChoices):
|
||||||
local = 'local', _('Local')
|
local = 'local', _('Local')
|
||||||
ldap = 'ldap', 'LDAP/AD'
|
ldap = 'ldap', 'LDAP/AD'
|
||||||
openid = 'openid', 'OpenID'
|
openid = 'openid', 'OpenID'
|
||||||
|
|
Loading…
Reference in New Issue