letmein 0.1.0 → 0.1.1

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/README.md CHANGED
@@ -12,12 +12,12 @@ Plug the thing below into Gemfile and you know what to do after.
12
12
 
13
13
  If you want to authenticate *User* with database fields *email*, *password_hash* and *password_salt* you don't need to do anything. If you're authenticating something else, you want something like this in your initializers:
14
14
 
15
- LetMeIn.initialize(
16
- :model => 'Account',
17
- :identifier => 'username',
18
- :password => 'password_crypt',
19
- :salt => 'salty_salt
20
- )
15
+ LetMeIn.configure do |conf|
16
+ conf.model = 'Account'
17
+ conf.identifier = 'username'
18
+ conf.password = 'password_crypt'
19
+ conf.salt = 'salty_salt
20
+ end
21
21
 
22
22
  When creating/updating a record you have access to *password* accessor.
23
23
 
@@ -73,10 +73,10 @@ Authenticating Multiple Models
73
73
  ==============================
74
74
  Yes, you can do that too. Let's assume you also want to authenticate admins that don't have email addresses, but have usernames.
75
75
 
76
- LetMeIn.initialize(
77
- :model => ['User', 'Admin'],
78
- :identifier => ['email', 'username']
79
- )
76
+ LetMeIn.configure do |conf|
77
+ conf.models = ['User', 'Admin']
78
+ conf.identifier = ['email', 'username']
79
+ end
80
80
 
81
81
  Bam! You're done. Now you have an AdminSession object that will use *username* and *password* to authenticate.
82
82
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{letmein}
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Oleg Khabarov"]
12
- s.date = %q{2011-05-13}
12
+ s.date = %q{2011-08-10}
13
13
  s.description = %q{minimalistic authentication}
14
14
  s.email = %q{oleg@khabarov.ca}
15
15
  s.extra_rdoc_files = [
@@ -30,7 +30,7 @@ Gem::Specification.new do |s|
30
30
  s.homepage = %q{http://github.com/GBH/letmein}
31
31
  s.licenses = ["MIT"]
32
32
  s.require_paths = ["lib"]
33
- s.rubygems_version = %q{1.7.2}
33
+ s.rubygems_version = %q{1.6.2}
34
34
  s.summary = %q{minimalistic authentication}
35
35
  s.test_files = [
36
36
  "test/letmein_test.rb"
@@ -98,7 +98,7 @@ module LetMeIn
98
98
  p = LetMeIn.accessor(:password, LetMeIn.config.models.index(m))
99
99
  s = LetMeIn.accessor(:password, LetMeIn.config.models.index(m))
100
100
  object = m.constantize.send("find_by_#{i}", self.identifier)
101
- self.authenticated_object = if object && object.send(p) == BCrypt::Engine.hash_secret(self.password, object.send(s))
101
+ self.authenticated_object = if object && !object.send(p).blank? && object.send(p) == BCrypt::Engine.hash_secret(self.password, object.send(s))
102
102
  object
103
103
  else
104
104
  errors.add :base, 'Failed to authenticate'
@@ -165,4 +165,15 @@ class LetMeInTest < Test::Unit::TestCase
165
165
  end
166
166
  assert_equal nil, session.authenticated_object
167
167
  end
168
+
169
+ def test_session_authentication_on_blank_object
170
+ user = User.create!(:email => 'test@test.test')
171
+ session = UserSession.new(:email => 'test@test.test', :password => 'pass')
172
+ begin
173
+ session.save!
174
+ rescue LetMeIn::Error => e
175
+ assert_equal 'Failed to authenticate', e.to_s
176
+ end
177
+ assert_equal nil, session.authenticated_object
178
+ end
168
179
  end
metadata CHANGED
@@ -1,71 +1,69 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: letmein
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
4
5
  prerelease:
5
- version: 0.1.0
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Oleg Khabarov
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-05-13 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2011-08-10 00:00:00.000000000 -04:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
16
  name: rails
17
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &70220938849600 !ruby/object:Gem::Requirement
18
18
  none: false
19
- requirements:
20
- - - ">="
21
- - !ruby/object:Gem::Version
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
22
  version: 3.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
25
+ version_requirements: *70220938849600
26
+ - !ruby/object:Gem::Dependency
27
27
  name: bcrypt-ruby
28
- requirement: &id002 !ruby/object:Gem::Requirement
28
+ requirement: &70220938849040 !ruby/object:Gem::Requirement
29
29
  none: false
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: "0"
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *70220938849040
37
+ - !ruby/object:Gem::Dependency
38
38
  name: bundler
39
- requirement: &id003 !ruby/object:Gem::Requirement
39
+ requirement: &70220938848460 !ruby/object:Gem::Requirement
40
40
  none: false
41
- requirements:
41
+ requirements:
42
42
  - - ~>
43
- - !ruby/object:Gem::Version
43
+ - !ruby/object:Gem::Version
44
44
  version: 1.0.0
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
47
+ version_requirements: *70220938848460
48
+ - !ruby/object:Gem::Dependency
49
49
  name: jeweler
50
- requirement: &id004 !ruby/object:Gem::Requirement
50
+ requirement: &70220938847900 !ruby/object:Gem::Requirement
51
51
  none: false
52
- requirements:
52
+ requirements:
53
53
  - - ~>
54
- - !ruby/object:Gem::Version
54
+ - !ruby/object:Gem::Version
55
55
  version: 1.5.2
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *id004
58
+ version_requirements: *70220938847900
59
59
  description: minimalistic authentication
60
60
  email: oleg@khabarov.ca
61
61
  executables: []
62
-
63
62
  extensions: []
64
-
65
- extra_rdoc_files:
63
+ extra_rdoc_files:
66
64
  - LICENSE
67
65
  - README.md
68
- files:
66
+ files:
69
67
  - Gemfile
70
68
  - Gemfile.lock
71
69
  - LICENSE
@@ -75,35 +73,34 @@ files:
75
73
  - letmein.gemspec
76
74
  - lib/letmein.rb
77
75
  - test/letmein_test.rb
76
+ has_rdoc: true
78
77
  homepage: http://github.com/GBH/letmein
79
- licenses:
78
+ licenses:
80
79
  - MIT
81
80
  post_install_message:
82
81
  rdoc_options: []
83
-
84
- require_paths:
82
+ require_paths:
85
83
  - lib
86
- required_ruby_version: !ruby/object:Gem::Requirement
84
+ required_ruby_version: !ruby/object:Gem::Requirement
87
85
  none: false
88
- requirements:
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- hash: -3376518755329452587
92
- segments:
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ segments:
93
91
  - 0
94
- version: "0"
95
- required_rubygems_version: !ruby/object:Gem::Requirement
92
+ hash: 2973203238153488042
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
94
  none: false
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- version: "0"
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
101
99
  requirements: []
102
-
103
100
  rubyforge_project:
104
- rubygems_version: 1.7.2
101
+ rubygems_version: 1.6.2
105
102
  signing_key:
106
103
  specification_version: 3
107
104
  summary: minimalistic authentication
108
- test_files:
105
+ test_files:
109
106
  - test/letmein_test.rb