Add load_and_authorize_resource to images controller

This commit is contained in:
taitus
2022-09-09 17:14:55 +02:00
parent 99495a21d2
commit 83e0d4c6b7
4 changed files with 10 additions and 8 deletions

View File

@@ -1,7 +1,7 @@
class Admin::Poll::Questions::Answers::ImagesController < Admin::Poll::BaseController class Admin::Poll::Questions::Answers::ImagesController < Admin::Poll::BaseController
include ImageAttributes include ImageAttributes
before_action :load_answer, except: :destroy load_and_authorize_resource :answer, class: "::Poll::Question::Answer"
def index def index
end end
@@ -38,8 +38,4 @@ class Admin::Poll::Questions::Answers::ImagesController < Admin::Poll::BaseContr
def allowed_params def allowed_params
[:answer_id, images_attributes: image_attributes] [:answer_id, images_attributes: image_attributes]
end end
def load_answer
@answer = ::Poll::Question::Answer.find(params[:answer_id])
end
end end

View File

@@ -92,6 +92,9 @@ module Abilities
can :destroy, Poll::Question can :destroy, Poll::Question
can :manage, Poll::Question::Answer can :manage, Poll::Question::Answer
can :manage, Poll::Question::Answer::Video can :manage, Poll::Question::Answer::Video
can [:create, :destroy], Image do |image|
image.imageable_type == "Poll::Question::Answer"
end
can :manage, SiteCustomization::Page can :manage, SiteCustomization::Page
can :manage, SiteCustomization::Image can :manage, SiteCustomization::Image

View File

@@ -1,7 +1,5 @@
<div class="poll-question-form"> <div class="poll-question-form">
<%= form_for(@answer, <%= form_for(@answer, url: admin_answer_images_path(@answer), method: :post) do |f| %>
url: admin_answer_images_path(@answer),
method: :post) do |f| %>
<%= render "shared/errors", resource: @answer %> <%= render "shared/errors", resource: @answer %>
<div class="images"> <div class="images">

View File

@@ -18,6 +18,8 @@ describe Abilities::Administrator do
let(:legislation_question) { create(:legislation_question) } let(:legislation_question) { create(:legislation_question) }
let(:poll) { create(:poll) } let(:poll) { create(:poll) }
let(:poll_question) { create(:poll_question) } let(:poll_question) { create(:poll_question) }
let(:poll_question_answer) { create(:poll_question_answer) }
let(:answer_image) { build(:image, imageable: poll_question_answer) }
let(:past_process) { create(:legislation_process, :past) } let(:past_process) { create(:legislation_process, :past) }
let(:past_draft_process) { create(:legislation_process, :past, :not_published) } let(:past_draft_process) { create(:legislation_process, :past, :not_published) }
@@ -118,6 +120,9 @@ describe Abilities::Administrator do
it { should be_able_to(:manage, Poll::Question::Answer::Video) } it { should be_able_to(:manage, Poll::Question::Answer::Video) }
it { should be_able_to(:create, answer_image) }
it { should be_able_to(:destroy, answer_image) }
it { is_expected.to be_able_to :manage, Dashboard::AdministratorTask } it { is_expected.to be_able_to :manage, Dashboard::AdministratorTask }
it { is_expected.to be_able_to :manage, dashboard_administrator_task } it { is_expected.to be_able_to :manage, dashboard_administrator_task }