mirror of https://github.com/jumpserver/jumpserver
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
865 B
33 lines
865 B
4 years ago
|
from django.conf import settings
|
||
|
|
||
|
|
||
|
class BackendBase:
|
||
|
# User 表中的字段
|
||
|
account_field = None
|
||
|
|
||
|
# Django setting 中的字段名
|
||
|
is_enable_field_in_settings = None
|
||
|
|
||
|
def get_accounts(self, users):
|
||
|
accounts = []
|
||
|
unbound_users = []
|
||
|
account_user_mapper = {}
|
||
|
|
||
|
for user in users:
|
||
|
account = getattr(user, self.account_field, None)
|
||
|
if account:
|
||
|
account_user_mapper[account] = user
|
||
|
accounts.append(account)
|
||
|
else:
|
||
|
unbound_users.append(user)
|
||
|
return accounts, unbound_users, account_user_mapper
|
||
|
|
||
|
@classmethod
|
||
|
def get_account(cls, user):
|
||
|
return getattr(user, cls.account_field)
|
||
|
|
||
|
@classmethod
|
||
|
def is_enable(cls):
|
||
|
enable = getattr(settings, cls.is_enable_field_in_settings)
|
||
|
return bool(enable)
|