simple_auth 2.0.1 → 2.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 16b288cc0b5f5f67f53fc86454427dfb1a392064
4
- data.tar.gz: ba6f438d37ea3c8918d1aa240feeab6f6d5e4707
3
+ metadata.gz: a8682ca22a814e3257391a8c00f4133534f0fc10
4
+ data.tar.gz: 66f375cd6005a5e20236242b45c9e78746a622ac
5
5
  SHA512:
6
- metadata.gz: b5ebd95ef1bb5b40032a6a19617d78a1e834e83e2ee212e46f5ae943422452b000d21df7154127fb9638647dbfd96b0fb522a3cb3cf9b6855187d9aba25a2388
7
- data.tar.gz: 58c5f19ab8f6fb09f502bb9548ffcd48914c42b0ccc591105221635ef350547f6625894d254c64e7121fb79c2c61433d2a1690a4316807902f1510dd0dcd7d61
6
+ metadata.gz: db21173167527172fdf0ccacaaa7551a0b1341742f75e3a2358391c2d844d4da16148ee920662d330fa23e3622c19783b16cdd288cdce5305aa9068c01391262
7
+ data.tar.gz: 7b9bdd103c1aa3e8222b29ade7fb0348b762df8508584384a3f9a46d97f75d22fe2bd219fefcd9f2bde0a76ceb1ab0caf5bfecc5ecc2bcfa60ebe893f6760358
@@ -21,7 +21,7 @@ module SimpleAuth
21
21
  # end
22
22
  # end
23
23
  #
24
- def authentication(&block)
24
+ def authentication(options = {}, &block)
25
25
  SimpleAuth.setup(&block) if block_given?
26
26
  SimpleAuth::Config.model ||= name.underscore.to_sym
27
27
 
@@ -29,12 +29,21 @@ module SimpleAuth
29
29
  # So, just return.
30
30
  return if respond_to?(:authenticate)
31
31
 
32
- has_secure_password
32
+ macro = method(:has_secure_password)
33
+
34
+ if macro.arity.zero?
35
+ has_secure_password
36
+ else
37
+ has_secure_password(options)
38
+ end
33
39
 
34
40
  extend ClassMethods
35
41
  include InstanceMethods
36
42
 
37
- validates_length_of :password, minimum: 4
43
+ if options.fetch(:validations, true)
44
+ validates_length_of :password, minimum: 4,
45
+ if: -> { password.present? }
46
+ end
38
47
  end
39
48
  end
40
49
 
@@ -2,7 +2,7 @@ module SimpleAuth
2
2
  module Version
3
3
  MAJOR = 2
4
4
  MINOR = 0
5
- PATCH = 1
5
+ PATCH = 2
6
6
  STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
7
  end
8
8
  end
@@ -32,31 +32,42 @@ describe SimpleAuth::ActiveRecord do
32
32
  expect(subject).not_to be_valid
33
33
  end
34
34
 
35
- it "requires password" do
35
+ it "requires password", if: $rails_version >= "4.0" do
36
36
  expect(subject.errors[:password]).not_to be_empty
37
37
  end
38
38
 
39
+ it "requires password", if: $rails_version < "4.0" do
40
+ expect(subject.errors[:password_digest]).not_to be_empty
41
+ end
42
+
39
43
  it "requires password to be at least 4-chars long" do
40
44
  subject.password = "123"
41
45
  expect(subject).not_to be_valid
42
46
  expect(subject.errors[:password]).not_to be_empty
43
47
  end
44
48
 
45
- it "requires password confirmation", if: Rails::VERSION::STRING >= "4.0" do
49
+ it "requires password confirmation", if: $rails_version >= "4.0" do
46
50
  user = User.create(password: "test", password_confirmation: "invalid")
47
51
  expect(user.errors[:password_confirmation]).not_to be_empty
48
52
  end
49
53
 
50
- it "requires password confirmation", if: Rails::VERSION::STRING < "4.0" do
54
+ it "requires password confirmation", if: $rails_version < "4.0" do
51
55
  user = User.create(password: "test", password_confirmation: "invalid")
52
56
  expect(user.errors[:password]).not_to be_empty
53
57
  end
54
58
  end
55
59
 
60
+ context "ignoring validations" do
61
+ it "ignores validations", if: $rails_version >= "4.0" do
62
+ person = Person.new
63
+ expect(person).to be_valid
64
+ end
65
+ end
66
+
56
67
  context "existing record" do
57
68
  before do
58
69
  model.delete_all
59
- model.create(
70
+ model.create!(
60
71
  :email => "john@doe.com",
61
72
  :login => "johndoe",
62
73
  :password => "test",
@@ -67,11 +78,16 @@ describe SimpleAuth::ActiveRecord do
67
78
 
68
79
  subject { model.first }
69
80
 
70
- it "requires password" do
81
+ it "requires password", if: $rails_version >= "4.0" do
71
82
  user = User.create(password: nil)
72
83
  expect(user.errors[:password]).not_to be_empty
73
84
  end
74
85
 
86
+ it "requires password", if: $rails_version < "4.0" do
87
+ user = User.create(password: nil)
88
+ expect(user.errors[:password_digest]).not_to be_empty
89
+ end
90
+
75
91
  it "authenticates using email" do
76
92
  expect(model.authenticate("john@doe.com", "test")).to eq(subject)
77
93
  end
@@ -103,6 +119,25 @@ describe SimpleAuth::ActiveRecord do
103
119
  }.to raise_error(SimpleAuth::RecordNotFound)
104
120
  end
105
121
 
122
+ it "skips password length validation when no password is set" do
123
+ expect {
124
+ subject.username = "jd"
125
+ subject.save!
126
+ }.not_to raise_error
127
+ end
128
+
129
+ it "enforces password length when password is set" do
130
+ subject.password = "a"
131
+ subject.valid?
132
+ expect(subject.errors[:password]).to have(1).item
133
+ end
134
+
135
+ it "accepts valid password" do
136
+ subject.password = "test"
137
+ subject.valid?
138
+ expect(subject.errors[:password]).to be_empty
139
+ end
140
+
106
141
  it "returns user" do
107
142
  expect(model.find_by_credential(subject.email)).to eq(subject)
108
143
  expect(model.find_by_credential!(subject.email)).to eq(subject)
@@ -31,6 +31,11 @@ describe SimpleAuth, "compatibility mode" do
31
31
 
32
32
  it "assigns password_digest" do
33
33
  customer = Customer.create(password: "test")
34
- expect(customer.password_digest).not_to be_empty
34
+ expect(customer.password_digest).to be_present
35
+ end
36
+
37
+ it "assigns password confirmation" do
38
+ customer = Customer.create(password: "test", password_confirmation: "test")
39
+ expect(customer.password_confirmation).to be_present
35
40
  end
36
41
  end
data/spec/spec_helper.rb CHANGED
@@ -10,6 +10,8 @@ require "simple_auth"
10
10
  require File.dirname(__FILE__) + "/support/config/boot"
11
11
  require "rspec/rails"
12
12
 
13
+ $rails_version = Rails::VERSION::STRING
14
+
13
15
  # Load database schema
14
16
  load File.dirname(__FILE__) + "/schema.rb"
15
17
 
@@ -0,0 +1,4 @@
1
+ class Person < ActiveRecord::Base
2
+ self.table_name = "users"
3
+ authentication validations: false
4
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nando Vieira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-25 00:00:00.000000000 Z
11
+ date: 2014-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -127,6 +127,7 @@ files:
127
127
  - spec/spec_helper.rb
128
128
  - spec/support/app/controllers/application_controller.rb
129
129
  - spec/support/app/models/customer.rb
130
+ - spec/support/app/models/person.rb
130
131
  - spec/support/app/models/user.rb
131
132
  - spec/support/app/views/dashboard/index.erb
132
133
  - spec/support/app/views/session/new.erb
@@ -170,6 +171,7 @@ test_files:
170
171
  - spec/spec_helper.rb
171
172
  - spec/support/app/controllers/application_controller.rb
172
173
  - spec/support/app/models/customer.rb
174
+ - spec/support/app/models/person.rb
173
175
  - spec/support/app/models/user.rb
174
176
  - spec/support/app/views/dashboard/index.erb
175
177
  - spec/support/app/views/session/new.erb