add basic support for safe mode

This commit is contained in:
r888888888
2013-07-17 13:59:44 -07:00
parent 01057a9cd5
commit 49d2df80f6
5 changed files with 43 additions and 6 deletions

View File

@@ -8,7 +8,8 @@ class ApplicationController < ActionController::Base
before_filter :normalize_search
before_filter :set_started_at_session
before_filter :api_check
# before_filter :secure_cookies_check
before_filter :set_safe_mode
before_filter :secure_cookies_check
layout "default"
rescue_from User::PrivilegeError, :with => :access_denied
@@ -104,13 +105,15 @@ protected
end
end
def set_safe_mode
CurrentUser.set_safe_mode(request)
end
def secure_cookies_check
if true || request.ssl?
if request.ssl?
Danbooru::Application.config.session_store :cookie_store, :key => '_danbooru_session', :secure => true
else
Danbooru::Application.config.session_store :cookie_store, :key => '_danbooru_session', :secure => false
end
ap cookies
true
end
end

View File

@@ -42,6 +42,18 @@ class CurrentUser
user.name
end
def self.safe_mode?
Thread.current[:safe_mode]
end
def self.set_safe_mode(req)
if req.host =~ /safe/
Thread.current[:safe_mode] = true
else
Thread.current[:safe_mode] = false
end
end
def self.method_missing(method, *params, &block)
if user.respond_to?(method)
user.__send__(method, *params, &block)

View File

@@ -112,6 +112,11 @@ class PostQueryBuilder
raise ::Post::SearchError.new("You cannot search for more than #{Danbooru.config.tag_query_limit} tags at a time")
end
if CurrentUser.safe_mode?
relation = relation.where(:rating => "s")
relation = relation.where("created_at <= ?", 3.months.ago)
end
relation = add_range_relation(q[:post_id], "posts.id", relation)
relation = add_range_relation(q[:mpixels], "posts.image_width * posts.image_height / 1000000.0", relation)
relation = add_range_relation(q[:width], "posts.image_width", relation)