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



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

def add_member()
  return unless .is_a? OpenStax::Accounts::
  gm = GroupMember.new
  gm.group = self
  gm.user = 
  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()
  return unless .is_a? OpenStax::Accounts::
  go = GroupOwner.new
  go.group = self
  go.user = 
  return unless go.valid?
  go.save if persisted?
  group_owners << go
  go
end

#has_direct_member?(account) ⇒ Boolean

Returns:

  • (Boolean)


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

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)


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

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)


46
47
48
49
# File 'app/models/openstax/accounts/group.rb', line 46

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

#subtree_group_idsObject



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_idsObject



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