Merge pull request #4296 from consul/local_targets_load_resources_with_cancancan

Allow SDG managers to manage SDG local targets records
This commit is contained in:
Javi Martín
2020-12-23 20:19:36 +01:00
committed by GitHub
3 changed files with 5 additions and 10 deletions

View File

@@ -1,19 +1,16 @@
class SDGManagement::LocalTargetsController < SDGManagement::BaseController
include Translatable
LocalTarget = ::SDG::LocalTarget
load_and_authorize_resource class: "SDG::LocalTarget"
def index
@local_targets = LocalTarget.all.sort
@local_targets = @local_targets.sort
end
def new
@local_target = LocalTarget.new
end
def create
@local_target = LocalTarget.new(local_target_params)
if @local_target.save
redirect_to sdg_management_local_targets_path, notice: t("sdg_management.local_targets.create.notice")
else
@@ -22,12 +19,9 @@ class SDGManagement::LocalTargetsController < SDGManagement::BaseController
end
def edit
@local_target = LocalTarget.find(params[:id])
end
def update
@local_target = LocalTarget.find(params[:id])
if @local_target.update(local_target_params)
redirect_to sdg_management_local_targets_path, notice: t("sdg_management.local_targets.update.notice")
else
@@ -36,7 +30,6 @@ class SDGManagement::LocalTargetsController < SDGManagement::BaseController
end
def destroy
@local_target = LocalTarget.find(params[:id])
@local_target.destroy!
redirect_to sdg_management_local_targets_path, notice: t("sdg_management.local_targets.destroy.notice")
end
@@ -44,7 +37,7 @@ class SDGManagement::LocalTargetsController < SDGManagement::BaseController
private
def local_target_params
translations_attributes = translation_params(LocalTarget)
translations_attributes = translation_params(::SDG::LocalTarget)
params.require(:sdg_local_target).permit(:code, :target_id, translations_attributes)
end
end

View File

@@ -6,5 +6,6 @@ class Abilities::SDG::Manager
can :read, ::SDG::Goal
can :read, ::SDG::Target
can :manage, ::SDG::LocalTarget
end
end

View File

@@ -9,6 +9,7 @@ describe "Abilities::SDG::Manager" do
it { should be_able_to(:read, SDG::Goal) }
it { should be_able_to(:read, SDG::Target) }
it { should be_able_to(:manage, SDG::LocalTarget) }
it { should_not be_able_to(:read, SDG::Manager) }
it { should_not be_able_to(:create, SDG::Manager) }