Class: Confluence::Jobs::DisableExpiredUsers
- Inherits:
-
Object
- Object
- Confluence::Jobs::DisableExpiredUsers
- Defined in:
- lib/confluence/jobs/disable_expired_users.rb
Instance Method Summary collapse
-
#confluence_user_names ⇒ Array<String>
Confluence user names.
-
#disable_expired_users ⇒ Object
Disables any users that are expired in LDAP or are no longer in LDAP.
- #eligible_for_confluence?(person) ⇒ Boolean
-
#execute ⇒ Object
Run the job.
- #find_in_confluence(name) ⇒ Confluence::User?
- #find_in_ldap(ldap_uid) ⇒ UCB::LDAP::Person?
-
#initialize ⇒ DisableExpiredUsers
constructor
A new instance of DisableExpiredUsers.
- #log_job ⇒ Object
- #logger ⇒ Object
Constructor Details
#initialize ⇒ DisableExpiredUsers
Returns a new instance of DisableExpiredUsers.
9 10 11 |
# File 'lib/confluence/jobs/disable_expired_users.rb', line 9 def initialize() @disabled_users = [] end |
Instance Method Details
#confluence_user_names ⇒ Array<String>
Returns confluence user names.
52 53 54 |
# File 'lib/confluence/jobs/disable_expired_users.rb', line 52 def confluence_user_names() Confluence::User.active.map(&:name) end |
#disable_expired_users ⇒ Object
Disables any users that are expired in LDAP or are no longer in LDAP.
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/confluence/jobs/disable_expired_users.rb', line 25 def disable_expired_users() confluence_user_names.each do |name| next if name == "conflusa" ldap_person = find_in_ldap(name) if ldap_person.nil? || !eligible_for_confluence?(ldap_person) user = find_in_confluence(name) user.disable() @disabled_users << user end end end |
#eligible_for_confluence?(person) ⇒ Boolean
72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/confluence/jobs/disable_expired_users.rb', line 72 def eligible_for_confluence?(person) valid_affiliations = person.affiliations.inject([]) do |accum, aff| if aff =~ /AFFILIATE-TYPE.*(ALUMNUS|RETIREE|EXPIRED)/ accum elsif aff =~ /AFFILIATE-TYPE.*/ accum << aff end accum end person.employee? || !valid_affiliations.empty? end |
#execute ⇒ Object
Run the job
16 17 18 19 20 |
# File 'lib/confluence/jobs/disable_expired_users.rb', line 16 def execute() @disabled_users.clear() disable_expired_users() log_job() end |
#find_in_confluence(name) ⇒ Confluence::User?
60 61 62 |
# File 'lib/confluence/jobs/disable_expired_users.rb', line 60 def find_in_confluence(name) Confluence::User.find_by_name(name) end |
#find_in_ldap(ldap_uid) ⇒ UCB::LDAP::Person?
68 69 70 |
# File 'lib/confluence/jobs/disable_expired_users.rb', line 68 def find_in_ldap(ldap_uid) UCB::LDAP::Person.find_by_uid(ldap_uid) end |
#log_job ⇒ Object
38 39 40 41 42 43 |
# File 'lib/confluence/jobs/disable_expired_users.rb', line 38 def log_job() msg = "#{self.class.name}\n\n" msg.concat("Disabled the following Users:\n\n") @disabled_users.each { |u| msg.concat(u.to_s()) } logger.info(msg) end |
#logger ⇒ Object
45 46 47 |
# File 'lib/confluence/jobs/disable_expired_users.rb', line 45 def logger() Confluence.logger end |