19 lines
		
	
	
		
			490 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			490 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
module LdapManager
 | 
						|
  class FetchUserByNostrKey < LdapManagerService
 | 
						|
    def initialize(pubkey:)
 | 
						|
      @ou = Setting.primary_domain
 | 
						|
      @pubkey = pubkey
 | 
						|
    end
 | 
						|
 | 
						|
    def call
 | 
						|
      treebase   = "ou=#{@ou},cn=users,#{ldap_suffix}"
 | 
						|
      attributes = %w{ cn }
 | 
						|
      filter     = Net::LDAP::Filter.eq("nostrKey", @pubkey)
 | 
						|
 | 
						|
      entry = client.search(base: treebase, filter: filter, attributes: attributes).first
 | 
						|
 | 
						|
      User.find_by cn: entry.cn, ou: @ou  unless entry.nil?
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |