Module: Burlesque::Admin::InstanceMethods
- Defined in:
- app/models/burlesque/admin.rb
Instance Method Summary collapse
-
#group?(group) ⇒ Boolean
Public: Indica si tiene un grupo en particular.
-
#group_ids=(ids) ⇒ Object
Public: Permite setear los grupos que se indican.
-
#role?(role) ⇒ Boolean
Public: Indica si tiene un rol en particular.
-
#role_ids=(ids) ⇒ Object
Public: Permite setear los roles que se indican.
-
#role_in_groups?(role) ⇒ Boolean
Public: Indica si un rol en particular esta presente en los grupos que tiene asignados.
Instance Method Details
#group?(group) ⇒ Boolean
Public: Indica si tiene un grupo en particular.
group - el grupo que se quiere consultar, puede ser un Group o Group.name
Returns Boolean.
35 36 37 38 |
# File 'app/models/burlesque/admin.rb', line 35 def group? group group_name = group.respond_to?(:name) ? group.name : group self.groups.map(&:name).include?(group_name.to_s) end |
#group_ids=(ids) ⇒ Object
Public: Permite setear los grupos que se indican. Eliminando los grupos que no esten en la lista.
ids - id’s de los Grupos que se desean asignar destructivamente.
Returns nothing.
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'app/models/burlesque/admin.rb', line 59 def group_ids=(ids) ids.each do |group_id| if group_id.presence group = ::Burlesque::Group.find(group_id) self.groups << group unless self.groups.include?(group) end end to_deletes = [] self.groups.each do |group| to_deletes << group unless ids.include?(group.id) or ids.include?(group.id.to_s) end to_deletes.each do |group| self.groups.delete(group) if self.group?(group) end end |
#role?(role) ⇒ Boolean
Public: Indica si tiene un rol en particular.
role - el rol que se quiere consultar, puede ser un Role o Role.name
Returns Boolean.
25 26 27 28 |
# File 'app/models/burlesque/admin.rb', line 25 def role? role role_name = role.respond_to?(:name) ? role.name : role self.roles.map(&:name).include?(role_name.to_s) end |
#role_ids=(ids) ⇒ Object
Public: Permite setear los roles que se indican. Eliminando los roles que no esten en la lista, salvo en caso de estar presente por asignacion de un grupo.
ids - id’s de los Roles que se desean asignar destructivamente.
Returns nothing.
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'app/models/burlesque/admin.rb', line 84 def role_ids=(ids) ids.each do |role_id| if role_id.presence role = ::Burlesque::Role.find(role_id) self.roles << role unless self.role?(role) end end to_deletes = [] self.roles.each do |role| to_deletes << role unless ids.include?(role.id) or ids.include?(role.id.to_s) or self.role_in_groups?(role) end to_deletes.each do |role| self.roles.delete(role) if self.roles.include?(role) end end |
#role_in_groups?(role) ⇒ Boolean
Public: Indica si un rol en particular esta presente en los grupos que tiene asignados.
role - el rol que se quiere consultar, puede ser un Role o Role.name
Returns Boolean.
45 46 47 48 49 50 51 |
# File 'app/models/burlesque/admin.rb', line 45 def role_in_groups? role role_name = role.respond_to?(:name) ? role.name : role groups.each do |group| return true if group.role?(role_name) end false end |