Class: Alberich::Permission

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

Instance Method Summary collapse

Instance Method Details

#update_derived_permissionsObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'app/models/alberich/permission.rb', line 31

def update_derived_permissions
  new_derived_permission_objects = permission_object.derived_subtree(role)
  old_derived_permissions = derived_permissions
  old_derived_permissions.each do |derived_perm|
    if new_derived_permission_objects.delete(derived_perm.permission_object)
      # object is in both old and new list -- update as necessary
      derived_perm.role = role
      derived_perm.entity_id = entity_id
      derived_perm.save!
    else
      # object is in old but not new list -- remove it
      derived_perm.destroy
    end
  end
  new_derived_permission_objects.each do |perm_obj|
    unless DerivedPermission.where(:permission_id => id,
                                   :permission_object_id => perm_obj.id,
                                   :permission_object_type =>
                                     perm_obj.class.name).any?
      derived_perm = DerivedPermission.new(:entity_id => entity_id,
                                           :role_id => role_id,
                                           :permission_object => perm_obj,
                                           :permission => self)
      derived_perm.save!
    end
  end
end

#userObject



24
25
26
# File 'app/models/alberich/permission.rb', line 24

def user
  entity.user
end

#user_groupObject



27
28
29
# File 'app/models/alberich/permission.rb', line 27

def user_group
  entity.user_group
end