aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/admin_censor_rule_controller.rb
diff options
context:
space:
mode:
authorFrancis Irving <francis@mysociety.org>2010-08-04 12:45:00 +0100
committerFrancis Irving <francis@mysociety.org>2010-08-04 12:45:00 +0100
commit999fb578a3f0f6cad1786bd9f62712f5e970d697 (patch)
tree80221c438aec0332ccd07f7b7563a89efa0b7a5d /app/controllers/admin_censor_rule_controller.rb
parenta4a5a6bcf07484a45f9a18a3ec5d00d33585f901 (diff)
Edit interface for user level censor rules.
Diffstat (limited to 'app/controllers/admin_censor_rule_controller.rb')
-rw-r--r--app/controllers/admin_censor_rule_controller.rb55
1 files changed, 47 insertions, 8 deletions
diff --git a/app/controllers/admin_censor_rule_controller.rb b/app/controllers/admin_censor_rule_controller.rb
index 28130b6ee..2c0c7ca4e 100644
--- a/app/controllers/admin_censor_rule_controller.rb
+++ b/app/controllers/admin_censor_rule_controller.rb
@@ -8,16 +8,32 @@
class AdminCensorRuleController < AdminController
def new
- @info_request = InfoRequest.find(params[:info_request_id])
+ if params[:info_request_id]
+ @info_request = InfoRequest.find(params[:info_request_id])
+ end
+ if params[:user_id]
+ @user = User.find(params[:user_id])
+ end
end
def create
params[:censor_rule][:last_edit_editor] = admin_http_auth_user()
@censor_rule = CensorRule.new(params[:censor_rule])
if @censor_rule.save
- expire_for_request(@censor_rule.info_request)
+ 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.'
- redirect_to admin_url('request/show/' + @censor_rule.info_request.id.to_s)
+ if !@censor_rule.info_request.nil?
+ redirect_to admin_url('request/show/' + @censor_rule.info_request.id.to_s)
+ elsif !@censor_rule.user.nil?
+ redirect_to admin_url('user/show/' + @censor_rule.user.id.to_s)
+ else
+ raise "internal error"
+ end
else
render :action => 'new'
end
@@ -31,9 +47,20 @@ class AdminCensorRuleController < AdminController
params[:censor_rule][:last_edit_editor] = admin_http_auth_user()
@censor_rule = CensorRule.find(params[:id])
if @censor_rule.update_attributes(params[:censor_rule])
- expire_for_request(@censor_rule.info_request)
+ 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 updated.'
- redirect_to admin_url('request/show/' + @censor_rule.info_request.id.to_s)
+ if !@censor_rule.info_request.nil?
+ redirect_to admin_url('request/show/' + @censor_rule.info_request.id.to_s)
+ elsif !@censor_rule.user.nil?
+ redirect_to admin_url('user/show/' + @censor_rule.user.id.to_s)
+ else
+ raise "internal error"
+ end
else
render :action => 'edit'
end
@@ -42,13 +69,25 @@ class AdminCensorRuleController < AdminController
def destroy
censor_rule = CensorRule.find(params[:censor_rule_id])
info_request = censor_rule.info_request
+ user = censor_rule.user
censor_rule.destroy
- expire_for_request(info_request)
+ if !info_request.nil?
+ expire_for_request(info_request)
+ end
+ if !user.nil?
+ expire_requests_for_user(user)
+ end
flash[:notice] = "CensorRule was successfully destroyed."
- redirect_to admin_url('request/show/' + info_request.id.to_s)
- end
+ if !info_request.nil?
+ redirect_to admin_url('request/show/' + info_request.id.to_s)
+ elsif !user.nil?
+ redirect_to admin_url('user/show/' + user.id.to_s)
+ else
+ raise "internal error"
+ end
+ end
private