1 # frozen_string_literal: true
3 class Settings
::PreferencesController < ApplicationController
6 before_action
:authenticate_user!
11 current_user
.settings
['notification_emails'] = {
12 follow
: user_params
[:notification_emails][:follow] == '1',
13 follow_request
: user_params
[:notification_emails][:follow_request] == '1',
14 reblog
: user_params
[:notification_emails][:reblog] == '1',
15 favourite
: user_params
[:notification_emails][:favourite] == '1',
16 mention
: user_params
[:notification_emails][:mention] == '1',
17 digest
: user_params
[:notification_emails][:digest] == '1',
20 current_user
.settings
['interactions'] = {
21 must_be_follower
: user_params
[:interactions][:must_be_follower] == '1',
22 must_be_following
: user_params
[:interactions][:must_be_following] == '1',
25 current_user
.settings
['default_privacy'] = user_params
[:setting_default_privacy]
26 current_user
.settings
['boost_modal'] = user_params
[:setting_boost_modal] == '1'
27 current_user
.settings
['auto_play_gif'] = user_params
[:setting_auto_play_gif] == '1'
29 if current_user
.update(user_params
.except(:notification_emails, :interactions, :setting_default_privacy, :setting_boost_modal, :setting_auto_play_gif))
30 redirect_to settings_preferences_path
, notice
: I18n
.t('generic.changes_saved_msg')
39 params
.require(:user).permit(:locale, :setting_default_privacy, :setting_boost_modal, :setting_auto_play_gif, notification_emails
: [:follow, :follow_request, :reblog, :favourite, :mention, :digest], interactions
: [:must_be_follower, :must_be_following])