Fix #4077: Migrate CurrentUser and safe_mode to use RequestStore.

This commit is contained in:
evazion
2019-08-04 10:12:59 -05:00
parent 98d80a0cca
commit fc4fa9dc6c

View File

@@ -42,28 +42,28 @@ class CurrentUser
end end
end end
def self.user=(user)
Thread.current[:current_user] = user
end
def self.ip_addr=(ip_addr)
Thread.current[:current_ip_addr] = ip_addr
end
def self.user def self.user
Thread.current[:current_user] RequestStore[:current_user]
end
def self.user=(user)
RequestStore[:current_user] = user
end end
def self.ip_addr def self.ip_addr
Thread.current[:current_ip_addr] RequestStore[:current_ip_addr]
end
def self.ip_addr=(ip_addr)
RequestStore[:current_ip_addr] = ip_addr
end end
def self.root_url def self.root_url
Thread.current[:current_root_url] || "https://#{Danbooru.config.hostname}" RequestStore[:current_root_url] || "https://#{Danbooru.config.hostname}"
end end
def self.root_url=(root_url) def self.root_url=(root_url)
Thread.current[:current_root_url] = root_url RequestStore[:current_root_url] = root_url
end end
def self.id def self.id
@@ -83,17 +83,17 @@ class CurrentUser
end end
def self.admin_mode? def self.admin_mode?
Thread.current[:admin_mode] RequestStore[:admin_mode]
end end
def self.without_safe_mode def self.without_safe_mode
prev = RequestStore[:safe_mode] prev = RequestStore[:safe_mode]
RequestStore[:safe_mode] = false RequestStore[:safe_mode] = false
Thread.current[:admin_mode] = true RequestStore[:admin_mode] = true
yield yield
ensure ensure
RequestStore[:safe_mode] = prev RequestStore[:safe_mode] = prev
Thread.current[:admin_mode] = false RequestStore[:admin_mode] = false
end end
def self.set_safe_mode(req) def self.set_safe_mode(req)