aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/admin_censor_rule_controller.rb55
-rw-r--r--app/controllers/admin_controller.rb7
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