1
0
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:
lian
2024-04-12 17:29:21 +08:00
committed by GitHub
parent df86fdf7d7
commit f947eca8b5

View File

@@ -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,
@@ -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.')