mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-20 10:58:33 +00:00
remove duplicated emails when sysadmin search user
This commit is contained in:
@@ -1443,22 +1443,33 @@ def user_search(request):
|
|||||||
"""
|
"""
|
||||||
email = request.GET.get('email', '')
|
email = request.GET.get('email', '')
|
||||||
|
|
||||||
|
user_emails = []
|
||||||
# search user from ccnet db
|
# search user from ccnet db
|
||||||
users = ccnet_api.search_emailusers('DB', email, -1, -1)
|
users_from_ccnet = ccnet_api.search_emailusers('DB', email, -1, -1)
|
||||||
|
for user in users_from_ccnet:
|
||||||
|
user_emails.append(user.email)
|
||||||
|
|
||||||
# search user from ccnet ldap
|
# search user from ccnet ldap
|
||||||
ldap_users = ccnet_api.search_emailusers('LDAP', email, -1, -1)
|
users_from_ldap = ccnet_api.search_emailusers('LDAP', email, -1, -1)
|
||||||
users.extend(ldap_users)
|
for user in users_from_ldap:
|
||||||
|
user_emails.append(user.email)
|
||||||
|
|
||||||
# search user from profile
|
# search user from profile
|
||||||
users_from_profile = Profile.objects.filter((Q(nickname__icontains=email)) |
|
users_from_profile = Profile.objects.filter((Q(nickname__icontains=email)) |
|
||||||
Q(contact_email__icontains=email))
|
Q(contact_email__icontains=email))
|
||||||
|
|
||||||
for user in users_from_profile:
|
for user in users_from_profile:
|
||||||
|
user_emails.append(user.user)
|
||||||
|
|
||||||
|
# remove duplicate emails
|
||||||
|
user_emails = {}.fromkeys(user_emails).keys()
|
||||||
|
|
||||||
|
users = []
|
||||||
|
for user_email in user_emails:
|
||||||
try:
|
try:
|
||||||
user_obj = User.objects.get(email=user.user)
|
user_obj = User.objects.get(email=user_email)
|
||||||
except User.DoesNotExist:
|
except User.DoesNotExist:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
users.append(user_obj)
|
users.append(user_obj)
|
||||||
|
|
||||||
last_logins = UserLastLogin.objects.filter(username__in=[x.email for x in users])
|
last_logins = UserLastLogin.objects.filter(username__in=[x.email for x in users])
|
||||||
|
Reference in New Issue
Block a user