Allow users to set/update their display name in LDAP
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing

This commit is contained in:
Râu Cao
2023-05-27 19:59:49 +02:00
parent 32d1992632
commit f74227fedb
9 changed files with 79 additions and 41 deletions

View File

@@ -12,12 +12,21 @@ class SettingsController < ApplicationController
end
def update
@user.preferences.merge! user_params[:preferences]
@user.save!
@user.preferences.merge!(user_params[:preferences] || {})
@user.display_name = user_params[:display_name]
redirect_to setting_path(@settings_section), flash: {
success: 'Settings saved.'
}
if @user.save
if @user.display_name && (@user.display_name != @user.ldap_entry[:display_name])
LdapManager::UpdateDisplayName.call(@user.dn, user_params[:display_name])
end
redirect_to setting_path(@settings_section), flash: {
success: 'Settings saved.'
}
else
@validation_errors = @user.errors
render :show, status: :unprocessable_entity
end
end
def update_email
@@ -46,30 +55,31 @@ class SettingsController < ApplicationController
private
def set_main_nav_section
@current_section = :settings
end
def set_settings_section
@settings_section = params[:section]
allowed_sections = [:profile, :account, :lightning, :xmpp]
unless allowed_sections.include?(@settings_section.to_sym)
redirect_to setting_path(:profile)
def set_main_nav_section
@current_section = :settings
end
def set_settings_section
@settings_section = params[:section]
allowed_sections = [:profile, :account, :lightning, :xmpp]
unless allowed_sections.include?(@settings_section.to_sym)
redirect_to setting_path(:profile)
end
end
end
def user_params
params.require(:user).permit(preferences: [
:lightning_notify_sats_received,
:xmpp_exchange_contacts_with_invitees
])
end
def set_user
@user = current_user
end
def email_params
params.require(:user).permit(:email, :current_password)
end
def user_params
params.require(:user).permit(:display_name, preferences: [
:lightning_notify_sats_received,
:xmpp_exchange_contacts_with_invitees
])
end
def email_params
params.require(:user).permit(:email, :current_password)
end
end