From 12aca5dd819653e596f7c13e587e6e7967d6ded3 Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Fri, 12 Dec 2014 14:06:51 +0000 Subject: Use RESTful routing for index and show actions --- app/controllers/admin_censor_rule_controller.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'app/controllers/admin_censor_rule_controller.rb') diff --git a/app/controllers/admin_censor_rule_controller.rb b/app/controllers/admin_censor_rule_controller.rb index 68ca57510..dd0af002d 100644 --- a/app/controllers/admin_censor_rule_controller.rb +++ b/app/controllers/admin_censor_rule_controller.rb @@ -52,7 +52,7 @@ class AdminCensorRuleController < AdminController flash[:notice] = 'CensorRule was successfully created.' if !@censor_rule.info_request.nil? - redirect_to admin_request_show_url(@censor_rule.info_request) + redirect_to admin_request_url(@censor_rule.info_request) elsif !@censor_rule.user.nil? redirect_to admin_user_show_url(@censor_rule.user) else @@ -83,7 +83,7 @@ class AdminCensorRuleController < AdminController flash[:notice] = 'CensorRule was successfully updated.' if !@censor_rule.info_request.nil? - redirect_to admin_request_show_url(@censor_rule.info_request) + redirect_to admin_request_url(@censor_rule.info_request) elsif !@censor_rule.user.nil? redirect_to admin_user_show_url(@censor_rule.user) else @@ -112,7 +112,7 @@ class AdminCensorRuleController < AdminController flash[:notice] = "CensorRule was successfully destroyed." if !info_request.nil? - redirect_to admin_request_show_url(info_request) + redirect_to admin_request_url(info_request) elsif !user.nil? redirect_to admin_user_show_url(user) else -- cgit v1.2.3 From 17f7352a42554fb13baf43e63f116ca828553047 Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Fri, 7 Nov 2014 15:37:14 +0000 Subject: Use RESTful routes for CRUD admin user actions --- app/controllers/admin_censor_rule_controller.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'app/controllers/admin_censor_rule_controller.rb') diff --git a/app/controllers/admin_censor_rule_controller.rb b/app/controllers/admin_censor_rule_controller.rb index dd0af002d..01c0bf4b2 100644 --- a/app/controllers/admin_censor_rule_controller.rb +++ b/app/controllers/admin_censor_rule_controller.rb @@ -54,7 +54,7 @@ class AdminCensorRuleController < AdminController if !@censor_rule.info_request.nil? redirect_to admin_request_url(@censor_rule.info_request) elsif !@censor_rule.user.nil? - redirect_to admin_user_show_url(@censor_rule.user) + redirect_to admin_user_url(@censor_rule.user) else raise "internal error" end @@ -85,7 +85,7 @@ class AdminCensorRuleController < AdminController if !@censor_rule.info_request.nil? redirect_to admin_request_url(@censor_rule.info_request) elsif !@censor_rule.user.nil? - redirect_to admin_user_show_url(@censor_rule.user) + redirect_to admin_user_url(@censor_rule.user) else raise "internal error" end @@ -114,7 +114,7 @@ class AdminCensorRuleController < AdminController if !info_request.nil? redirect_to admin_request_url(info_request) elsif !user.nil? - redirect_to admin_user_show_url(user) + redirect_to admin_user_url(user) else raise "internal error" end -- cgit v1.2.3 From d221f4513cb8e860f2c28be807b6779bb3bc763b Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Fri, 7 Nov 2014 17:16:15 +0000 Subject: RESTful routing for admin censor rule actions --- app/controllers/admin_censor_rule_controller.rb | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) (limited to 'app/controllers/admin_censor_rule_controller.rb') diff --git a/app/controllers/admin_censor_rule_controller.rb b/app/controllers/admin_censor_rule_controller.rb index 01c0bf4b2..c82aa342c 100644 --- a/app/controllers/admin_censor_rule_controller.rb +++ b/app/controllers/admin_censor_rule_controller.rb @@ -5,11 +5,12 @@ # Email: hello@mysociety.org; WWW: http://www.mysociety.org/ class AdminCensorRuleController < AdminController + def new - if params[:info_request_id] - @info_request = InfoRequest.find(params[:info_request_id]) + if params[:request_id] + @info_request = InfoRequest.find(params[:request_id]) @censor_rule = @info_request.censor_rules.build - @form_url = admin_info_request_censor_rules_path(@info_request) + @form_url = admin_request_censor_rules_path(@info_request) end if params[:user_id] @@ -17,18 +18,14 @@ class AdminCensorRuleController < AdminController @censor_rule = @censor_user.censor_rules.build @form_url = admin_user_censor_rules_path(@censor_user) end - - @censor_rule ||= CensorRule.new - @form_url ||= admin_rule_create_path end def create params[:censor_rule][:last_edit_editor] = admin_current_user - - if params[:info_request_id] - @info_request = InfoRequest.find(params[:info_request_id]) + if params[:request_id] + @info_request = InfoRequest.find(params[:request_id]) @censor_rule = @info_request.censor_rules.build(params[:censor_rule]) - @form_url = admin_info_request_censor_rules_path(@info_request) + @form_url = admin_request_censor_rules_path(@info_request) end if params[:user_id] @@ -37,9 +34,6 @@ class AdminCensorRuleController < AdminController @form_url = admin_user_censor_rules_path(@censor_user) end - @censor_rule ||= CensorRule.new(params[:censor_rule]) - @form_url ||= admin_rule_create_path - if @censor_rule.save if !@censor_rule.info_request.nil? expire_for_request(@censor_rule.info_request) @@ -55,8 +49,6 @@ class AdminCensorRuleController < AdminController redirect_to admin_request_url(@censor_rule.info_request) elsif !@censor_rule.user.nil? redirect_to admin_user_url(@censor_rule.user) - else - raise "internal error" end else render :action => 'new' @@ -95,7 +87,7 @@ class AdminCensorRuleController < AdminController end def destroy - @censor_rule = CensorRule.find(params[:censor_rule_id]) + @censor_rule = CensorRule.find(params[:id]) info_request = @censor_rule.info_request user = @censor_rule.user -- cgit v1.2.3 From 0c153ead6aad7766bc887ec82406dade00f44469 Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Fri, 12 Dec 2014 17:18:06 +0000 Subject: Refactor shared setup to filter --- app/controllers/admin_censor_rule_controller.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'app/controllers/admin_censor_rule_controller.rb') diff --git a/app/controllers/admin_censor_rule_controller.rb b/app/controllers/admin_censor_rule_controller.rb index c82aa342c..1bb9b45bc 100644 --- a/app/controllers/admin_censor_rule_controller.rb +++ b/app/controllers/admin_censor_rule_controller.rb @@ -6,6 +6,8 @@ class AdminCensorRuleController < AdminController + before_filter :set_editor, :only => [:create, :update] + def new if params[:request_id] @info_request = InfoRequest.find(params[:request_id]) @@ -21,7 +23,6 @@ class AdminCensorRuleController < AdminController end def create - params[:censor_rule][:last_edit_editor] = admin_current_user if params[:request_id] @info_request = InfoRequest.find(params[:request_id]) @censor_rule = @info_request.censor_rules.build(params[:censor_rule]) @@ -60,7 +61,6 @@ class AdminCensorRuleController < AdminController end def update - params[:censor_rule][:last_edit_editor] = admin_current_user @censor_rule = CensorRule.find(params[:id]) if @censor_rule.update_attributes(params[:censor_rule]) @@ -114,5 +114,8 @@ class AdminCensorRuleController < AdminController private + def set_editor + params[:censor_rule][:last_edit_editor] = admin_current_user + end end -- cgit v1.2.3 From ee30f53f6c91ca84322526d526e2f0485f440be5 Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Fri, 12 Dec 2014 17:23:55 +0000 Subject: Refactor - group common logic branches --- app/controllers/admin_censor_rule_controller.rb | 42 +++++++++---------------- 1 file changed, 14 insertions(+), 28 deletions(-) (limited to 'app/controllers/admin_censor_rule_controller.rb') diff --git a/app/controllers/admin_censor_rule_controller.rb b/app/controllers/admin_censor_rule_controller.rb index 1bb9b45bc..d1a65ac09 100644 --- a/app/controllers/admin_censor_rule_controller.rb +++ b/app/controllers/admin_censor_rule_controller.rb @@ -36,19 +36,14 @@ class AdminCensorRuleController < AdminController end if @censor_rule.save - if !@censor_rule.info_request.nil? - expire_for_request(@censor_rule.info_request) - end - - if !@censor_rule.user.nil? - expire_requests_for_user(@censor_rule.user) - end flash[:notice] = 'CensorRule was successfully created.' - if !@censor_rule.info_request.nil? + if @censor_rule.info_request + expire_for_request(@censor_rule.info_request) redirect_to admin_request_url(@censor_rule.info_request) - elsif !@censor_rule.user.nil? + elsif @censor_rule.user + expire_requests_for_user(@censor_rule.user) redirect_to admin_user_url(@censor_rule.user) end else @@ -64,23 +59,19 @@ class AdminCensorRuleController < AdminController @censor_rule = CensorRule.find(params[:id]) if @censor_rule.update_attributes(params[:censor_rule]) - unless @censor_rule.info_request.nil? - expire_for_request(@censor_rule.info_request) - end - - unless @censor_rule.user.nil? - expire_requests_for_user(@censor_rule.user) - end flash[:notice] = 'CensorRule was successfully updated.' - if !@censor_rule.info_request.nil? + if @censor_rule.info_request + expire_for_request(@censor_rule.info_request) redirect_to admin_request_url(@censor_rule.info_request) - elsif !@censor_rule.user.nil? + elsif @censor_rule.user + expire_requests_for_user(@censor_rule.user) redirect_to admin_user_url(@censor_rule.user) else raise "internal error" end + else render :action => 'edit' end @@ -93,23 +84,18 @@ class AdminCensorRuleController < AdminController @censor_rule.destroy - unless info_request.nil? - expire_for_request(info_request) - end - - unless user.nil? - expire_requests_for_user(user) - end - flash[:notice] = "CensorRule was successfully destroyed." - if !info_request.nil? + if info_request + expire_for_request(info_request) redirect_to admin_request_url(info_request) - elsif !user.nil? + elsif user + expire_requests_for_user(user) if user redirect_to admin_user_url(user) else raise "internal error" end + end private -- cgit v1.2.3 From 8672d2783a7390d5895ec79a6f22c7d5d9b0adba Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Fri, 12 Dec 2014 17:25:04 +0000 Subject: Don't raise internal error when handling non-user or request rules Handle attempts to edit or destroy global or public body censor rules with a notice and a redirect. Closes #2009 --- app/controllers/admin_censor_rule_controller.rb | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'app/controllers/admin_censor_rule_controller.rb') diff --git a/app/controllers/admin_censor_rule_controller.rb b/app/controllers/admin_censor_rule_controller.rb index d1a65ac09..3387fd832 100644 --- a/app/controllers/admin_censor_rule_controller.rb +++ b/app/controllers/admin_censor_rule_controller.rb @@ -7,6 +7,7 @@ class AdminCensorRuleController < AdminController before_filter :set_editor, :only => [:create, :update] + before_filter :find_and_check_rule, :only => [:edit, :update, :destroy] def new if params[:request_id] @@ -52,12 +53,9 @@ class AdminCensorRuleController < AdminController end def edit - @censor_rule = CensorRule.find(params[:id]) end def update - @censor_rule = CensorRule.find(params[:id]) - if @censor_rule.update_attributes(params[:censor_rule]) flash[:notice] = 'CensorRule was successfully updated.' @@ -68,8 +66,6 @@ class AdminCensorRuleController < AdminController elsif @censor_rule.user expire_requests_for_user(@censor_rule.user) redirect_to admin_user_url(@censor_rule.user) - else - raise "internal error" end else @@ -78,10 +74,8 @@ class AdminCensorRuleController < AdminController end def destroy - @censor_rule = CensorRule.find(params[:id]) info_request = @censor_rule.info_request user = @censor_rule.user - @censor_rule.destroy flash[:notice] = "CensorRule was successfully destroyed." @@ -92,8 +86,6 @@ class AdminCensorRuleController < AdminController elsif user expire_requests_for_user(user) if user redirect_to admin_user_url(user) - else - raise "internal error" end end @@ -103,5 +95,13 @@ class AdminCensorRuleController < AdminController def set_editor params[:censor_rule][:last_edit_editor] = admin_current_user end + + def find_and_check_rule + @censor_rule = CensorRule.find(params[:id]) + unless (@censor_rule.user || @censor_rule.info_request) + flash[:notice] = 'Only user and request censor rules can be edited' + redirect_to admin_general_index_path + end + end end -- cgit v1.2.3