Use keyword arguments for ApplicationService calls
Not all services are using keywords, which breaks those calls in Ruby 3
This commit is contained in:
@@ -21,7 +21,7 @@ class Admin::UsersController < Admin::BaseController
|
||||
|
||||
@services_enabled = @user.services_enabled
|
||||
|
||||
@avatar = LdapManager::FetchAvatar.call(cn: @user.cn, ou: @user.ou)
|
||||
@avatar = LdapManager::FetchAvatar.call(cn: @user.cn)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@@ -24,11 +24,11 @@ class SettingsController < ApplicationController
|
||||
|
||||
if @user.save
|
||||
if @user.display_name && (@user.display_name != @user.ldap_entry[:display_name])
|
||||
LdapManager::UpdateDisplayName.call(@user.dn, @user.display_name)
|
||||
LdapManager::UpdateDisplayName.call(dn: @user.dn, display_name: @user.display_name)
|
||||
end
|
||||
|
||||
if @user.avatar_new.present?
|
||||
LdapManager::UpdateAvatar.call(@user.dn, @user.avatar_new)
|
||||
LdapManager::UpdateAvatar.call(dn: @user.dn, file: @user.avatar_new)
|
||||
end
|
||||
|
||||
redirect_to setting_path(@settings_section), flash: {
|
||||
@@ -64,10 +64,10 @@ class SettingsController < ApplicationController
|
||||
@user.current_password = nil
|
||||
session[:new_email_password] = generate_email_password
|
||||
hashed_password = hash_email_password(session[:new_email_password])
|
||||
LdapManager::UpdateEmailPassword.call(@user.dn, hashed_password)
|
||||
LdapManager::UpdateEmailPassword.call(dn: @user.dn, password_hash: hashed_password)
|
||||
|
||||
if @user.ldap_entry[:email_maildrop] != @user.address
|
||||
LdapManager::UpdateEmailMaildrop.call(@user.dn, @user.address)
|
||||
LdapManager::UpdateEmailMaildrop.call(dn: @user.dn, address: @user.address)
|
||||
end
|
||||
|
||||
redirect_to new_password_services_email_path
|
||||
@@ -88,8 +88,8 @@ class SettingsController < ApplicationController
|
||||
|
||||
def set_nostr_pubkey
|
||||
signed_event = nostr_event_params[:signed_event].to_h.symbolize_keys
|
||||
is_valid_id = NostrManager::ValidateId.call(signed_event)
|
||||
is_valid_sig = NostrManager::VerifySignature.call(signed_event)
|
||||
is_valid_id = NostrManager::ValidateId.call(event: signed_event)
|
||||
is_valid_sig = NostrManager::VerifySignature.call(event: signed_event)
|
||||
is_correct_content = signed_event[:content] == "Connect my public key to #{current_user.address} (confirmation #{session[:shared_secret]})"
|
||||
|
||||
unless is_valid_id && is_valid_sig && is_correct_content
|
||||
|
||||
@@ -96,13 +96,13 @@ class SignupController < ApplicationController
|
||||
session[:new_user] = nil
|
||||
session[:validation_error] = nil
|
||||
|
||||
CreateAccount.call(
|
||||
CreateAccount.call(account: {
|
||||
username: @user.cn,
|
||||
domain: Setting.primary_domain,
|
||||
email: @user.email,
|
||||
password: @user.password,
|
||||
invitation: @invitation
|
||||
)
|
||||
})
|
||||
end
|
||||
|
||||
def set_context
|
||||
|
||||
@@ -11,6 +11,6 @@ class AppCatalog::WebApp < ApplicationRecord
|
||||
if: Proc.new { |a| a.url.present? }
|
||||
|
||||
def update_metadata
|
||||
AppCatalogManager::UpdateMetadata.call(self)
|
||||
AppCatalogManager::UpdateMetadata.call(app: self)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -92,7 +92,7 @@ class User < ApplicationRecord
|
||||
def devise_after_confirmation
|
||||
if ldap_entry[:mail] != self.email
|
||||
# E-Mail update confirmed
|
||||
LdapManager::UpdateEmail.call(self.dn, self.email)
|
||||
LdapManager::UpdateEmail.call(dn: self.dn, address: self.email)
|
||||
else
|
||||
# E-Mail from signup confirmed (i.e. account activation)
|
||||
|
||||
@@ -164,7 +164,7 @@ class User < ApplicationRecord
|
||||
end
|
||||
|
||||
def avatar
|
||||
@avatar_base64 ||= LdapManager::FetchAvatar.call(cn: cn, ou: ou)
|
||||
@avatar_base64 ||= LdapManager::FetchAvatar.call(cn: cn)
|
||||
end
|
||||
|
||||
def services_enabled
|
||||
|
||||
@@ -3,7 +3,7 @@ require "down"
|
||||
|
||||
module AppCatalogManager
|
||||
class UpdateMetadata < AppCatalogManagerService
|
||||
def initialize(app)
|
||||
def initialize(app:)
|
||||
@app = app
|
||||
end
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
class ApplicationService
|
||||
# This enables executing a service's `#call` method directly via
|
||||
# `MyService.call(args)`, without creating a class instance it first.
|
||||
def self.call(*args, &block)
|
||||
new(*args, &block).call
|
||||
def self.call(**args, &block)
|
||||
new(**args, &block).call
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
class CreateAccount < ApplicationService
|
||||
def initialize(args)
|
||||
@username = args[:username]
|
||||
@domain = args[:ou] || Setting.primary_domain
|
||||
@email = args[:email]
|
||||
@password = args[:password]
|
||||
@invitation = args[:invitation]
|
||||
@confirmed = args[:confirmed]
|
||||
def initialize(account:)
|
||||
@username = account[:username]
|
||||
@domain = account[:ou] || Setting.primary_domain
|
||||
@email = account[:email]
|
||||
@password = account[:password]
|
||||
@invitation = account[:invitation]
|
||||
@confirmed = account[:confirmed]
|
||||
end
|
||||
|
||||
def call
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
module LdapManager
|
||||
class FetchAvatar < LdapManagerService
|
||||
def initialize(cn:, ou: nil)
|
||||
def initialize(cn:)
|
||||
@cn = cn
|
||||
@ou = ou
|
||||
end
|
||||
|
||||
def call
|
||||
treebase = @ou ? "ou=#{@ou},cn=users,#{suffix}" : ldap_config["base"]
|
||||
treebase = ldap_config["base"]
|
||||
attributes = %w{ jpegPhoto }
|
||||
filter = Net::LDAP::Filter.eq("cn", @cn)
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ require "image_processing/vips"
|
||||
|
||||
module LdapManager
|
||||
class UpdateAvatar < LdapManagerService
|
||||
def initialize(dn, file)
|
||||
def initialize(dn:, file:)
|
||||
@dn = dn
|
||||
@img_data = process(file)
|
||||
end
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
module LdapManager
|
||||
class UpdateDisplayName < LdapManagerService
|
||||
def initialize(dn, display_name)
|
||||
def initialize(dn:, display_name:)
|
||||
@dn = dn
|
||||
@display_name = display_name
|
||||
end
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
module LdapManager
|
||||
class UpdateEmail < LdapManagerService
|
||||
def initialize(dn, address)
|
||||
def initialize(dn:, address:)
|
||||
@dn = dn
|
||||
@address = address
|
||||
end
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
module LdapManager
|
||||
class UpdateEmailMaildrop < LdapManagerService
|
||||
def initialize(dn, address)
|
||||
def initialize(dn:, address:)
|
||||
@dn = dn
|
||||
@address = address
|
||||
end
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
module LdapManager
|
||||
class UpdateEmailPassword < LdapManagerService
|
||||
def initialize(dn, password_hash)
|
||||
def initialize(dn:, password_hash:)
|
||||
@dn = dn
|
||||
@password_hash = password_hash
|
||||
end
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
module NostrManager
|
||||
class ValidateId < NostrManagerService
|
||||
def initialize(event)
|
||||
def initialize(event:)
|
||||
@event = Nostr::Event.new(**event)
|
||||
end
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
module NostrManager
|
||||
class VerifySignature < NostrManagerService
|
||||
def initialize(event)
|
||||
def initialize(event:)
|
||||
@event = Nostr::Event.new(**event)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user