Use dynamic list for allowed user preference params

This commit is contained in:
Râu Cao 2024-05-23 00:23:42 +02:00
parent b541e95bb7
commit bad3b7a2be
Signed by: raucao
GPG Key ID: 37036C356E56CC51
3 changed files with 18 additions and 5 deletions

View File

@ -147,11 +147,9 @@ class SettingsController < ApplicationController
end
def user_params
params.require(:user).permit(:display_name, :avatar, preferences: [
:lightning_notify_sats_received,
:remotestorage_notify_auth_created,
:xmpp_exchange_contacts_with_invitees
])
params.require(:user).permit(
:display_name, :avatar, preferences: UserPreferences.pref_keys
)
end
def email_params

View File

@ -26,4 +26,8 @@ class UserPreferences
end
hash.stringify_keys!.to_h
end
def self.pref_keys
DEFAULT_PREFS.keys.map(&:to_sym)
end
end

View File

@ -38,4 +38,15 @@ RSpec.describe UserPreferences, type: :model do
expect(res['lightning_notify_sats_received_threshold']).to eq(1000)
end
end
describe ".pref_keys" do
let(:default_prefs) { YAML.load_file("#{Rails.root}/config/default_preferences.yml") }
it "returns the keys of all default preferences as an array of symbols" do
expect(UserPreferences.pref_keys).to be_a(Array)
expect(UserPreferences.pref_keys).to include(:lightning_notify_sats_received)
expect(UserPreferences.pref_keys).to include(:xmpp_exchange_contacts_with_invitees)
expect(UserPreferences.pref_keys.length).to eq(default_prefs.keys.length)
end
end
end