Class: Capability

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/capability.rb

Instance Method Summary collapse

Instance Method Details

#groupsObject



61
62
63
# File 'app/models/capability.rb', line 61

def groups
  Group.joins(:capability_accessors).where(:capability_accessors => {:capability_id => self.id })
end

#groups_notObject



54
55
56
57
58
59
# File 'app/models/capability.rb', line 54

def groups_not
  Group.joins("LEFT JOIN capability_accessors ON capability_accessors.capability_id = #{self.id}
                      AND capability_accessors.capability_accessor_record_type = 'Group' 
                      AND capability_accessors.capability_accessor_record_id = groups.id").
        where("capability_accessors.id IS NULL")
end

#remove_all_rolesObject



35
36
37
# File 'app/models/capability.rb', line 35

def remove_all_roles
  capability_accessors.destroy_all
end

#rolesObject



39
40
41
# File 'app/models/capability.rb', line 39

def roles
  SecurityRole.joins(:capability_accessors).where(:capability_accessors => {:capability_id => self.id })
end

#roles_notObject



28
29
30
31
32
33
# File 'app/models/capability.rb', line 28

def roles_not
  SecurityRole.joins("LEFT JOIN capability_accessors ON capability_accessors.capability_id = #{self.id}
                      AND capability_accessors.capability_accessor_record_type = 'SecurityRole' 
                      AND capability_accessors.capability_accessor_record_id = security_roles.id").
              where("capability_accessors.id IS NULL")
end

#update_descriptionObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/models/capability.rb', line 13

def update_description
  if description.blank?
    desc = "#{capability_type.description} #{capability_resource_type}"
    case scope_type 
    when ScopeType.find_by_internal_identifier('class')
      self.description = "#{desc}"
    when ScopeType.find_by_internal_identifier('instance')
      self.description = "#{desc} Instance"
    when ScopeType.find_by_internal_identifier('query')
      self.description = "#{desc} Scope"
    end
    self.save
  end
end

#usersObject



50
51
52
# File 'app/models/capability.rb', line 50

def users
  User.joins(:capability_accessors).where(:capability_accessors => {:capability_id => self.id })
end

#users_notObject



43
44
45
46
47
48
# File 'app/models/capability.rb', line 43

def users_not
  User.joins("LEFT JOIN capability_accessors ON capability_accessors.capability_id = #{self.id}
                      AND capability_accessors.capability_accessor_record_type = 'User' 
                      AND capability_accessors.capability_accessor_record_id = users.id").
      where("capability_accessors.id IS NULL")
end