class LdapDisambiguate::Email
This class allows you to use LDAP to extract user information
from an email or list of emails
Public Class Methods
disambiguate(email)
click to toggle source
# File lib/ldap_disambiguate/email.rb, line 9 def disambiguate(email) return unless email.include?('@psu.edu') email_in_name(email) end
Private Class Methods
email_in_name(email_list)
click to toggle source
# File lib/ldap_disambiguate/email.rb, line 16 def email_in_name(email_list) parts = email_list.split(' ') emails = parts.select { |part| part.include?('@') } results = [] Array(emails).each do |email_str| email = Mail::Address.new(email_str) results << (ldap_attributes_for_id(email.local) || ldap_attributes_for_email(email.address) || [LdapUser.results_hash(mail: [email.address])]).first end results end
ldap_attributes_for_email(email)
click to toggle source
# File lib/ldap_disambiguate/email.rb, line 27 def ldap_attributes_for_email(email) users = LdapUser.query_ldap_by_mail(email, ldap_attrs) users.count < 1 ? nil : users end