diff --git a/app/controllers/admin/active_agreements_controller.rb b/app/controllers/admin/active_agreements_controller.rb index 31e16e5..f25c970 100644 --- a/app/controllers/admin/active_agreements_controller.rb +++ b/app/controllers/admin/active_agreements_controller.rb @@ -1,4 +1,5 @@ class Admin::ActiveAgreementsController < OrbitAdminController + before_action :check_manager_for_agreement, only: [:update] def initialize super @@ -16,5 +17,11 @@ class Admin::ActiveAgreementsController < OrbitAdminController redirect_to admin_active_agreements_path, notice: t('act.save_success') end + + private + + def check_manager_for_agreement + render_401 unless allow?(['managers', 'admin']) + end end diff --git a/app/controllers/admin/active_signups_controller.rb b/app/controllers/admin/active_signups_controller.rb index 5454890..189a852 100644 --- a/app/controllers/admin/active_signups_controller.rb +++ b/app/controllers/admin/active_signups_controller.rb @@ -2,6 +2,7 @@ class Admin::ActiveSignupsController < OrbitAdminController include Admin::ActivesHelper before_action ->(module_app = @app_title) { set_variables module_app } + before_action :check_permission_for_act_signup, only: [:edit, :update, :destroy] def initialize super @@ -41,4 +42,10 @@ class Admin::ActiveSignupsController < OrbitAdminController def act_signup_params params.require(:act_signup).permit! end + + def check_permission_for_act_signup + @act_signup = ActSignup.find(params[:id]) + @act = Act.find(@act_signup.act_id) + render_401 unless can_see_act_signup(@act) + end end diff --git a/app/controllers/admin/actives_controller.rb b/app/controllers/admin/actives_controller.rb index 18ad42e..e85209e 100644 --- a/app/controllers/admin/actives_controller.rb +++ b/app/controllers/admin/actives_controller.rb @@ -81,6 +81,7 @@ class Admin::ActivesController < OrbitAdminController end def destroy + return render_401 unless can_edit_or_delete?(@act) @act.destroy redirect_to "/admin/actives" end diff --git a/app/models/act.rb b/app/models/act.rb index c2dd529..f40f54f 100644 --- a/app/models/act.rb +++ b/app/models/act.rb @@ -6,6 +6,7 @@ class Act # encoding: utf-8 include OrbitCategory::Categorizable + include OrbitTag::Taggable include Slug include OrbitModel::Status diff --git a/lib/active/engine.rb b/lib/active/engine.rb index 1ccc603..46999bc 100644 --- a/lib/active/engine.rb +++ b/lib/active/engine.rb @@ -7,6 +7,7 @@ module Active widget_methods ["widget","widget1"] widget_settings [{"data_count"=>10}] authorizable + taggable "Act" categorizable frontend_enabled data_count 1..20 @@ -34,6 +35,13 @@ module Active :active_for_action=>{'admin/actives'=>'categories'}, :active_for_category => 'Active', :available_for => 'managers' + context_link 'tags', + :link_path=>"admin_module_app_tags_path" , + :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'active').id}", + :priority=>4, + :active_for_action=>{'admin/actives'=>'tags'}, + :active_for_tag => 'Active', + :available_for => 'managers' context_link 'act.set_active_agreements', :link_path=>"admin_active_agreements_path" , :priority=>3,