Class: Alberich::PermissionSession

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

Instance Method Summary collapse

Instance Method Details

#add_to_session(user) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/models/alberich/permission_session.rb', line 19

def add_to_session(user)
  return unless user
  # create mapping for user-level permissions
  SessionEntity.create!(:permission_session_id => self.id,
                        :user => user,
                        :entity => Entity.for_target(user))
  # create mappings for groups
  user.send(Alberich.groups_for_user_method).each do |ug|
    SessionEntity.create!(:permission_session_id => self.id,
                          :user => user,
                          :entity => Entity.for_target(ug))
  end
end

#update_session_entities(user) ⇒ Object



11
12
13
14
15
16
17
# File 'app/models/alberich/permission_session.rb', line 11

def update_session_entities(user)
  SessionEntity.transaction do
    # skips callbacks, which should be fine here
    SessionEntity.delete_all(:permission_session_id => self.id)
    add_to_session(user)
  end
end