Class: Droom::GroupPermission

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.by_group_idObject



21
22
23
24
25
26
# File 'app/models/droom/group_permission.rb', line 21

def self.by_group_id
  all.each_with_object({}) do |gp, hash|
    hash[gp.group_id] ||= {}
    hash[gp.group_id][gp.permission.id] = gp
  end
end

Instance Method Details

#create_permission_for(user) ⇒ Object



17
18
19
# File 'app/models/droom/group_permission.rb', line 17

def create_permission_for(user)
  user_permissions.where(:user_id => user.id, :permission_id => permission.id).first_or_create
end

#create_user_permissionsObject

This is set up such that a personal permission created by group membership can be deleted while still leaving in place a personal permission that was granted separately.



11
12
13
14
15
# File 'app/models/droom/group_permission.rb', line 11

def create_user_permissions
  group.users.each do |user|
    create_permission_for(user)
  end
end