- Remove two redundant go_back_to_new calls in build_results, since
@poll.questions.find already raises RecordNotFound if a question
does not exist.
- Drop the fallback flash translation error_create, which is no longer
used since commit 592fdffe4e and only remained as a default in
go_back_to_new.
- Move check_officer_assignment from Officing::BaseController to
Officing::ResultsController, its only place of use.
44 lines
1.0 KiB
Ruby
44 lines
1.0 KiB
Ruby
class Officing::BaseController < ApplicationController
|
|
layout "admin"
|
|
helper_method :current_booth
|
|
|
|
before_action :authenticate_user!
|
|
before_action :verify_officer
|
|
|
|
skip_authorization_check
|
|
|
|
private
|
|
|
|
def verify_officer
|
|
raise CanCan::AccessDenied unless current_user&.poll_officer?
|
|
end
|
|
|
|
def load_officer_assignment
|
|
@officer_assignments ||= current_user.poll_officer.officer_assignments.where(date: Time.current.to_date)
|
|
end
|
|
|
|
def verify_officer_assignment
|
|
if @officer_assignments.blank?
|
|
redirect_to officing_root_path, notice: t("officing.residence.flash.not_allowed")
|
|
end
|
|
end
|
|
|
|
def verify_booth
|
|
return if current_booth.present?
|
|
|
|
booths = current_user.poll_officer.todays_booths
|
|
case booths.count
|
|
when 0
|
|
redirect_to officing_root_path
|
|
when 1
|
|
session[:booth_id] = booths.first.id
|
|
else
|
|
redirect_to new_officing_booth_path
|
|
end
|
|
end
|
|
|
|
def current_booth
|
|
Poll::Booth.find_by(id: session[:booth_id])
|
|
end
|
|
end
|