summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjomo <git@jomo.tv>2017-07-03 03:05:10 +0200
committerjomo <git@jomo.tv>2017-07-03 03:05:10 +0200
commit496e08393a5cc737fc82931fcb41aed53d61dfe7 (patch)
tree5e529a51e2cd7cf5a22177e7fcefe41787c363ca
parentb225dc57b2b06aee10ec9f7d0da11b9ca29f3fb0 (diff)
fix user search
-rw-r--r--app/models/user.rb22
1 files changed, 9 insertions, 13 deletions
diff --git a/app/models/user.rb b/app/models/user.rb
index d755646..3743136 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -174,23 +174,19 @@ class User < ActiveRecord::Base
def set_email_token
self.email_token ||= SecureRandom.hex(16)
end
-
+
def self.search (search, role, badge, staff)
+ users = User.joins(:role)
if role
- if staff
- users = User.joins(:role).where("roles.value >= ?", Role.get(:mod).to_i)
- else
- users = User.joins(:role).where(role: role)
- end
+ users = staff ? users.where("roles.value >= ?", Role.get(:mod).to_i) : users.where(role: role)
end
- if badge
- users = User.joins(:badge).where(badge: badge)
- else
- users = User.joins(:role).all.where.not(id: User.first.id)
+ users = users.where(badge: badge) if badge
+ if search
+ search_san = User.send(:sanitize_sql_like, search.to_s)
+ users = users.where("users.name like ? OR ign like ?", "%#{search_san}%", "%#{search_san}%")
end
- 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.order("roles.value desc", "confirmed desc", :name) unless badge
+ users = users.where.not(id: User.first.id) unless [search, role, badge].any?
+ users = users.order("roles.value desc", "confirmed desc", :name)
users
end
end