Spiegel von
https://github.com/paviliondev/discourse-custom-wizard.git
synchronisiert 2024-11-22 09:20:29 +01:00
Support custom user fields in profile update action
Dieser Commit ist enthalten in:
Ursprung
47722d13a3
Commit
1a5c66bf20
1 geänderte Dateien mit 19 neuen und 4 gelöschten Zeilen
|
@ -102,10 +102,16 @@ class CustomWizard::Action
|
|||
params = {}
|
||||
|
||||
profile_updates.first[:pairs].each do |pair|
|
||||
if allowed_profile_fields.include?(pair['key'])
|
||||
key = cast_profile_key(pair['key']).to_sym
|
||||
value = mapper.map_field(pair['value'], pair['value_type'])
|
||||
params[key] = cast_profile_value(value, pair['key'])
|
||||
if allowed_profile_field?(pair['key'])
|
||||
key = cast_profile_key(pair['key'])
|
||||
value = cast_profile_value(mapper.map_field(pair['value'], pair['value_type']), pair['key'])
|
||||
|
||||
if user_field?(pair['key'])
|
||||
params[:custom_fields] ||= {}
|
||||
params[:custom_fields][key] = value
|
||||
else
|
||||
params[key.to_sym] = value
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -330,6 +336,15 @@ class CustomWizard::Action
|
|||
['username', 'email', 'trust_level'].freeze
|
||||
end
|
||||
|
||||
def allowed_profile_field?(field)
|
||||
allowed_profile_fields.include?(field) || user_field?(field)
|
||||
end
|
||||
|
||||
def user_field?(field)
|
||||
field.to_s.include?(::User::USER_FIELD_PREFIX) &&
|
||||
::UserField.exists?(field.split('_').last.to_i)
|
||||
end
|
||||
|
||||
def allowed_profile_fields
|
||||
CustomWizard::Mapper.user_fields.select { |f| profile_excluded_fields.exclude?(f) } +
|
||||
profile_url_fields +
|
||||
|
|
Laden …
In neuem Issue referenzieren