discourse/app/controllers/admin/user_fields_controller.rb

41 lines
993 B
Ruby

class Admin::UserFieldsController < Admin::AdminController
def self.columns
[:name, :field_type, :editable, :description, :required, :show_on_profile]
end
def create
field = UserField.new(params.require(:user_field).permit(*Admin::UserFieldsController.columns))
field.required = params[:required] == "true"
json_result(field, serializer: UserFieldSerializer) do
field.save
end
end
def index
render_serialized(UserField.all, UserFieldSerializer, root: 'user_fields')
end
def update
field_params = params.require(:user_field)
field = UserField.where(id: params.require(:id)).first
Admin::UserFieldsController.columns.each do |col|
field.send("#{col}=", field_params[col] || false)
end
json_result(field, serializer: UserFieldSerializer) do
field.save
end
end
def destroy
field = UserField.where(id: params.require(:id)).first
field.destroy if field.present?
render nothing: true
end
end