wristband 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.4
1
+ 1.0.5
@@ -59,8 +59,28 @@ module Wristband
59
59
  self.send("#{self.class.wristband[:password_column]}=", Wristband::Support.encrypt_with_salt(self.password, self.password_salt))
60
60
  end
61
61
 
62
+ # 231badb19b93e44f47da1bd64a8147f2
62
63
  def password_match?(string)
63
- self.send(self.class.wristband[:password_column]) == Wristband::Support.encrypt_with_salt(string, self.password_salt)
64
+ if matches_legacy_password?(string)
65
+ self.password = string
66
+ initialize_salt
67
+ encrypt_password
68
+ self.send("#{self.class.wristband[:legacy_password][:column_name]}=", nil)
69
+ self.save
70
+ else
71
+ self.send(self.class.wristband[:password_column]) == Wristband::Support.encrypt_with_salt(string, self.password_salt)
72
+ end
73
+ end
74
+
75
+ def matches_legacy_password?(string)
76
+ return unless self.class.wristband[:legacy_password][:column_name].present? && self.send(self.class.wristband[:legacy_password][:column_name]).present?
77
+
78
+ case self.class.wristband[:legacy_password][:encryption]
79
+ when :md5
80
+ self.send("#{self.class.wristband[:legacy_password][:column_name]}") == Digest::MD5.hexdigest(string)
81
+ else
82
+ false
83
+ end
64
84
  end
65
85
 
66
86
  def password_hash=(value)
@@ -73,7 +93,6 @@ module Wristband
73
93
  def reset_perishable_token!
74
94
  update_attribute(:perishable_token, Wristband::Support.random_salt.gsub(/[^A-Za-z0-9]/,''))
75
95
  end
76
-
77
96
  end
78
97
  end
79
98
  end
data/lib/wristband.rb CHANGED
@@ -5,7 +5,7 @@ require 'wristband/authority_check'
5
5
 
6
6
  module Wristband
7
7
 
8
- VERSION = "1.0.0"
8
+ VERSION = "1.0.5"
9
9
 
10
10
  class Engine < ::Rails::Engine; end
11
11
 
@@ -22,6 +22,7 @@ module Wristband
22
22
  options[:after_authentication] ||= []
23
23
  options[:has_authorities] ||= false
24
24
  options[:roles] ||= []
25
+ options[:legacy_password] ||= {}
25
26
 
26
27
  class_eval do
27
28
  include Wristband::UserExtensions
@@ -53,7 +54,8 @@ module Wristband
53
54
  :before_authentication_chain => [options[:before_authentication]].flatten,
54
55
  :after_authentication_chain => [options[:after_authentication]].flatten,
55
56
  :password_column => options[:password_column],
56
- :roles => options[:roles]
57
+ :roles => options[:roles],
58
+ :legacy_password => options[:legacy_password]
57
59
  }
58
60
 
59
61
  if options[:has_authorities]
@@ -11,6 +11,7 @@ class WristbandTest < ActiveSupport::TestCase
11
11
  initialize_token
12
12
  encrypt_password
13
13
  password_match?
14
+ matches_legacy_password?
14
15
  password_hash=
15
16
  is_admin?
16
17
  is_regular_user?
@@ -46,6 +47,7 @@ class WristbandTest < ActiveSupport::TestCase
46
47
  assert_equal User.wristband[:after_authentication_chain], []
47
48
  assert_equal User.wristband[:password_column], :password_hash
48
49
  assert_equal User.wristband[:roles], ['admin', 'regular_user']
50
+ assert_equal User.wristband[:legacy_password], {}
49
51
  end
50
52
 
51
53
  def test_authentication_by_email
data/wristband.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{wristband}
8
- s.version = "1.0.4"
8
+ s.version = "1.0.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jack Neto", "The Working Group Inc"]
12
- s.date = %q{2011-02-15}
12
+ s.date = %q{2011-06-27}
13
13
  s.description = %q{Provides a starting point for user authentication}
14
14
  s.email = %q{jack@theworkinggroup.ca}
15
15
  s.extra_rdoc_files = [
@@ -73,7 +73,7 @@ Gem::Specification.new do |s|
73
73
  ]
74
74
  s.homepage = %q{http://github.com/twg/wristband}
75
75
  s.require_paths = ["lib"]
76
- s.rubygems_version = %q{1.3.7}
76
+ s.rubygems_version = %q{1.6.2}
77
77
  s.summary = %q{An authentication engine}
78
78
  s.test_files = [
79
79
  "test/dummy/user.rb",
@@ -88,7 +88,6 @@ Gem::Specification.new do |s|
88
88
  ]
89
89
 
90
90
  if s.respond_to? :specification_version then
91
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
92
91
  s.specification_version = 3
93
92
 
94
93
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
metadata CHANGED
@@ -1,146 +1,113 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: wristband
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 0
8
- - 4
9
- version: 1.0.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.5
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Jack Neto
13
9
  - The Working Group Inc
14
10
  autorequire:
15
11
  bindir: bin
16
12
  cert_chain: []
17
-
18
- date: 2011-02-15 00:00:00 -05:00
13
+ date: 2011-06-27 00:00:00.000000000 -04:00
19
14
  default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
22
17
  name: rails
23
- requirement: &id001 !ruby/object:Gem::Requirement
18
+ requirement: &2169497820 !ruby/object:Gem::Requirement
24
19
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 3
30
- - 0
31
- - 4
20
+ requirements:
21
+ - - ! '>='
22
+ - !ruby/object:Gem::Version
32
23
  version: 3.0.4
33
24
  type: :runtime
34
25
  prerelease: false
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
26
+ version_requirements: *2169497820
27
+ - !ruby/object:Gem::Dependency
37
28
  name: haml
38
- requirement: &id002 !ruby/object:Gem::Requirement
29
+ requirement: &2169497240 !ruby/object:Gem::Requirement
39
30
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- segments:
44
- - 3
45
- - 0
46
- - 25
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
47
34
  version: 3.0.25
48
35
  type: :runtime
49
36
  prerelease: false
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
37
+ version_requirements: *2169497240
38
+ - !ruby/object:Gem::Dependency
52
39
  name: formatted_form
53
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ requirement: &2169496660 !ruby/object:Gem::Requirement
54
41
  none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- segments:
59
- - 0
60
- version: "0"
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
61
46
  type: :runtime
62
47
  prerelease: false
63
- version_requirements: *id003
64
- - !ruby/object:Gem::Dependency
48
+ version_requirements: *2169496660
49
+ - !ruby/object:Gem::Dependency
65
50
  name: sqlite3
66
- requirement: &id004 !ruby/object:Gem::Requirement
51
+ requirement: &2169496120 !ruby/object:Gem::Requirement
67
52
  none: false
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- segments:
72
- - 0
73
- version: "0"
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
74
57
  type: :development
75
58
  prerelease: false
76
- version_requirements: *id004
77
- - !ruby/object:Gem::Dependency
59
+ version_requirements: *2169496120
60
+ - !ruby/object:Gem::Dependency
78
61
  name: jeweler
79
- requirement: &id005 !ruby/object:Gem::Requirement
62
+ requirement: &2169495540 !ruby/object:Gem::Requirement
80
63
  none: false
81
- requirements:
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- segments:
85
- - 0
86
- version: "0"
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
87
68
  type: :development
88
69
  prerelease: false
89
- version_requirements: *id005
90
- - !ruby/object:Gem::Dependency
70
+ version_requirements: *2169495540
71
+ - !ruby/object:Gem::Dependency
91
72
  name: rails
92
- requirement: &id006 !ruby/object:Gem::Requirement
73
+ requirement: &2169494940 !ruby/object:Gem::Requirement
93
74
  none: false
94
- requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- segments:
98
- - 3
99
- - 0
100
- - 4
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
101
78
  version: 3.0.4
102
79
  type: :runtime
103
80
  prerelease: false
104
- version_requirements: *id006
105
- - !ruby/object:Gem::Dependency
81
+ version_requirements: *2169494940
82
+ - !ruby/object:Gem::Dependency
106
83
  name: haml
107
- requirement: &id007 !ruby/object:Gem::Requirement
84
+ requirement: &2169494360 !ruby/object:Gem::Requirement
108
85
  none: false
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- segments:
113
- - 3
114
- - 0
115
- - 25
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
116
89
  version: 3.0.25
117
90
  type: :runtime
118
91
  prerelease: false
119
- version_requirements: *id007
120
- - !ruby/object:Gem::Dependency
92
+ version_requirements: *2169494360
93
+ - !ruby/object:Gem::Dependency
121
94
  name: formatted_form
122
- requirement: &id008 !ruby/object:Gem::Requirement
95
+ requirement: &2169493780 !ruby/object:Gem::Requirement
123
96
  none: false
124
- requirements:
125
- - - ">="
126
- - !ruby/object:Gem::Version
127
- segments:
128
- - 1
129
- - 0
130
- - 0
97
+ requirements:
98
+ - - ! '>='
99
+ - !ruby/object:Gem::Version
131
100
  version: 1.0.0
132
101
  type: :runtime
133
102
  prerelease: false
134
- version_requirements: *id008
103
+ version_requirements: *2169493780
135
104
  description: Provides a starting point for user authentication
136
105
  email: jack@theworkinggroup.ca
137
106
  executables: []
138
-
139
107
  extensions: []
140
-
141
- extra_rdoc_files:
108
+ extra_rdoc_files:
142
109
  - README.md
143
- files:
110
+ files:
144
111
  - .DS_Store
145
112
  - Gemfile
146
113
  - Gemfile.lock
@@ -198,37 +165,32 @@ files:
198
165
  has_rdoc: true
199
166
  homepage: http://github.com/twg/wristband
200
167
  licenses: []
201
-
202
168
  post_install_message:
203
169
  rdoc_options: []
204
-
205
- require_paths:
170
+ require_paths:
206
171
  - lib
207
- required_ruby_version: !ruby/object:Gem::Requirement
172
+ required_ruby_version: !ruby/object:Gem::Requirement
208
173
  none: false
209
- requirements:
210
- - - ">="
211
- - !ruby/object:Gem::Version
212
- hash: -600781172638808744
213
- segments:
174
+ requirements:
175
+ - - ! '>='
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ segments:
214
179
  - 0
215
- version: "0"
216
- required_rubygems_version: !ruby/object:Gem::Requirement
180
+ hash: -2039141860052392450
181
+ required_rubygems_version: !ruby/object:Gem::Requirement
217
182
  none: false
218
- requirements:
219
- - - ">="
220
- - !ruby/object:Gem::Version
221
- segments:
222
- - 0
223
- version: "0"
183
+ requirements:
184
+ - - ! '>='
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
224
187
  requirements: []
225
-
226
188
  rubyforge_project:
227
- rubygems_version: 1.3.7
189
+ rubygems_version: 1.6.2
228
190
  signing_key:
229
191
  specification_version: 3
230
192
  summary: An authentication engine
231
- test_files:
193
+ test_files:
232
194
  - test/dummy/user.rb
233
195
  - test/functional/passwords_controller_test.rb
234
196
  - test/functional/sessions_controller_test.rb