Class: Confluence::Jobs::DisableExpiredUsers

Inherits:
Object
  • Object
show all
Defined in:
lib/confluence/jobs/disable_expired_users.rb

Instance Method Summary collapse

Constructor Details

#initializeDisableExpiredUsers

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_namesArray<String>

Returns confluence user names.

Returns:

  • (Array<String>)

    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_usersObject

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

Returns:

  • (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

#executeObject

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?

Parameters:

  • user's (String)

    confluence account name.

Returns:



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?

Parameters:

  • user's (String)

    ldap uid

Returns:

  • (UCB::LDAP::Person, nil)


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_jobObject



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

#loggerObject



45
46
47
# File 'lib/confluence/jobs/disable_expired_users.rb', line 45

def logger()
  Confluence.logger
end