diff options
Diffstat (limited to 'app/models/user.rb')
-rw-r--r-- | app/models/user.rb | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index a96410a..3098cfc 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -175,7 +175,19 @@ class User < ActiveRecord::Base self.email_token ||= SecureRandom.hex(16) end - def self.search (users, search) - return users.where("users.name like ? OR ign like ?", "%#{User.send(:sanitize_sql_like, search)}%", "%#{User.send(:sanitize_sql_like, search)}%") + def self.search (search, role, badge) + if role + if role.downcase == "staff" + users = User.joins(:role).where("roles.value >= ?", Role.get(:mod).to_i) + elsif r = Role.get(role) + users = User.joins(:role).where(role: r) + else + end + elsif badge && b = Badge.get(badge) + users = User.joins(:badge).where(badge: b) + else + users = User.joins(:role).where.not(id: User.first.id) #Remove first user + end + return users.where("users.name like ? OR ign like ?", "%#{User.send(:sanitize_sql_like, search.to_s)}%", "%#{User.send(:sanitize_sql_like, search.to_s)}%") end end |