mini_auth 0.3.2 → 1.0.0.rc

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/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 1.0.0.rc1 (2012-11-26)
2
+ * Extract RandomToken module from MiniAuth module.
3
+
1
4
  ## 0.3.2 (2012-11-08)
2
5
  * Don't protect all columns from mass assignment by default.
3
6
 
data/Gemfile CHANGED
@@ -7,13 +7,13 @@ if rails_version == "edge"
7
7
  elsif rails_version && rails_version.strip != ""
8
8
  gem "rails", rails_version
9
9
  else
10
- gem "rails", ">= 3.2.8"
10
+ gem "rails", ">= 3.2.9"
11
11
  end
12
12
 
13
13
  gem "bcrypt-ruby", "~> 3.0.1"
14
14
 
15
15
  group :test do
16
- gem "rspec-rails", "~> 2.11.4"
16
+ gem "rspec-rails", "~> 2.12.0"
17
17
  gem "sqlite3", "~> 1.3.6"
18
18
  gem "database_cleaner", "~> 0.9.1"
19
19
  end
data/README.md CHANGED
@@ -236,12 +236,12 @@ For more information about mass assignment security, please refer to the
236
236
 
237
237
  ### Random token
238
238
 
239
- `MiniAuth` module provides an easy way to generate a random token and verify it.
239
+ `MiniAuth::RandomToken` module provides an easy way to generate a random token and verify it.
240
240
 
241
241
  The class method `token` takes a list of names and defines "generate\_#{name}\_token" and "verify\_#{name}\_token" methods dynamically.
242
242
 
243
243
  class User < ActiveRecord::Base
244
- include MiniAuth
244
+ include MiniAuth::RandomToken
245
245
 
246
246
  attr_accessible :name, :address, :phone
247
247
  token :auto_login, :mail_confirmation
@@ -0,0 +1,25 @@
1
+ require "mini_auth/version"
2
+ require "bcrypt"
3
+
4
+ module MiniAuth
5
+ module RandomToken
6
+ extend ActiveSupport::Concern
7
+ module ClassMethods
8
+ def token(*names)
9
+ names.each do |name|
10
+ self.class_eval <<-METHOD, __FILE__, __LINE__ + 1
11
+ def generate_#{name}_token
12
+ send("#{name}_token=", SecureRandom.hex)
13
+ end
14
+ METHOD
15
+
16
+ self.class_eval <<-METHOD, __FILE__, __LINE__ + 1
17
+ def verify_#{name}_token(token)
18
+ token && token == self.send("#{name}_token")
19
+ end
20
+ METHOD
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,3 +1,3 @@
1
1
  module MiniAuth
2
- VERSION = "0.3.2"
2
+ VERSION = "1.0.0.rc"
3
3
  end
data/lib/mini_auth.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require "mini_auth/version"
2
+ require "mini_auth/random_token"
2
3
  require "bcrypt"
3
4
 
4
5
  module MiniAuth
@@ -64,22 +65,6 @@ module MiniAuth
64
65
  end
65
66
 
66
67
  module ClassMethods
67
- def token(*names)
68
- names.each do |name|
69
- self.class_eval <<-METHOD, __FILE__, __LINE__ + 1
70
- def generate_#{name}_token
71
- send("#{name}_token=", SecureRandom.hex)
72
- end
73
- METHOD
74
-
75
- self.class_eval <<-METHOD, __FILE__, __LINE__ + 1
76
- def verify_#{name}_token(token)
77
- token && token == self.send("#{name}_token")
78
- end
79
- METHOD
80
- end
81
- end
82
-
83
68
  def attributes_protected_by_default
84
69
  super + [ 'password_digest', 'changing_password', 'setting_password' ]
85
70
  end
data/mini_auth.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
 
20
20
  s.add_runtime_dependency "rails", ">= 3.1.8"
21
21
  s.add_runtime_dependency "bcrypt-ruby", "~> 3.0.1"
22
- s.add_development_dependency "rspec-rails", "~> 2.11.4"
22
+ s.add_development_dependency "rspec-rails", "~> 2.12.0"
23
23
  s.add_development_dependency "sqlite3", "~> 1.3.6"
24
24
  s.add_development_dependency "database_cleaner", "~> 0.9.1"
25
25
  end
data/spec/fake_app.rb CHANGED
@@ -27,6 +27,11 @@ class CreateAllTables < ActiveRecord::Migration
27
27
  t.string :password_digest
28
28
  t.boolean :deleted
29
29
  end
30
+
31
+ create_table(:emails) do |t|
32
+ t.string :address
33
+ t.string :confirmation_token
34
+ end
30
35
  end
31
36
  end
32
37
 
@@ -38,8 +43,9 @@ migration.change
38
43
  # Models
39
44
  class User < ActiveRecord::Base
40
45
  include MiniAuth
46
+ include MiniAuth::RandomToken
41
47
 
42
- token :auto_login, :mail_confirmation
48
+ token :auto_login
43
49
  end
44
50
 
45
51
  class Member < ActiveRecord::Base
@@ -51,3 +57,9 @@ class Administrator < ActiveRecord::Base
51
57
  include MiniAuth
52
58
  attr_protected :deleted
53
59
  end
60
+
61
+ class Email < ActiveRecord::Base
62
+ include MiniAuth::RandomToken
63
+
64
+ token :confirmation
65
+ end
@@ -1,9 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "MiniAuth.token" do
4
- let(:user) do
5
- User.create!(:name => 'alice')
6
- end
3
+ describe "MiniAuth::Token.token" do
4
+ let(:user) { User.create!(:name => 'alice') }
5
+ let(:email) { Email.create!(:address => 'alice@example.com') }
7
6
 
8
7
  it "should generate auto_login_token" do
9
8
  expect {
@@ -14,13 +13,13 @@ describe "MiniAuth.token" do
14
13
  user.auto_login_token.length.should == 32
15
14
  end
16
15
 
17
- it "should generate mail_confirmation_token" do
16
+ it "should generate confirmation_token" do
18
17
  expect {
19
- user.generate_mail_confirmation_token
20
- }.to change { user.mail_confirmation_token }
18
+ email.generate_confirmation_token
19
+ }.to change { email.confirmation_token }
21
20
 
22
- user.mail_confirmation_token.should_not be_nil
23
- user.mail_confirmation_token.length.should == 32
21
+ email.confirmation_token.should_not be_nil
22
+ email.confirmation_token.length.should == 32
24
23
  end
25
24
 
26
25
  it "should verify auto_login_token" do
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mini_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
5
- prerelease:
4
+ version: 1.0.0.rc
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Tsutomu Kuroda
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-08 00:00:00.000000000 Z
12
+ date: 2012-11-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: 2.11.4
53
+ version: 2.12.0
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,7 +58,7 @@ dependencies:
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: 2.11.4
61
+ version: 2.12.0
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: sqlite3
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -105,6 +105,7 @@ files:
105
105
  - README.md
106
106
  - Rakefile
107
107
  - lib/mini_auth.rb
108
+ - lib/mini_auth/random_token.rb
108
109
  - lib/mini_auth/version.rb
109
110
  - mini_auth.gemspec
110
111
  - spec/fake_app.rb
@@ -131,12 +132,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
131
132
  required_rubygems_version: !ruby/object:Gem::Requirement
132
133
  none: false
133
134
  requirements:
134
- - - ! '>='
135
+ - - ! '>'
135
136
  - !ruby/object:Gem::Version
136
- version: '0'
137
+ version: 1.3.1
137
138
  requirements: []
138
139
  rubyforge_project: mini_auth
139
- rubygems_version: 1.8.23
140
+ rubygems_version: 1.8.24
140
141
  signing_key:
141
142
  specification_version: 3
142
143
  summary: A minimal authentication module for Rails