Module: PasswordExpirationNotifier::Utils
- Included in:
- CLI
- Defined in:
- lib/password_expiration_notifier/utils.rb
Instance Method Summary collapse
- #config(options) ⇒ Object
- #expire_at(password_last_set_t, expiration_days) ⇒ Object
- #expire_soon?(remaining, expire_within) ⇒ Boolean
- #expired?(remaining, expire_within) ⇒ Boolean
- #fetch_users(conf) ⇒ Object
- #now ⇒ Object
- #remaining(password_last_set_t, expiration_days) ⇒ Object
- #select(attr, conf) ⇒ Object
- #show_list(users) ⇒ Object
Instance Method Details
#config(options) ⇒ Object
69 70 71 |
# File 'lib/password_expiration_notifier/utils.rb', line 69 def config() PasswordExpirationNotifier::Config.new() end |
#expire_at(password_last_set_t, expiration_days) ⇒ Object
17 18 19 |
# File 'lib/password_expiration_notifier/utils.rb', line 17 def expire_at(password_last_set_t, expiration_days) password_last_set_t + (24 * 60 * 60 * expiration_days) end |
#expire_soon?(remaining, expire_within) ⇒ Boolean
21 22 23 |
# File 'lib/password_expiration_notifier/utils.rb', line 21 def expire_soon?(remaining, expire_within) remaining <= 0 || remaining <= expire_within end |
#expired?(remaining, expire_within) ⇒ Boolean
25 26 27 |
# File 'lib/password_expiration_notifier/utils.rb', line 25 def expired?(remaining, expire_within) remaining <= 0 || remaining > expire_within end |
#fetch_users(conf) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/password_expiration_notifier/utils.rb', line 50 def fetch_users(conf) ad = PasswordExpirationNotifier::LDAP.new(conf) ad.add_filter('objectClass', 'user') if conf.ldap.filterkey && conf.ldap.filtervalue ad.add_filter(conf.ldap.filterkey, conf.ldap.filtervalue) end selected_users = {} ad.users.each do |user, attr| attr[:remaining] = remaining(attr[:pwdlastset], conf.expiration_days) attr[:expire_at] = expire_at(attr[:pwdlastset], conf.expiration_days) if [:all] || expire_soon?(attr[:remaining], conf.expire_within) next if conf.exclude_expired && attr[:remaining] <= 0 selected_users[user] = attr end end selected_users end |
#now ⇒ Object
9 10 11 |
# File 'lib/password_expiration_notifier/utils.rb', line 9 def now @now ||= Time.now end |
#remaining(password_last_set_t, expiration_days) ⇒ Object
13 14 15 |
# File 'lib/password_expiration_notifier/utils.rb', line 13 def remaining(password_last_set_t, expiration_days) -((now - password_last_set_t).divmod(24*60*60)[0] - expiration_days) end |
#select(attr, conf) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/password_expiration_notifier/utils.rb', line 37 def select(attr, conf) if [:all] attr else if conf.exclude_expired && !expired?(attr[:remaining], conf.expire_within) attr end if expire_soon?(attr[:remaining], conf.expire_within) end end end |
#show_list(users) ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/password_expiration_notifier/utils.rb', line 29 def show_list(users) puts "username\tdescription\texpire_at\tremaining" users.sort_by {|user| user[1][:remaining] }.each do |user| attr = user[1] puts "#{attr[:samaccountname]}\t#{attr[:description]}\t#{attr[:expire_at]}\t#{attr[:remaining]}" end end |