class Eco::API::Policies::DefaultPolicies::UserAccess

Attributes

account_removed_count[RW]
job[R]
options[R]
session[R]

Public Instance Methods

main(people, session, options, policy, job) click to toggle source
# File lib/eco/api/policies/default_policies/99_user_access_policy.rb, line 7
def main(people, session, options, policy, job)
  @session = session; @options = options; @job = job

  self.account_removed_count = 0

  people.each do |person|
    remove_account_when_no_email!(person)    if person.email.to_s.empty?
    person.account.policy_group_ids = defid  if no_policy_group_ids?(person)
  end

  warn_account_removal!
end

Private Instance Methods

default_group() click to toggle source
# File lib/eco/api/policies/default_policies/99_user_access_policy.rb, line 50
def default_group
  session.config.people.default_usergroup
end
defid() click to toggle source
# File lib/eco/api/policies/default_policies/99_user_access_policy.rb, line 46
def defid
  @defid ||= policy_groups.to_id([default_group]).compact
end
had_account?(person) click to toggle source
# File lib/eco/api/policies/default_policies/99_user_access_policy.rb, line 36
def had_account?(person)
  return false if person.new?
  return false if person.account_added?
  return !!person.original_doc["account"]
end
no_policy_group_ids?(person) click to toggle source
# File lib/eco/api/policies/default_policies/99_user_access_policy.rb, line 42
def no_policy_group_ids?(person)
  (account = person.account) &&  account.policy_group_ids.empty?
end
policy_groups() click to toggle source
# File lib/eco/api/policies/default_policies/99_user_access_policy.rb, line 54
def policy_groups
  session.policy_groups
end
remove_account_when_no_email!(person) click to toggle source
# File lib/eco/api/policies/default_policies/99_user_access_policy.rb, line 29
def remove_account_when_no_email!(person)
  if person.account
    self.account_removed_count += 1 if had_account?(person)
    person.account = nil
  end
end
warn_account_removal!() click to toggle source
# File lib/eco/api/policies/default_policies/99_user_access_policy.rb, line 22
def warn_account_removal!
  if account_removed_count > 0
    msg = "(DefaultPolicy on job '#{job.name}') Removed account to #{account_removed_count} people"
    session.logger.warn(msg)
  end
end