Fix #3941: Add ability to search users by inviter.

This commit is contained in:
evazion
2018-10-02 19:38:55 -05:00
parent abbe181de6
commit 0966a290e4
4 changed files with 15 additions and 17 deletions

View File

@@ -757,10 +757,6 @@ class User < ApplicationRecord
where("lower(name) = ?", name)
end
def name_matches(name)
where("lower(name) like ? escape E'\\\\'", name.to_escaped_for_sql_like)
end
def admins
where("level = ?", Levels::ADMIN)
end
@@ -794,12 +790,15 @@ class User < ApplicationRecord
def search(params)
q = super
if params[:name].present?
q = q.name_matches(params[:name].mb_chars.downcase.strip.tr(" ", "_"))
end
params = params.dup
params[:name_matches] = params.delete(:name) if params[:name].present?
if params[:name_matches].present?
q = q.name_matches(params[:name_matches].mb_chars.downcase.strip.tr(" ", "_"))
q = q.where_ilike(:name, normalize_name(params[:name_matches]))
end
if params[:inviter].present?
q = q.where(inviter_id: search(params[:inviter]))
end
if params[:min_level].present?