rack-private 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +18 -2
- data/lib/rack/private.rb +7 -1
- data/lib/rack/private/version.rb +1 -1
- metadata +3 -5
data/README.markdown
CHANGED
@@ -28,7 +28,23 @@ And provide your own template.
|
|
28
28
|
use Rack::Private :code => 'secret', :template_path => Rails.root.join("app/templates/private.html")
|
29
29
|
```
|
30
30
|
|
31
|
-
|
31
|
+
You can specify exceptions, using strings or regular expressions
|
32
|
+
|
33
|
+
``` ruby
|
34
|
+
use Rack::Private :code => 'secret', :except => ["public"]
|
35
|
+
```
|
36
|
+
|
37
|
+
This will allow access to *any* URL containing 'public'. If you want more control, use a regular expression:
|
38
|
+
|
39
|
+
``` ruby
|
40
|
+
use Rack::Private :code => 'secret', :except => [/public$/]
|
41
|
+
```
|
42
|
+
|
43
|
+
This will only allow access to URLs that *end* in 'public'. You can use any expressions you want.
|
44
|
+
|
45
|
+
|
46
|
+
Note on Patches/Pull Requests
|
47
|
+
-----------------------------
|
32
48
|
|
33
49
|
* Fork the project.
|
34
50
|
* Make your feature addition or bug fix.
|
@@ -39,4 +55,4 @@ use Rack::Private :code => 'secret', :template_path => Rails.root.join("app/temp
|
|
39
55
|
Author
|
40
56
|
------
|
41
57
|
|
42
|
-
*
|
58
|
+
* [Thibaud Guillaume-Gentil](http://github.com/thibaudgg)
|
data/lib/rack/private.rb
CHANGED
@@ -10,7 +10,7 @@ module Rack
|
|
10
10
|
request = Rack::Request.new(env)
|
11
11
|
|
12
12
|
# Check code in session and return Rails call if is valid
|
13
|
-
return @app.call(env) if already_auth?(request)
|
13
|
+
return @app.call(env) if (already_auth?(request) || public_page?(request))
|
14
14
|
|
15
15
|
# If post method check :code_param value
|
16
16
|
if request.post? && code_valid?(request.params["private_code"])
|
@@ -42,6 +42,12 @@ module Rack
|
|
42
42
|
def already_auth?(request)
|
43
43
|
code_valid?(request.session[:private_code])
|
44
44
|
end
|
45
|
+
|
46
|
+
# Checks if the url matches one of our exception strings or regexs
|
47
|
+
def public_page?(request)
|
48
|
+
@options[:except] && @options[:except].find {|x| request.url.match(x)}
|
49
|
+
end
|
50
|
+
|
45
51
|
end
|
46
52
|
end
|
47
53
|
|
data/lib/rack/private/version.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: rack-private
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.8
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Thibaud Guillaume-Gentil
|
@@ -10,8 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
14
|
-
default_executable:
|
13
|
+
date: 2011-05-06 00:00:00 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: bundler
|
@@ -73,7 +72,6 @@ files:
|
|
73
72
|
- lib/rack-private.rb
|
74
73
|
- LICENSE
|
75
74
|
- README.markdown
|
76
|
-
has_rdoc: true
|
77
75
|
homepage: http://github.com/thibaudgg/rack-private
|
78
76
|
licenses: []
|
79
77
|
|
@@ -97,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
95
|
requirements: []
|
98
96
|
|
99
97
|
rubyforge_project: rack-private
|
100
|
-
rubygems_version: 1.
|
98
|
+
rubygems_version: 1.8.1
|
101
99
|
signing_key:
|
102
100
|
specification_version: 3
|
103
101
|
summary: Protect your Rack application from anonymous.
|