UX: Allow users to filter members on group page.

* Only admins are allowed to filter users by email.
This commit is contained in:
Guo Xiang Tan
2018-03-22 13:42:46 +08:00
parent 1cc0961566
commit f3b402ffd5
11 changed files with 171 additions and 25 deletions

View File

@@ -101,18 +101,6 @@ class AdminUserIndexQuery
end
end
def filter_by_user_with_bypass(filter)
if filter =~ /.+@.+/
# probably an email so try the bypass
user_id = UserEmail.where("lower(email) = ?", filter.downcase).pluck(:user_id).first
if user_id
return @query.where('users.id = ?', user_id)
end
end
@query.where('username_lower ILIKE :filter OR user_emails.email ILIKE :filter', filter: "%#{params[:filter]}%")
end
def filter_by_search
if params[:email].present?
return @query.where('user_emails.email = ?', params[:email].downcase)
@@ -124,7 +112,7 @@ class AdminUserIndexQuery
if ip = IPAddr.new(filter) rescue nil
@query.where('ip_address <<= :ip OR registration_ip_address <<= :ip', ip: ip.to_cidr_s)
else
filter_by_user_with_bypass(filter)
@query.filter_by_username_or_email(filter)
end
end
end