diff options
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/admin_censor_rule_controller.rb | 55 | ||||
-rw-r--r-- | app/controllers/admin_controller.rb | 7 |
2 files changed, 54 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 diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index ca5538e03..4734146a8 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -31,5 +31,12 @@ class AdminController < ApplicationController # also force a search reindexing (so changed text reflected in search) info_request.reindex_request_events end + + # Expire cached attachment files for a user + def expire_requests_for_user(user) + for info_request in user.info_requests + expire_for_request(info_request) + end + end end |