diff --git a/app/models/user.rb b/app/models/user.rb index 9620bfe..fb8d95a 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -168,21 +168,21 @@ class User < ApplicationRecord end def services_enabled - ldap_entry[:service] || [] + ldap_entry[:services_enabled] || [] end def enable_service(service) current_services = services_enabled new_services = Array(service).map(&:to_s) services = (current_services + new_services).uniq - ldap.replace_attribute(dn, :service, services) + ldap.replace_attribute(dn, :serviceEnabled, services) end def disable_service(service) current_services = services_enabled disabled_services = Array(service).map(&:to_s) services = (current_services - disabled_services).uniq - ldap.replace_attribute(dn, :service, services) + ldap.replace_attribute(dn, :serviceEnabled, services) end def disable_all_services diff --git a/app/services/ldap_service.rb b/app/services/ldap_service.rb index 91b6dd9..371f9a9 100644 --- a/app/services/ldap_service.rb +++ b/app/services/ldap_service.rb @@ -74,9 +74,10 @@ class LdapService < ApplicationService mail: e.try(:mail) ? e.mail.first : nil, display_name: e.try(:displayName) ? e.displayName.first : nil, admin: e.try(:admin) ? 'admin' : nil, - service: e.try(:service), + services_enabled: e.try(:serviceEnabled), email_maildrop: e.try(:mailRoutingAddress), - email_password: e.try(:mailpassword) + email_password: e.try(:mailpassword), + nostr_key: e.try(:nostrKey) } end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 7011793..3758d3b 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -66,7 +66,7 @@ RSpec.describe User, type: :model do it "returns the entries from the LDAP service attribute" do expect(user).to receive(:ldap_entry).and_return({ uid: user.cn, ou: user.ou, mail: user.email, admin: nil, - service: ["discourse", "email", "gitea", "wiki", "xmpp"] + services_enabled: ["discourse", "email", "gitea", "wiki", "xmpp"] }) expect(user.services_enabled).to eq(["discourse", "email", "gitea", "wiki", "xmpp"]) end @@ -76,21 +76,21 @@ RSpec.describe User, type: :model do before do allow(user).to receive(:ldap_entry).and_return({ uid: user.cn, ou: user.ou, mail: user.email, admin: nil, - service: ["discourse", "gitea"] + services_enabled: ["discourse", "gitea"] }) allow(user).to receive(:dn).and_return(dn) end it "adds the service to the LDAP entry" do expect_any_instance_of(LdapService).to receive(:replace_attribute) - .with(dn, :service, ["discourse", "gitea", "wiki"]).and_return(true) + .with(dn, :serviceEnabled, ["discourse", "gitea", "wiki"]).and_return(true) user.enable_service(:wiki) end it "adds multiple service to the LDAP entry" do expect_any_instance_of(LdapService).to receive(:replace_attribute) - .with(dn, :service, ["discourse", "gitea", "wiki", "xmpp"]).and_return(true) + .with(dn, :serviceEnabled, ["discourse", "gitea", "wiki", "xmpp"]).and_return(true) user.enable_service([:wiki, :xmpp]) end @@ -100,21 +100,21 @@ RSpec.describe User, type: :model do before do allow(user).to receive(:ldap_entry).and_return({ uid: user.cn, ou: user.ou, mail: user.email, admin: nil, - service: ["discourse", "gitea", "xmpp"] + services_enabled: ["discourse", "gitea", "xmpp"] }) allow(user).to receive(:dn).and_return(dn) end it "removes the service from the LDAP entry" do expect_any_instance_of(LdapService).to receive(:replace_attribute) - .with(dn, :service, ["discourse", "gitea"]).and_return(true) + .with(dn, :serviceEnabled, ["discourse", "gitea"]).and_return(true) user.disable_service(:xmpp) end it "removes multiple services from the LDAP entry" do expect_any_instance_of(LdapService).to receive(:replace_attribute) - .with(dn, :service, ["discourse"]).and_return(true) + .with(dn, :serviceEnabled, ["discourse"]).and_return(true) user.disable_service([:xmpp, "gitea"]) end