Module: FatFreeCRM::Permissions::InstanceMethods

Defined in:
lib/fat_free_crm/permissions.rb

Instance Method Summary collapse

Instance Method Details

#access=(value) ⇒ Object

Remove all shared permissions if no longer shared




61
62
63
64
# File 'lib/fat_free_crm/permissions.rb', line 61

def access=(value)
  remove_permissions unless value == 'Shared'
  super(value)
end

#remove_permissionsObject

Removes all permissions on an object




68
69
70
71
72
73
74
75
76
77
# File 'lib/fat_free_crm/permissions.rb', line 68

def remove_permissions
  # we don't use dependent => :destroy so must manually remove
  permissions_to_remove = if id && self.class
                            Permission.where(asset_id: id, asset_type: self.class.name).to_a
                          else
                            []
                          end

  permissions_to_remove.each { |p| permissions.delete(p); p.destroy }
end

#save_with_model_permissions(model) ⇒ Object

Save the model copying other model’s permissions.




81
82
83
84
85
86
# File 'lib/fat_free_crm/permissions.rb', line 81

def save_with_model_permissions(model)
  self.access    = model.access
  self.user_ids  = model.user_ids
  self.group_ids = model.group_ids
  save
end