Module: Adhocracy::ActsAsMember::InstanceMethods
- Defined in:
- lib/adhocracy/acts_as_member.rb
Instance Method Summary collapse
- #administrations ⇒ Object
- #demote(member) ⇒ Object
- #group_invitations ⇒ Object
- #groups ⇒ Object
- #invited_to?(group, params = {}) ⇒ Boolean
- #join_group(group) ⇒ Object
- #leave_group(group) ⇒ Object
- #member_of?(group) ⇒ Boolean
- #membership_requests ⇒ Object
- #officer_of?(group) ⇒ Boolean
- #promote(group) ⇒ Object
- #request_membership_in(group) ⇒ Object
- #requested_membership_in?(group, params = {}) ⇒ Boolean
Instance Method Details
#administrations ⇒ Object
25 26 27 28 |
# File 'lib/adhocracy/acts_as_member.rb', line 25 def administrations Adhocracy::Membership.where(member: self, officer: true). includes(:group).collect { |membership| membership.group } end |
#demote(member) ⇒ Object
56 57 58 59 60 |
# File 'lib/adhocracy/acts_as_member.rb', line 56 def demote(member) membership = Adhocracy::Membership.find_by(member: self, group: member) return false if !membership.present? || !membership.officer? return membership.update_column(:officer, false) end |
#group_invitations ⇒ Object
30 31 32 33 |
# File 'lib/adhocracy/acts_as_member.rb', line 30 def group_invitations MembershipAssociation.new(member: self). list_groups_for_membership_invitation end |
#groups ⇒ Object
21 22 23 |
# File 'lib/adhocracy/acts_as_member.rb', line 21 def groups MembershipAssociation.new(member: self).list_groups_for_membership end |
#invited_to?(group, params = {}) ⇒ Boolean
80 81 82 83 |
# File 'lib/adhocracy/acts_as_member.rb', line 80 def invited_to?(group, params = {}) params.merge!({ member: self, group: group }) MembershipAssociation.new(params).verify_membership_invitation end |
#join_group(group) ⇒ Object
40 41 42 |
# File 'lib/adhocracy/acts_as_member.rb', line 40 def join_group(group) MembershipAssociation.new(member: self, group: group).create_membership end |
#leave_group(group) ⇒ Object
67 68 69 |
# File 'lib/adhocracy/acts_as_member.rb', line 67 def leave_group(group) MembershipAssociation.new(member: self, group: group).destroy_membership end |
#member_of?(group) ⇒ Boolean
71 72 73 |
# File 'lib/adhocracy/acts_as_member.rb', line 71 def member_of?(group) MembershipAssociation.new(member: self, group: group).verify_membership end |
#membership_requests ⇒ Object
35 36 37 38 |
# File 'lib/adhocracy/acts_as_member.rb', line 35 def membership_requests MembershipAssociation.new(member: self). list_groups_for_membership_request end |
#officer_of?(group) ⇒ Boolean
75 76 77 78 |
# File 'lib/adhocracy/acts_as_member.rb', line 75 def officer_of?(group) Adhocracy::Membership.where(member: self, group: group, officer: true).exists? end |
#promote(group) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/adhocracy/acts_as_member.rb', line 44 def promote(group) membership = Adhocracy::Membership.where(member: self, group: group). first_or_initialize(officer: true) if membership.new_record? membership.save else return false if membership.officer? membership.update_column(:officer, true) end return membership end |
#request_membership_in(group) ⇒ Object
62 63 64 65 |
# File 'lib/adhocracy/acts_as_member.rb', line 62 def request_membership_in(group) MembershipAssociation.new(member: self, group: group). create_membership_request end |
#requested_membership_in?(group, params = {}) ⇒ Boolean
85 86 87 88 |
# File 'lib/adhocracy/acts_as_member.rb', line 85 def requested_membership_in?(group, params = {}) params.merge!({ member: self, group: group }) MembershipAssociation.new(params).verify_membership_request end |