mirror of https://github.com/jumpserver/jumpserver
commit
4f1b2aceda
|
@ -47,8 +47,13 @@ class BaseFileParser(BaseParser):
|
||||||
def convert_to_field_names(self, column_titles):
|
def convert_to_field_names(self, column_titles):
|
||||||
fields_map = {}
|
fields_map = {}
|
||||||
fields = self.serializer_fields
|
fields = self.serializer_fields
|
||||||
fields_map.update({v.label: k for k, v in fields.items()})
|
for k, v in fields.items():
|
||||||
fields_map.update({k: k for k, _ in fields.items()})
|
if v.read_only:
|
||||||
|
continue
|
||||||
|
fields_map.update({
|
||||||
|
v.label: k,
|
||||||
|
k: k
|
||||||
|
})
|
||||||
field_names = [
|
field_names = [
|
||||||
fields_map.get(column_title.strip('*'), '')
|
fields_map.get(column_title.strip('*'), '')
|
||||||
for column_title in column_titles
|
for column_title in column_titles
|
||||||
|
|
|
@ -83,14 +83,17 @@ class AssetPermissionSerializer(BulkOrgResourceModelSerializer):
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
def to_internal_value(self, data):
|
def to_internal_value(self, data):
|
||||||
# 系统用户是必填项
|
if 'system_users_display' in data:
|
||||||
|
# system_users_display 转化为 system_users
|
||||||
system_users = data.get('system_users', [])
|
system_users = data.get('system_users', [])
|
||||||
system_users_display = data.pop('system_users_display', '')
|
system_users_display = data.pop('system_users_display')
|
||||||
for i in range(len(system_users_display)):
|
|
||||||
system_user = SystemUser.objects.filter(name=system_users_display[i]).first()
|
for name in system_users_display:
|
||||||
|
system_user = SystemUser.objects.filter(name=name).first()
|
||||||
if system_user and system_user.id not in system_users:
|
if system_user and system_user.id not in system_users:
|
||||||
system_users.append(system_user.id)
|
system_users.append(system_user.id)
|
||||||
data['system_users'] = system_users
|
data['system_users'] = system_users
|
||||||
|
|
||||||
return super().to_internal_value(data)
|
return super().to_internal_value(data)
|
||||||
|
|
||||||
def perform_display_create(self, instance, **kwargs):
|
def perform_display_create(self, instance, **kwargs):
|
||||||
|
|
|
@ -26,6 +26,7 @@ from common.const import LDAP_AD_ACCOUNT_DISABLE
|
||||||
from common.utils import timeit, get_logger
|
from common.utils import timeit, get_logger
|
||||||
from users.utils import construct_user_email
|
from users.utils import construct_user_email
|
||||||
from users.models import User
|
from users.models import User
|
||||||
|
from orgs.models import Organization
|
||||||
from authentication.backends.ldap import LDAPAuthorizationBackend, LDAPUser
|
from authentication.backends.ldap import LDAPAuthorizationBackend, LDAPUser
|
||||||
|
|
||||||
logger = get_logger(__file__)
|
logger = get_logger(__file__)
|
||||||
|
@ -364,12 +365,17 @@ class LDAPImportUtil(object):
|
||||||
def perform_import(self, users):
|
def perform_import(self, users):
|
||||||
logger.info('Start perform import ldap users, count: {}'.format(len(users)))
|
logger.info('Start perform import ldap users, count: {}'.format(len(users)))
|
||||||
errors = []
|
errors = []
|
||||||
|
instances = []
|
||||||
for user in users:
|
for user in users:
|
||||||
try:
|
try:
|
||||||
self.update_or_create(user)
|
obj, created = self.update_or_create(user)
|
||||||
|
if created:
|
||||||
|
instances.append(user)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
errors.append({user['username']: str(e)})
|
errors.append({user['username']: str(e)})
|
||||||
logger.error(e)
|
logger.error(e)
|
||||||
|
# 默认添加用户到 Default 组织
|
||||||
|
Organization.default().members.add(*instances)
|
||||||
logger.info('End perform import ldap users')
|
logger.info('End perform import ldap users')
|
||||||
return errors
|
return errors
|
||||||
|
|
||||||
|
|
|
@ -83,7 +83,7 @@ class CommandAlertMessage(CommandAlertMixin, SystemMessage):
|
||||||
'command': input
|
'command': input
|
||||||
}
|
}
|
||||||
|
|
||||||
message = self._get_message(command)
|
message = self._get_message()
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'subject': subject,
|
'subject': subject,
|
||||||
|
@ -134,7 +134,7 @@ class CommandExecutionAlert(CommandAlertMixin, SystemMessage):
|
||||||
subject = _("Insecure Web Command Execution Alert: [%(name)s]") % {
|
subject = _("Insecure Web Command Execution Alert: [%(name)s]") % {
|
||||||
'name': command['user'],
|
'name': command['user'],
|
||||||
}
|
}
|
||||||
message = self._get_message(command)
|
message = self._get_message()
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'subject': subject,
|
'subject': subject,
|
||||||
|
|
Loading…
Reference in New Issue