Sha256: 4c835a7271ba66aef01d849994fea47d1a541eb86ba71865d84894c97463523f

Contents?: true

Size: 1.45 KB

Versions: 25

Compression:

Stored size: 1.45 KB

Contents

class Eco::API::Policies::DefaultPolicies::UserAccess < Eco::API::Common::Loaders::Policy
  name "default-user-access"

  attr_reader   :session, :options, :job
  attr_accessor :account_removed_count

  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

  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

  def remove_account_when_no_email!(person)
    if person.account
      self.account_removed_count += 1 if had_account?(person)
      person.account = nil
    end
  end

  def had_account?(person)
    return false if person.new?
    return false if person.account_added?
    return !!person.original_doc["account"]
  end

  def no_policy_group_ids?(person)
    (account = person.account) &&  account.policy_group_ids.empty?
  end

  def defid
    @defid ||= policy_groups.to_id([default_group]).compact
  end

  def default_group
    session.config.people.default_usergroup
  end

  def policy_groups
    session.policy_groups
  end

end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
eco-helpers-2.0.42 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.41 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.40 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.39 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.38 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.37 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.36 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.35 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.34 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.33 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.32 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.31 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.30 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.29 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.28 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.27 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.26 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.25 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.24 lib/eco/api/policies/default_policies/99_user_access_policy.rb
eco-helpers-2.0.23 lib/eco/api/policies/default_policies/99_user_access_policy.rb