mini_auth 0.3.1 → 0.3.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.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 0.3.2 (2012-11-08)
2
+ * Don't protect all columns from mass assignment by default.
3
+
1
4
  ## 0.3.1 (2012-07-18)
2
5
  * Set `password_digest` when the user is saved without validation.
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.6"
10
+ gem "rails", ">= 3.2.8"
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.0"
17
- gem "sqlite3", "~> 1.3.4"
18
- gem "database_cleaner", "~> 0.7.0"
16
+ gem "rspec-rails", "~> 2.11.4"
17
+ gem "sqlite3", "~> 1.3.6"
18
+ gem "database_cleaner", "~> 0.9.1"
19
19
  end
data/README.md CHANGED
@@ -269,4 +269,4 @@ License
269
269
  Copyright
270
270
  ---------
271
271
 
272
- Copyright (c) 2011 Tsutomu Kuroda <t-kuroda@oiax.jp>.
272
+ Copyright (c) 2011-2012 Tsutomu Kuroda <t-kuroda@oiax.jp>.
@@ -1,3 +1,3 @@
1
1
  module MiniAuth
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
data/lib/mini_auth.rb CHANGED
@@ -13,15 +13,8 @@ module MiniAuth
13
13
  included do
14
14
  attr_accessor :changing_password, :setting_password
15
15
  attr_accessor *BASIC_ATTRIBUTES
16
- attr_accessible *BASIC_ATTRIBUTES
17
16
 
18
17
  validates :password, :new_password, :confirmation => true
19
-
20
- if respond_to?(:attributes_protected_by_default)
21
- def self.attributes_protected_by_default
22
- super + [ 'password_digest', 'changing_password', 'setting_password' ]
23
- end
24
- end
25
18
 
26
19
  validate do
27
20
  if changing_password?
@@ -86,5 +79,9 @@ module MiniAuth
86
79
  METHOD
87
80
  end
88
81
  end
82
+
83
+ def attributes_protected_by_default
84
+ super + [ 'password_digest', 'changing_password', 'setting_password' ]
85
+ end
89
86
  end
90
87
  end
data/mini_auth.gemspec CHANGED
@@ -17,9 +17,9 @@ Gem::Specification.new do |s|
17
17
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
18
  s.require_paths = ["lib"]
19
19
 
20
- s.add_runtime_dependency "rails", ">= 3.1.6"
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.0"
23
- s.add_development_dependency "sqlite3", "~> 1.3.4"
24
- s.add_development_dependency "database_cleaner", "~> 0.7.0"
22
+ s.add_development_dependency "rspec-rails", "~> 2.11.4"
23
+ s.add_development_dependency "sqlite3", "~> 1.3.6"
24
+ s.add_development_dependency "database_cleaner", "~> 0.9.1"
25
25
  end
data/spec/fake_app.rb CHANGED
@@ -16,6 +16,17 @@ class CreateAllTables < ActiveRecord::Migration
16
16
  t.string :auto_login_token
17
17
  t.string :mail_confirmation_token
18
18
  end
19
+
20
+ create_table(:members) do |t|
21
+ t.string :name
22
+ t.string :password_digest
23
+ end
24
+
25
+ create_table(:administrators) do |t|
26
+ t.string :name
27
+ t.string :password_digest
28
+ t.boolean :deleted
29
+ end
19
30
  end
20
31
  end
21
32
 
@@ -28,6 +39,15 @@ migration.change
28
39
  class User < ActiveRecord::Base
29
40
  include MiniAuth
30
41
 
31
- attr_accessible :name
32
42
  token :auto_login, :mail_confirmation
33
43
  end
44
+
45
+ class Member < ActiveRecord::Base
46
+ include MiniAuth
47
+ attr_accessible :name
48
+ end
49
+
50
+ class Administrator < ActiveRecord::Base
51
+ include MiniAuth
52
+ attr_protected :deleted
53
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+
3
+ describe "mass assignment security" do
4
+ it "should not protect all columns by default" do
5
+ u = User.create!(:name => 'alice', :password => 'hotyoga')
6
+ u.name.should eq 'alice'
7
+ end
8
+ end
@@ -1,10 +1,24 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "password_digest" do
4
- it "should be protected against mass assignment" do
4
+ it "should be protected against mass assignment by default" do
5
5
  u = User.create!(:name => 'alice', :password => 'hotyoga')
6
6
  d = u.password_digest.to_s
7
7
  u.update_attributes :password_digest => 'dummy'
8
8
  u.password_digest.to_s.should == d
9
9
  end
10
+
11
+ it "should be protected against mass assignment when using white list protection" do
12
+ m = Member.create!(:name => 'alice', :password => 'hotyoga')
13
+ d = m.password_digest.to_s
14
+ m.update_attributes :password_digest => 'dummy'
15
+ m.password_digest.to_s.should == d
16
+ end
17
+
18
+ it "should be protected against mass assignment when using black list protection" do
19
+ a = Administrator.create!(:name => 'alice', :password => 'hotyoga')
20
+ d = a.password_digest.to_s
21
+ a.update_attributes :password_digest => 'dummy'
22
+ a.password_digest.to_s.should == d
23
+ end
10
24
  end
@@ -1,30 +1,24 @@
1
1
  #!/bin/bash
2
+ #
3
+ # rbenv version
2
4
 
3
5
  set -e
4
6
 
5
- if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
6
- source "$HOME/.rvm/scripts/rvm"
7
- elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then
8
- source "/usr/local/rvm/scripts/rvm"
9
- else
10
- printf "ERROR: An RVM installation was not found.\n"
11
- fi
12
-
13
7
  function run {
14
8
  gem list --local bundler | grep bundler || gem install bundler --no-ri --no-rdoc
15
9
 
16
- for version in 3.1.3 3.2.0.rc1
10
+ for version in 3.1.8 3.2.8
17
11
  do
18
12
  echo "Running bundle exec rspec spec against rails $version..."
19
13
  MINI_AUTH_RAILS_VERSION=$version bundle update rails
20
- MINI_AUTH_RAILS_VERSION=$version bundle exec rspec spec
14
+ MINI_AUTH_RAILS_VERSION=$version bundle exec rake spec
21
15
  done
22
16
  }
23
17
 
24
- rvm use ruby-1.8.7@mini_auth --create
18
+ export RBENV_VERSION=1.8.7-p358
25
19
  run
26
20
 
27
- rvm use ruby-1.9.3@mini_auth --create
21
+ export RBENV_VERSION=1.9.3-p286
28
22
  run
29
23
 
30
24
  echo 'Success!'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mini_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-18 00:00:00.000000000 Z
12
+ date: 2012-11-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 3.1.6
21
+ version: 3.1.8
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
- version: 3.1.6
29
+ version: 3.1.8
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: bcrypt-ruby
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: 2.11.0
53
+ version: 2.11.4
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.0
61
+ version: 2.11.4
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: sqlite3
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -66,7 +66,7 @@ dependencies:
66
66
  requirements:
67
67
  - - ~>
68
68
  - !ruby/object:Gem::Version
69
- version: 1.3.4
69
+ version: 1.3.6
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
@@ -74,7 +74,7 @@ dependencies:
74
74
  requirements:
75
75
  - - ~>
76
76
  - !ruby/object:Gem::Version
77
- version: 1.3.4
77
+ version: 1.3.6
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: database_cleaner
80
80
  requirement: !ruby/object:Gem::Requirement
@@ -82,7 +82,7 @@ dependencies:
82
82
  requirements:
83
83
  - - ~>
84
84
  - !ruby/object:Gem::Version
85
- version: 0.7.0
85
+ version: 0.9.1
86
86
  type: :development
87
87
  prerelease: false
88
88
  version_requirements: !ruby/object:Gem::Requirement
@@ -90,7 +90,7 @@ dependencies:
90
90
  requirements:
91
91
  - - ~>
92
92
  - !ruby/object:Gem::Version
93
- version: 0.7.0
93
+ version: 0.9.1
94
94
  description: A minimal authentication module for Rails
95
95
  email:
96
96
  - hermes@oiax.jp
@@ -110,12 +110,12 @@ files:
110
110
  - spec/fake_app.rb
111
111
  - spec/mini_auth/authenticate_spec.rb
112
112
  - spec/mini_auth/change_password_spec.rb
113
+ - spec/mini_auth/mass_assignment_security_spec.rb
113
114
  - spec/mini_auth/password_digest_spec.rb
114
115
  - spec/mini_auth/setting_password_spec.rb
115
116
  - spec/mini_auth/token_spec.rb
116
117
  - spec/spec_helper.rb
117
118
  - test_on_multiple_environments.sh
118
- - test_on_multiple_environments2.sh
119
119
  homepage: https://github.com/kuroda/mini_auth
120
120
  licenses: []
121
121
  post_install_message:
@@ -1,24 +0,0 @@
1
- #!/bin/bash
2
- #
3
- # rbenv version
4
-
5
- set -e
6
-
7
- function run {
8
- gem list --local bundler | grep bundler || gem install bundler --no-ri --no-rdoc
9
-
10
- for version in 3.1.6 3.2.6
11
- do
12
- echo "Running bundle exec rspec spec against rails $version..."
13
- MINI_AUTH_RAILS_VERSION=$version bundle update rails
14
- MINI_AUTH_RAILS_VERSION=$version bundle exec rake spec
15
- done
16
- }
17
-
18
- export RBENV_VERSION=1.8.7-p358
19
- run
20
-
21
- export RBENV_VERSION=1.9.3-p194
22
- run
23
-
24
- echo 'Success!'