From 678e80a25df0dcc2333dedb8381491560f005309 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A2u=20Cao?= Date: Sat, 25 Feb 2023 15:30:23 +0800 Subject: [PATCH] Retrieve ldap entry from user model --- app/models/user.rb | 6 ++++++ app/services/ldap_service.rb | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) 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] }