Class: OpenStax::Accounts::Group
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- OpenStax::Accounts::Group
- Defined in:
- app/models/openstax/accounts/group.rb
Instance Attribute Summary collapse
-
#requestor ⇒ Object
Returns the value of attribute requestor.
-
#syncing ⇒ Object
Returns the value of attribute syncing.
Instance Method Summary collapse
- #add_member(account) ⇒ Object
- #add_owner(account) ⇒ Object
- #has_direct_member?(account) ⇒ Boolean
- #has_member?(account) ⇒ Boolean
- #has_owner?(account) ⇒ Boolean
- #subtree_group_ids ⇒ Object
- #supertree_group_ids ⇒ Object
Instance Attribute Details
#requestor ⇒ Object
Returns the value of attribute requestor.
7 8 9 |
# File 'app/models/openstax/accounts/group.rb', line 7 def requestor @requestor end |
#syncing ⇒ Object
Returns the value of attribute syncing.
7 8 9 |
# File 'app/models/openstax/accounts/group.rb', line 7 def syncing @syncing end |
Instance Method Details
#add_member(account) ⇒ Object
72 73 74 75 76 77 78 79 80 81 |
# File 'app/models/openstax/accounts/group.rb', line 72 def add_member(account) return unless account.is_a? OpenStax::Accounts::Account gm = GroupMember.new gm.group = self gm.user = account return unless gm.valid? gm.save if persisted? group_members << gm gm end |
#add_owner(account) ⇒ Object
61 62 63 64 65 66 67 68 69 70 |
# File 'app/models/openstax/accounts/group.rb', line 61 def add_owner(account) return unless account.is_a? OpenStax::Accounts::Account go = GroupOwner.new go.group = self go.user = account return unless go.valid? go.save if persisted? group_owners << go go end |
#has_direct_member?(account) ⇒ Boolean
51 52 53 54 |
# File 'app/models/openstax/accounts/group.rb', line 51 def has_direct_member?(account) return false unless account.is_a? OpenStax::Accounts::Account !group_members.where(user_id: account.id).first.nil? end |
#has_member?(account) ⇒ Boolean
56 57 58 59 |
# File 'app/models/openstax/accounts/group.rb', line 56 def has_member?(account) return false unless account.is_a? OpenStax::Accounts::Account !account.group_members.where(group_id: subtree_group_ids).first.nil? end |
#has_owner?(account) ⇒ Boolean
46 47 48 49 |
# File 'app/models/openstax/accounts/group.rb', line 46 def has_owner?(account) return false unless account.is_a? OpenStax::Accounts::Account !group_owners.where(user_id: account.id).first.nil? end |
#subtree_group_ids ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'app/models/openstax/accounts/group.rb', line 97 def subtree_group_ids return cached_subtree_group_ids unless cached_subtree_group_ids.nil? return [] unless persisted? reload gids = [openstax_uid] + Group.includes(:container_group_nesting) .where(container_group_nesting: { container_group_id: openstax_uid }) .collect{|g| g.subtree_group_ids}.flatten update_column(:cached_subtree_group_ids, gids) self.cached_subtree_group_ids = gids end |
#supertree_group_ids ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'app/models/openstax/accounts/group.rb', line 83 def supertree_group_ids return cached_supertree_group_ids unless cached_supertree_group_ids.nil? return [] unless persisted? reload gids = [openstax_uid] + (Group.includes(:member_group_nestings) .where(member_group_nestings: { member_group_id: openstax_uid }) .first.try(:supertree_group_ids) || []) update_column(:cached_supertree_group_ids, gids) self.cached_supertree_group_ids = gids end |