File tree Expand file tree Collapse file tree 3 files changed +18
-1
lines changed
lib/action_controller/metal Expand file tree Collapse file tree 3 files changed +18
-1
lines changed Original file line number Diff line number Diff line change
1
+ * Allow bots to ignore ` allow_browser ` .
2
+
3
+ * Matthew Nguyen*
4
+
1
5
* Deprecate drawing routes with hash key paths to make routing faster.
2
6
3
7
``` ruby
Original file line number Diff line number Diff line change @@ -85,13 +85,17 @@ def user_agent_version_reported?
85
85
end
86
86
87
87
def unsupported_browser?
88
- version_guarded_browser? && version_below_minimum_required?
88
+ version_guarded_browser? && version_below_minimum_required? && ! bot?
89
89
end
90
90
91
91
def version_guarded_browser?
92
92
minimum_browser_version_for_browser != nil
93
93
end
94
94
95
+ def bot?
96
+ parsed_user_agent . bot?
97
+ end
98
+
95
99
def version_below_minimum_required?
96
100
if minimum_browser_version_for_browser
97
101
parsed_user_agent . version < UserAgent ::Version . new ( minimum_browser_version_for_browser . to_s )
Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ class AllowBrowserTest < ActionController::TestCase
23
23
FIREFOX_114 = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0"
24
24
IE_11 = "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
25
25
OPERA_106 = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 OPR/106.0.0.0"
26
+ GOOGLE_BOT = "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
26
27
27
28
test "blocked browser below version limit" do
28
29
get_with_agent :hello , FIREFOX_114
@@ -59,6 +60,14 @@ class AllowBrowserTest < ActionController::TestCase
59
60
assert_response :ok
60
61
end
61
62
63
+ test "bots" do
64
+ get_with_agent :hello , GOOGLE_BOT
65
+ assert_response :ok
66
+
67
+ get_with_agent :modern , GOOGLE_BOT
68
+ assert_response :ok
69
+ end
70
+
62
71
private
63
72
def get_with_agent ( action , agent )
64
73
@request . headers [ "User-Agent" ] = agent
You can’t perform that action at this time.
0 commit comments