post/pool versions: fix database timeouts not being set.
Bug: database timeouts were set only on the main database, not on the post and pool versions database, so users effectively had an unlimited timeout when dealing with these things.
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
class PostVersionsController < ApplicationController
|
||||
before_action :member_only, except: [:index, :search]
|
||||
before_action :check_availabililty
|
||||
around_action :set_timeout
|
||||
respond_to :html, :xml, :json
|
||||
respond_to :js, only: [:undo]
|
||||
|
||||
def index
|
||||
# XXX statement timeouts
|
||||
@post_versions = PostArchive.includes(:updater, post: [:versions]).search(search_params).paginate(params[:page], :limit => params[:limit], :search_count => params[:search])
|
||||
respond_with(@post_versions)
|
||||
end
|
||||
@@ -22,6 +22,13 @@ class PostVersionsController < ApplicationController
|
||||
|
||||
private
|
||||
|
||||
def set_timeout
|
||||
PostArchive.connection.execute("SET statement_timeout = #{CurrentUser.user.statement_timeout}")
|
||||
yield
|
||||
ensure
|
||||
PostArchive.connection.execute("SET statement_timeout = 0")
|
||||
end
|
||||
|
||||
def check_availabililty
|
||||
if !PostArchive.enabled?
|
||||
raise NotImplementedError.new("Archive service is not configured. Post versions are not saved.")
|
||||
|
||||
Reference in New Issue
Block a user