Class: OpenStax::Accounts::Group

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/openstax/accounts/group.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#requestorObject

Returns the value of attribute requestor.



7
8
9
# File 'app/models/openstax/accounts/group.rb', line 7

def requestor
  @requestor
end

#syncingObject

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



75
76
77
78
79
80
81
82
83
# File 'app/models/openstax/accounts/group.rb', line 75

def add_member()
  return false unless .is_a? OpenStax::Accounts::
  gm = GroupMember.new
  gm.group = self
  gm.user = 
  return false unless gm.valid?
  gm.save if persisted?
  group_members << gm
end

#add_owner(account) ⇒ Object



65
66
67
68
69
70
71
72
73
# File 'app/models/openstax/accounts/group.rb', line 65

def add_owner()
  return false unless .is_a? OpenStax::Accounts::
  go = GroupOwner.new
  go.group = self
  go.user = 
  return false unless go.valid?
  go.save if persisted?
  group_owners << go
end

#has_direct_member?(account) ⇒ Boolean

Returns:

  • (Boolean)


55
56
57
58
# File 'app/models/openstax/accounts/group.rb', line 55

def has_direct_member?()
  return false unless .is_a? OpenStax::Accounts::
  !group_members.where(user_id: .id).first.nil?
end

#has_member?(account) ⇒ Boolean

Returns:

  • (Boolean)


60
61
62
63
# File 'app/models/openstax/accounts/group.rb', line 60

def has_member?()
  return false unless .is_a? OpenStax::Accounts::
  !.group_members.where(group_id: subtree_group_ids).first.nil?
end

#has_owner?(account) ⇒ Boolean

Returns:

  • (Boolean)


50
51
52
53
# File 'app/models/openstax/accounts/group.rb', line 50

def has_owner?()
  return false unless .is_a? OpenStax::Accounts::
  !group_owners.where(user_id: .id).first.nil?
end

#subtree_group_idsObject



99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'app/models/openstax/accounts/group.rb', line 99

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_idsObject



85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'app/models/openstax/accounts/group.rb', line 85

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