summaryrefslogtreecommitdiff
path: root/app/models/user.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/user.rb')
-rw-r--r--app/models/user.rb12
1 files changed, 9 insertions, 3 deletions
diff --git a/app/models/user.rb b/app/models/user.rb
index ff09c70..24e7a2d 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -151,6 +151,10 @@ class User < ActiveRecord::Base
self.role ||= Role.get(:normal)
end
+ def set_badge
+ self.badge ||= Badge.get(:none)
+ end
+
def set_uuid
if !self.uuid.present?
# idk
@@ -175,9 +179,9 @@ class User < ActiveRecord::Base
self.email_token ||= SecureRandom.hex(16)
end
- def self.search (search, role, badge)
+ def self.search (search, role, badge, staff)
if role
- if role.try(:downcase) == "staff"
+ if staff
users = User.joins(:role).where("roles.value >= ?", Role.get(:mod).to_i)
else
users = User.joins(:role).where(role: role)
@@ -189,6 +193,8 @@ class User < ActiveRecord::Base
users = User.joins(:role).all.where.not(id: User.first.id)
end
search_san = User.send(:sanitize_sql_like, search.to_s)
- 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
+ users
end
end