1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-20 19:08:21 +00:00

remove duplicated emails when sysadmin search user

This commit is contained in:
lian
2016-08-20 14:23:28 +08:00
parent d1a2d5c825
commit 4b985b09d6

View File

@@ -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])