You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.2 KiB
51 lines
1.2 KiB
# frozen_string_literal: true |
|
|
|
class Settings::PreferencesController < ApplicationController |
|
layout 'admin' |
|
|
|
before_action :authenticate_user! |
|
|
|
def show; end |
|
|
|
def update |
|
user_settings.update(user_settings_params.to_h) |
|
|
|
if current_user.update(user_params) |
|
I18n.locale = current_user.locale |
|
redirect_to settings_preferences_path, notice: I18n.t('generic.changes_saved_msg') |
|
else |
|
render :show |
|
end |
|
end |
|
|
|
private |
|
|
|
def user_settings |
|
UserSettingsDecorator.new(current_user) |
|
end |
|
|
|
def user_params |
|
params.require(:user).permit( |
|
:locale, |
|
filtered_languages: [] |
|
) |
|
end |
|
|
|
def user_settings_params |
|
params.require(:user).permit( |
|
:setting_default_privacy, |
|
:setting_default_sensitive, |
|
:setting_unfollow_modal, |
|
:setting_boost_modal, |
|
:setting_delete_modal, |
|
:setting_auto_play_gif, |
|
:setting_display_sensitive_media, |
|
:setting_reduce_motion, |
|
:setting_system_font_ui, |
|
:setting_noindex, |
|
:setting_theme, |
|
notification_emails: %i(follow follow_request reblog favourite mention digest), |
|
interactions: %i(must_be_follower must_be_following) |
|
) |
|
end |
|
end
|
|
|