Class: SpudUser
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- SpudUser
- Includes:
- Concerns::SpudAuthentication
- Defined in:
- app/models/spud_user.rb
Class Method Summary collapse
-
.where_name_like(string) ⇒ Object
Returns an ActiveRecord::Relation performing a LIKE query against name columns.
Instance Method Summary collapse
-
#can_view_app?(admin_application) ⇒ Boolean
Returns true if the user can view a spud app based on it’s key.
- #full_name ⇒ Object
-
#has_admin_rights? ⇒ Boolean
Returns true if user can view at least one dashboard app.
-
#has_any_permission?(*tags) ⇒ Boolean
Check if a user has at least one out of a given list of permissions.
-
#has_permission?(*tags) ⇒ Boolean
Check if a user has a given list of permissions.
-
#permissions ⇒ Object
Return a list of SpudPermission objects for the user’s SpudRole.
Class Method Details
.where_name_like(string) ⇒ Object
Returns an ActiveRecord::Relation performing a LIKE query against name columns
76 77 78 79 |
# File 'app/models/spud_user.rb', line 76 def self.where_name_like(string) like = '%' + string + '%' return self.where('login like ? or concat(`first_name`, " ", `last_name`) like ?', like, like) end |
Instance Method Details
#can_view_app?(admin_application) ⇒ Boolean
Returns true if the user can view a spud app based on it’s key
32 33 34 35 36 37 38 39 |
# File 'app/models/spud_user.rb', line 32 def can_view_app?(admin_application) if self.super_admin? return true else key = admin_application[:key] return self..find{ |p| p.apps.include?(key) }.present? end end |
#full_name ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 |
# File 'app/models/spud_user.rb', line 10 def full_name if first_name.blank? && last_name.blank? return self.login end if self.first_name.blank? return self.last_name elsif self.last_name.blank? return self.first_name end return "#{self.first_name} #{self.last_name}" end |
#has_admin_rights? ⇒ Boolean
Returns true if user can view at least one dashboard app
23 24 25 26 27 28 29 |
# File 'app/models/spud_user.rb', line 23 def has_admin_rights? if self.super_admin? return true else return Spud::Core.admin_applications.find{ |app| self.can_view_app?(app) }.present? end end |
#has_any_permission?(*tags) ⇒ Boolean
Check if a user has at least one out of a given list of permissions
-
if one tag is supplied, return true if the tag matches
-
if multiple tags are supplied, return true if ANY tag matches
58 59 60 61 62 63 64 |
# File 'app/models/spud_user.rb', line 58 def (*) if self.super_admin? return true else return self..find{ |p| .include?(p.tag) }.present? end end |
#has_permission?(*tags) ⇒ Boolean
Check if a user has a given list of permissions
-
if one tag is supplied, return true if the tag matches
-
if multiple tags are supplied, return true if ALL tags match
45 46 47 48 49 50 51 52 |
# File 'app/models/spud_user.rb', line 45 def (*) if self.super_admin? return true else = self..collect(&:tag) return .find{ |tag| !.include?(tag) }.blank? end end |
#permissions ⇒ Object
Return a list of SpudPermission objects for the user’s SpudRole
67 68 69 70 71 72 73 |
# File 'app/models/spud_user.rb', line 67 def if !self.role return [] else return self.role. end end |