Class: RepositoryManager::Sharing

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/repository_manager/sharing.rb

Instance Method Summary collapse

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, sharing_permissions = RepositoryManager.default_sharing_permissions)
  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_permissions)
      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_permissions)
    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 get_permissions(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