diff options
author | Francis Irving <francis@mysociety.org> | 2010-08-04 12:45:00 +0100 |
---|---|---|
committer | Francis Irving <francis@mysociety.org> | 2010-08-04 12:45:00 +0100 |
commit | 999fb578a3f0f6cad1786bd9f62712f5e970d697 (patch) | |
tree | 80221c438aec0332ccd07f7b7563a89efa0b7a5d /app/controllers/admin_censor_rule_controller.rb | |
parent | a4a5a6bcf07484a45f9a18a3ec5d00d33585f901 (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.rb | 55 |
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 |