mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-06 09:21:54 +00:00
support login_id field when admin create user (#6021)
This commit is contained in:
@@ -320,7 +320,9 @@ def get_user_share_link_info(fileshare):
|
||||
return data
|
||||
|
||||
|
||||
def create_user_info(request, email, role, nickname, contact_email, quota_total_mb):
|
||||
def create_user_info(request, email, role, nickname,
|
||||
contact_email, quota_total_mb,
|
||||
login_id):
|
||||
# update additional user info
|
||||
|
||||
if is_pro_version() and role:
|
||||
@@ -344,6 +346,9 @@ def create_user_info(request, email, role, nickname, contact_email, quota_total_
|
||||
else:
|
||||
seafile_api.set_user_quota(email, quota_total)
|
||||
|
||||
if login_id is not None:
|
||||
Profile.objects.add_or_update(email, login_id=login_id)
|
||||
|
||||
|
||||
def update_user_info(request, user, password, is_active, is_staff, role,
|
||||
nickname, login_id, contact_email, reference_id,
|
||||
@@ -568,7 +573,7 @@ class AdminUsers(APIView):
|
||||
|
||||
# sort
|
||||
users.sort(key=lambda item: item.quota_usage,
|
||||
reverse = direction == 'desc')
|
||||
reverse=direction == 'desc')
|
||||
|
||||
data = []
|
||||
MULTI_INSTITUTION = getattr(settings, 'MULTI_INSTITUTION', False)
|
||||
@@ -845,12 +850,21 @@ class AdminUsers(APIView):
|
||||
error_msg = 'password required.'
|
||||
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
||||
|
||||
login_id = request.data.get("login_id", None)
|
||||
if login_id is not None:
|
||||
login_id = login_id.strip()
|
||||
username_by_login_id = Profile.objects.get_username_by_login_id(login_id)
|
||||
if username_by_login_id is not None:
|
||||
return api_error(status.HTTP_400_BAD_REQUEST,
|
||||
_("Login id %s already exists." % login_id))
|
||||
|
||||
# create user
|
||||
try:
|
||||
user_obj = User.objects.create_user(email, password, is_staff, is_active)
|
||||
create_user_info(request, email=user_obj.username, role=role,
|
||||
nickname=name, contact_email=email,
|
||||
quota_total_mb=quota_total_mb)
|
||||
quota_total_mb=quota_total_mb,
|
||||
login_id=login_id)
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
error_msg = 'Internal Server Error'
|
||||
@@ -862,9 +876,7 @@ class AdminUsers(APIView):
|
||||
try:
|
||||
send_html_email(_('You are invited to join %s') % get_site_name(),
|
||||
'sysadmin/user_add_email.html',
|
||||
c,
|
||||
None,
|
||||
[email2contact_email(email)])
|
||||
c, None, [email2contact_email(email)])
|
||||
|
||||
add_user_tip = _('Successfully added user %(user)s. An email notification has been sent.') % {'user': email}
|
||||
except Exception as e:
|
||||
@@ -1073,7 +1085,6 @@ class AdminSearchUser(APIView):
|
||||
ccnet_users = ccnet_ldap_import_users[-per_page:]
|
||||
|
||||
# search user from profile
|
||||
profile_users = []
|
||||
all_ccnet_users = ccnet_db_users + ccnet_ldap_import_users
|
||||
all_profile_users = []
|
||||
|
||||
@@ -1192,7 +1203,7 @@ class AdminUser(APIView):
|
||||
|
||||
def get(self, request, email):
|
||||
|
||||
if not (request.user.admin_permissions.can_manage_user() or \
|
||||
if not (request.user.admin_permissions.can_manage_user() or
|
||||
request.user.admin_permissions.can_update_user()):
|
||||
return api_error(status.HTTP_403_FORBIDDEN, 'Permission denied.')
|
||||
|
||||
@@ -1229,7 +1240,7 @@ class AdminUser(APIView):
|
||||
|
||||
def put(self, request, email):
|
||||
|
||||
if not (request.user.admin_permissions.can_manage_user() or \
|
||||
if not (request.user.admin_permissions.can_manage_user() or
|
||||
request.user.admin_permissions.can_update_user()):
|
||||
return api_error(status.HTTP_403_FORBIDDEN, 'Permission denied.')
|
||||
|
||||
|
Reference in New Issue
Block a user