diff --git a/app/models/user.rb b/app/models/user.rb index dde6c1c..3c4be54 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -70,6 +70,12 @@ class User < ApplicationRecord end end + def ldap_entry + return @ldap_entry if defined?(@ldap_entry) + ldap = LdapService.new + @ldap_entry = ldap.fetch_users(uid: self.cn, ou: self.ou).first + end + def address "#{self.cn}@#{self.ou}" end diff --git a/app/services/ldap_service.rb b/app/services/ldap_service.rb index d68b992..baff4c9 100644 --- a/app/services/ldap_service.rb +++ b/app/services/ldap_service.rb @@ -43,7 +43,7 @@ class LdapService < ApplicationService end attributes = %w{dn cn uid mail admin} - filter = Net::LDAP::Filter.eq("uid", "*") + filter = Net::LDAP::Filter.eq("uid", args[:uid] || "*") entries = ldap_client.search(base: treebase, filter: filter, attributes: attributes) entries.sort_by! { |e| e.cn[0] }