Class: RepositoryManager::Sharing
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- RepositoryManager::Sharing
- Defined in:
- app/models/repository_manager/sharing.rb
Instance Method Summary collapse
-
#add_members(members, sharing_permissions = RepositoryManager.default_sharing_permissions) ⇒ Object
Add members to the sharing.
-
#get_permissions(member) ⇒ Object
Return the permissions of the sharing for the member.
-
#remove_members(members) ⇒ Object
Remove members to the sharing.
Instance Method Details
#add_members(members, sharing_permissions = RepositoryManager.default_sharing_permissions) ⇒ Object
Add members to the sharing
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'app/models/repository_manager/sharing.rb', line 35 def add_members(members, = RepositoryManager.) if members.kind_of?(Array) # Add each member to this sharing members.each do |i| unless i.respond_to? :create_folder # Check if this object "has_repository" raise RepositoryManager::RepositoryManagerException.new("add members failed. The object passed into members should be a model who 'has_repository'") end sharing_member = RepositoryManager::SharingsMember.new() sharing_member.member = i # Add the sharings members in the sharing self.sharings_members << sharing_member end else unless members.respond_to? :create_folder # Check if this object "has_repository" raise RepositoryManager::RepositoryManagerException.new("add members failed. The object passed into members should be a model who 'has_repository'") end sharing_member = RepositoryManager::SharingsMember.new() sharing_member.member = members # Add the sharings members in the sharing self.sharings_members << sharing_member end end |
#get_permissions(member) ⇒ Object
Return the permissions of the sharing for the member
23 24 25 26 27 28 29 30 31 32 |
# File 'app/models/repository_manager/sharing.rb', line 23 def (member) # If the member is the owner, he can do what he want ! if self.owner == member return true elsif i = self.sharings_members.where(member: member).first return {can_add: i.can_add, can_remove: i.can_remove} else return false end end |
#remove_members(members) ⇒ Object
Remove members to the sharing
59 60 61 62 63 64 65 66 67 68 |
# File 'app/models/repository_manager/sharing.rb', line 59 def remove_members(members) if members.kind_of?(Array) # Add each member to this sharing members.each do |member| self.sharings_members.where(member: member).first.destroy end else self.sharings_members.where(member: members).first.destroy end end |