Files
old-holivud2/app/controllers/approvals_controller.rb

49 lines
1.2 KiB
Ruby
Raw Normal View History

2020-07-09 11:06:17 +02:00
class ApprovalsController < ApplicationController
2020-07-20 13:28:40 +00:00
before_action :set_releasable
2020-07-09 11:06:17 +02:00
before_action :set_project
layout "project"
def create
2020-07-20 13:28:40 +00:00
@releasable.approve_by(current_user)
2020-08-24 15:52:23 +02:00
@releasable.approved_by_user_signature.attach(approved_by_user_signature_params) if signature_data.present?
2020-07-20 13:28:40 +00:00
2020-08-24 15:52:23 +02:00
if @releasable.save(context: :approval)
2020-07-20 13:28:40 +00:00
redirect_to [@project, "#{@releasable_param.name.pluralize}"], notice: t('.release_approved', release_type: @releasable.model_name.human)
2020-08-24 15:52:23 +02:00
else
render :new
2020-07-09 11:06:17 +02:00
end
end
private
2020-07-20 13:28:40 +00:00
def releasable_param
@releasable_param ||= ReleasableParam.new(params.to_unsafe_h)
end
def set_releasable
@releasable = authorize policy_scope(releasable_param.type).find(releasable_param.id)
end
2020-07-09 11:06:17 +02:00
def set_project
2020-07-20 13:28:40 +00:00
@project = @releasable.project
2020-07-09 11:06:17 +02:00
end
2020-08-24 15:52:23 +02:00
def releasable_params
params.require(releasable_param.name).permit(approved_by_user_signature: :data)
end
def signature_data
releasable_params.dig(:approved_by_user_signature, :data)
end
def approved_by_user_signature_params
{
data: signature_data,
filename: "approved_by_user_signature.png",
content_type: "image/png",
identify: false,
}
end
2020-07-09 11:06:17 +02:00
end