mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-11-11 10:06:53 +08:00
48 lines
1.1 KiB
Ruby
48 lines
1.1 KiB
Ruby
|
class CustomFieldsController < ApplicationController
|
||
|
before_action :load_vars_nested, only: [:create]
|
||
|
before_action :check_create_permissions, only: [:create]
|
||
|
|
||
|
def create
|
||
|
@custom_field = CustomField.new(custom_field_params)
|
||
|
@custom_field.organization = @organization
|
||
|
@custom_field.user = current_user
|
||
|
|
||
|
respond_to do |format|
|
||
|
if @custom_field.save
|
||
|
flash[:success] = t(
|
||
|
"custom_fields.create.success_flash",
|
||
|
custom_field: @custom_field.name,
|
||
|
organization: @organization.name
|
||
|
)
|
||
|
format.json {
|
||
|
render json: {
|
||
|
id: @custom_field.id
|
||
|
},
|
||
|
status: :ok }
|
||
|
else
|
||
|
format.json { render json: @custom_field.errors, status: :unprocessable_entity }
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def load_vars_nested
|
||
|
@organization = Organization.find_by_id(params[:organization_id])
|
||
|
|
||
|
unless @organization
|
||
|
render_404
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def check_create_permissions
|
||
|
unless can_create_custom_field_in_organization(@organization)
|
||
|
render_403
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def custom_field_params
|
||
|
params.require(:custom_field).permit(:name)
|
||
|
end
|
||
|
end
|