18
app/services/ldap_manager/fetch_user_by_nostr_key.rb
Normal file
18
app/services/ldap_manager/fetch_user_by_nostr_key.rb
Normal file
@@ -0,0 +1,18 @@
|
||||
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
|
||||
16
app/services/ldap_manager/update_nostr_key.rb
Normal file
16
app/services/ldap_manager/update_nostr_key.rb
Normal file
@@ -0,0 +1,16 @@
|
||||
module LdapManager
|
||||
class UpdateNostrKey < LdapManagerService
|
||||
def initialize(dn:, pubkey:)
|
||||
@dn = dn
|
||||
@pubkey = pubkey
|
||||
end
|
||||
|
||||
def call
|
||||
if @pubkey.present?
|
||||
replace_attribute @dn, :nostrKey, @pubkey
|
||||
else
|
||||
delete_attribute @dn, :nostrKey
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user