Archived
fix user search
This commit is contained in:
+7
-11
@@ -176,21 +176,17 @@ class User < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def self.search (search, role, badge, staff)
|
def self.search (search, role, badge, staff)
|
||||||
|
users = User.joins(:role)
|
||||||
if role
|
if role
|
||||||
if staff
|
users = staff ? users.where("roles.value >= ?", Role.get(:mod).to_i) : users.where(role: role)
|
||||||
users = User.joins(:role).where("roles.value >= ?", Role.get(:mod).to_i)
|
|
||||||
else
|
|
||||||
users = User.joins(:role).where(role: role)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if badge
|
|
||||||
users = User.joins(:badge).where(badge: badge)
|
|
||||||
else
|
|
||||||
users = User.joins(:role).all.where.not(id: User.first.id)
|
|
||||||
end
|
end
|
||||||
|
users = users.where(badge: badge) if badge
|
||||||
|
if search
|
||||||
search_san = User.send(:sanitize_sql_like, search.to_s)
|
search_san = User.send(:sanitize_sql_like, search.to_s)
|
||||||
users = users.where("users.name like ? OR ign like ?", "%#{search_san}%", "%#{search_san}%")
|
users = users.where("users.name like ? OR ign like ?", "%#{search_san}%", "%#{search_san}%")
|
||||||
users = users.order("roles.value desc", "confirmed desc", :name) unless badge
|
end
|
||||||
|
users = users.where.not(id: User.first.id) unless [search, role, badge].any?
|
||||||
|
users = users.order("roles.value desc", "confirmed desc", :name)
|
||||||
users
|
users
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user