22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/legion/extensions/identity/ldap/helpers/group_sync.rb', line 22
def resolve_profile(canonical_name:)
cfg = ldap_settings
return nil if cfg.nil? || cfg[:host].nil?
ldap = build_ldap_client(cfg)
return { success: false, error: 'LDAP bind failed' } unless ldap.bind
search_user(
ldap: ldap,
username: canonical_name,
base_dn: cfg[:base_dn],
user_filter: cfg.fetch(:user_filter, '(sAMAccountName=%<username>s)'),
group_attribute: cfg.fetch(:group_attribute, 'memberOf')
)
rescue Net::LDAP::Error => e
{ success: false, error: "LDAP error: #{e.message}" }
end
|