bartt-ssl_requirement 1.4.0 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.md +10 -0
  2. data/VERSION +1 -1
  3. data/lib/ssl_requirement.rb +17 -10
  4. metadata +3 -3
data/README.md CHANGED
@@ -1,3 +1,13 @@
1
+ Installing
2
+ ==========
3
+
4
+ This version of SSL Requirement is **only** compatible with Rails 3.x. To install add the following line to your project's
5
+ `Gemfile`:
6
+
7
+ gem 'bartt-ssl_requirement', '~>1.4.0', :require => 'ssl_requirement'
8
+
9
+ `bartt-ssl_requirement` is compatible with ruby 1.8.7 and 1.9.x.
10
+
1
11
  SSL Requirement
2
12
  ===============
3
13
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.4.0
1
+ 1.4.1
@@ -22,6 +22,8 @@ require "active_support/core_ext/class"
22
22
  # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
23
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
24
  module SslRequirement
25
+ extend ActiveSupport::Concern
26
+
25
27
  mattr_writer :ssl_host, :ssl_port, :non_ssl_host, :disable_ssl_check
26
28
  mattr_accessor :redirect_status
27
29
 
@@ -55,34 +57,39 @@ module SslRequirement
55
57
  end
56
58
 
57
59
 
58
- # called when Module is mixed in
59
- def self.included(controller)
60
- controller.extend(ClassMethods)
61
- controller.before_filter(:ensure_proper_protocol)
60
+ included do
61
+ class_attribute :ssl_required_actions
62
+ class_attribute :ssl_required_except_actions
63
+ class_attribute :ssl_allowed_actions
64
+
65
+ before_filter :ensure_proper_protocol
62
66
  end
63
67
 
64
68
  module ClassMethods
65
69
  # Specifies that the named actions requires an SSL connection to be performed (which is enforced by ensure_proper_protocol).
66
70
  def ssl_required(*actions)
67
- write_inheritable_array(:ssl_required_actions, actions)
71
+ self.ssl_required_actions ||= []
72
+ self.ssl_required_actions += actions
68
73
  end
69
74
 
70
75
  def ssl_exceptions(*actions)
71
- write_inheritable_array(:ssl_required_except_actions, actions)
76
+ self.ssl_required_except_actions ||= []
77
+ self.ssl_required_except_actions += actions
72
78
  end
73
79
 
74
80
  # To allow SSL for any action pass :all as action like this:
75
81
  # ssl_allowed :all
76
82
  def ssl_allowed(*actions)
77
- write_inheritable_array(:ssl_allowed_actions, actions)
83
+ self.ssl_allowed_actions ||= []
84
+ self.ssl_allowed_actions += actions
78
85
  end
79
86
  end
80
87
 
81
88
  protected
82
89
  # Returns true if the current action is supposed to run as SSL
83
90
  def ssl_required?
84
- required = (self.class.read_inheritable_attribute(:ssl_required_actions) || [])
85
- except = self.class.read_inheritable_attribute(:ssl_required_except_actions)
91
+ required = self.class.ssl_required_actions || []
92
+ except = self.class.ssl_required_except_actions
86
93
 
87
94
  unless except
88
95
  required.include?(action_name.to_sym)
@@ -92,7 +99,7 @@ module SslRequirement
92
99
  end
93
100
 
94
101
  def ssl_allowed?
95
- allowed_actions = (self.class.read_inheritable_attribute(:ssl_allowed_actions) || [])
102
+ allowed_actions = self.class.ssl_allowed_actions || []
96
103
 
97
104
  allowed_actions == [:all] || allowed_actions.include?(action_name.to_sym)
98
105
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bartt-ssl_requirement
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -17,7 +17,7 @@ authors:
17
17
  autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
- date: 2011-12-22 00:00:00.000000000 Z
20
+ date: 2012-01-03 00:00:00.000000000 Z
21
21
  dependencies: []
22
22
  description: SSL requirement adds a declarative way of specifying that certain actions
23
23
  should only be allowed to run under SSL, and if they're accessed without it, they
@@ -58,7 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
58
  version: 1.3.6
59
59
  requirements: []
60
60
  rubyforge_project:
61
- rubygems_version: 1.8.10
61
+ rubygems_version: 1.8.6
62
62
  signing_key:
63
63
  specification_version: 3
64
64
  summary: Allow controller actions to force SSL on specific parts of the site.