authenticate 0.7.2 → 0.7.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b20e579605068181100a79652e0d2f59b40d7a5
4
- data.tar.gz: 4cca1df92302dee427285af9453c9489fe9b985e
3
+ metadata.gz: 064f6cc3d53977f074f3d50a8bd844741e21061d
4
+ data.tar.gz: 6158456020cb666d65d1d0d2fb03db0994e58311
5
5
  SHA512:
6
- metadata.gz: '0855f6f3b59e182affb16b9e71ad9224ac031494c73acb869e335ff86781e5130fa9dcc0d28f24d17cf3f2e9e2dad2fcd82caefd15d0b27604b5cf9096975f58'
7
- data.tar.gz: 58f3a8f48083d62280a32221c0130056cb5abf360dce3c9eb50c274667aff6dfc14eedb3e0f145b32579af653b0be068394609f5e59f3058069ef99e2695f45d
6
+ metadata.gz: a0c0df19972e607c36030c29f08b393fb3da6338348c7130ced5bcb578b3b577758a518b768e414573fcc82ee5b5ac7afc87d563a51f6ef15ff1c533445fa936
7
+ data.tar.gz: 3319a94b72c651f3add224978dc1f7840670a992c7c539a93059de2df9478d6e78ea9fb3c20ae87eb743d97f6f89cba2395ddce373c1324609d64390d4171759
@@ -13,6 +13,7 @@ gemfile:
13
13
  - gemfiles/4.2.gemfile
14
14
  - gemfiles/5.0.gemfile
15
15
  - gemfiles/5.1.gemfile
16
+ - gemfiles/5.2.gemfile
16
17
 
17
18
 
18
19
  matrix:
@@ -21,6 +22,8 @@ matrix:
21
22
  gemfile: gemfiles/5.0.gemfile
22
23
  - rvm: 2.1.8
23
24
  gemfile: gemfiles/5.1.gemfile
25
+ - rvm: 2.1.8
26
+ gemfile: gemfiles/5.2.gemfile
24
27
  - rvm: 2.4.1
25
28
  gemfile: gemfiles/4.2.gemfile
26
29
 
data/Appraisals CHANGED
@@ -4,7 +4,7 @@ if RUBY_VERSION < "2.4.0"
4
4
  end
5
5
  end
6
6
 
7
- if RUBY_VERSION >= "2.2.0"
7
+ if RUBY_VERSION >= "2.2.2"
8
8
  appraise "5.0" do
9
9
  gem "rails", "~> 5.0.0"
10
10
  end
@@ -12,5 +12,9 @@ if RUBY_VERSION >= "2.2.0"
12
12
  appraise "5.1" do
13
13
  gem "rails", "~> 5.1"
14
14
  end
15
+
16
+ appraise "5.2" do
17
+ gem "rails", "~> 5.2"
18
+ end
15
19
  end
16
20
 
@@ -1,6 +1,19 @@
1
1
  # Authenticate Changelog
2
2
 
3
3
 
4
+ ## [0.7.3] - June 7, 2018
5
+
6
+ ### Support for rails 5.2
7
+ - added rails 5.2 support to gemspec
8
+ - added rails 5.2 to Appraisals, .travis.yml, gemfiles
9
+ - added `sqlite3.represent_boolean_as_integer = true` to dummy application config
10
+ - bumped authenticate version
11
+ - update request specs, looks for 302 after login
12
+ - added build and release tasks to Rakefile
13
+
14
+ [0.7.3]: https://github.com/tomichj/authenticate/compare/v0.7.2...v0.7.3
15
+
16
+
4
17
  ## [0.7.2] - June 22, 2017
5
18
 
6
19
  ### API change
data/Rakefile CHANGED
@@ -16,3 +16,11 @@ RSpec::Core::RakeTask.new(:spec)
16
16
 
17
17
  desc 'Run all specs in spec directory (excluding plugin specs)'
18
18
  task default: :spec
19
+
20
+ task :build do
21
+ system "gem build authenticate.gemspec"
22
+ end
23
+
24
+ task release: :build do
25
+ system "gem push authenticate-#{Authenticate::VERSION}"
26
+ end
@@ -6,14 +6,13 @@ class Authenticate::PasswordsController < Authenticate::AuthenticateController
6
6
  before_action :ensure_existing_user, only: [:edit, :update]
7
7
 
8
8
  # Display screen to request a password change email.
9
+ #
9
10
  # GET /users/passwords/new
10
11
  def new
11
12
  render template: 'passwords/new'
12
13
  end
13
14
 
14
15
  # Send password change email.
15
- #
16
- # POST /users/password
17
16
  def create
18
17
  if (user = find_user_for_create)
19
18
  user.forgot_password!
@@ -22,12 +21,12 @@ class Authenticate::PasswordsController < Authenticate::AuthenticateController
22
21
  redirect_to sign_in_path, notice: flash_create_description
23
22
  end
24
23
 
25
- # Screen to enter your new password.
24
+ # Enter a new password.
26
25
  #
27
- # A get with the token in the url is expected:
26
+ # A get with the token in the url is expected, for example:
28
27
  # GET /users/passwords/3/edit?token=abcdef
29
28
  #
30
- # This results in a redirect with the token removed from the url & copied to the session:
29
+ # Results in a redirect with the token removed from the url & copied to the session:
31
30
  # GET /users/passwords/3/edit
32
31
  #
33
32
  def edit
@@ -35,7 +34,7 @@ class Authenticate::PasswordsController < Authenticate::AuthenticateController
35
34
 
36
35
  if params[:token]
37
36
  session[:password_reset_token] = params[:token]
38
- redirect_to edit_users_password_url(@user)
37
+ redirect_to url_for
39
38
  elsif !@user.reset_password_period_valid?
40
39
  redirect_to sign_in_path, notice: flash_failure_token_expired
41
40
  else
@@ -43,9 +42,6 @@ class Authenticate::PasswordsController < Authenticate::AuthenticateController
43
42
  end
44
43
  end
45
44
 
46
- # Save the new password entered in #edit.
47
- #
48
- # PUT /users/passwords/3/
49
45
  def update
50
46
  @user = find_user_for_update
51
47
 
@@ -23,9 +23,9 @@ Gem::Specification.new do |s|
23
23
 
24
24
  s.add_dependency 'bcrypt'
25
25
  s.add_dependency 'email_validator', '~> 1.6'
26
- s.add_dependency 'rails', '>= 4.0', '< 5.2'
26
+ s.add_dependency 'rails', '>= 4.0', '< 5.3'
27
27
 
28
- s.add_development_dependency 'factory_girl', '~> 4.8'
28
+ s.add_development_dependency 'factory_bot', '~> 4.8.2'
29
29
  s.add_development_dependency 'rspec-rails', '~> 3.6'
30
30
  s.add_development_dependency 'pry', '~> 0.10'
31
31
  s.add_development_dependency 'sqlite3', '~> 1.3'
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 5.2"
6
+
7
+ gemspec path: "../"
@@ -16,7 +16,7 @@ module Authenticate
16
16
  # * logout - log a user out, invalidating their Authenticate session.
17
17
  #
18
18
  # Action/Filter:
19
- # * require_authentication - restrict access to authenticated users, often from ApplicationController
19
+ # * require_login - restrict access to authenticated users, often from ApplicationController
20
20
  #
21
21
  # Helpers, used anywhere:
22
22
  # * current_user - get the currently logged in user
@@ -129,7 +129,7 @@ module Authenticate
129
129
  is_a?(Authenticate::AuthenticateController)
130
130
  end
131
131
 
132
- # The old API.
132
+ # The old API. DEPRECATED, use #require_login instead.
133
133
  #
134
134
  # todo: remove in a future version.
135
135
  def require_authentication
@@ -138,7 +138,7 @@ module Authenticate
138
138
  require_login
139
139
  end
140
140
 
141
- # The old API.
141
+ # The old API. DEPRECATED, use #logged_in? instead.
142
142
  #
143
143
  # todo: remove in a future version.
144
144
  def authenticated?
@@ -62,7 +62,7 @@ module Authenticate
62
62
  # Example:
63
63
  # Authenticate.lifecycle.run_callbacks(:after_set_user, @current_user, self, { event: :authentication })
64
64
  #
65
- def run_callbacks(kind, *args) # args - |user, session, opts|
65
+ def run_callbacks(kind, user, session, *args) # args - |user, session, opts|
66
66
  # Last callback arg MUST be a Hash
67
67
  options = args.last
68
68
  send("#{kind}_callbacks").each do |callback, conditions| # each callback has 'conditions' stored with it
@@ -70,7 +70,7 @@ module Authenticate
70
70
  invalid = conditions.find do |key, value|
71
71
  value.is_a?(Array) ? !value.include?(options[key]) : (value != options[key])
72
72
  end
73
- callback.call(*args) unless invalid
73
+ callback.call(user, session, *args) unless invalid
74
74
  end
75
75
  nil
76
76
  end
@@ -19,6 +19,7 @@ module Authenticate
19
19
  end
20
20
 
21
21
  # Finish user login process, *after* the user has been authenticated.
22
+ # The user is authenticated by Authenticate::Controller#authenticate.
22
23
  #
23
24
  # Called when user creates an account or signs back into the app.
24
25
  # Runs all configured callbacks, checking for login failure.
@@ -81,7 +82,7 @@ module Authenticate
81
82
  # nuke notion of current_user
82
83
  @current_user = nil
83
84
 
84
- # # nuke cookie
85
+ # nuke session_token cookie from the client browser
85
86
  @cookies.delete cookie_name
86
87
  end
87
88
 
@@ -1,3 +1,3 @@
1
1
  module Authenticate
2
- VERSION = '0.7.2'.freeze
2
+ VERSION = '0.7.3'.freeze
3
3
  end
@@ -26,3 +26,8 @@ module Dummy
26
26
  end
27
27
 
28
28
  Rails.application.routes.default_url_options[:host] = 'localhost:3000'
29
+
30
+ if Rails.application.config.active_record.sqlite3.respond_to? :represent_boolean_as_integer
31
+ Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true
32
+ end
33
+
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  sequence :email do |n|
3
3
  "user#{n}@example.com"
4
4
  end
@@ -23,6 +23,7 @@ describe 'CSRF rotation' do
23
23
  do_post session_path, params: { **session_params }
24
24
 
25
25
  # expect that we now have a new csrf token
26
+ expect(response).to have_http_status(302)
26
27
  expect(csrf_token).not_to eq original_token
27
28
  expect(csrf_token).to be_present
28
29
  end
@@ -7,6 +7,10 @@ describe 'session key assignment' do
7
7
  do_post session_path, params: { session: { email: @user.email, password: @user.password } }
8
8
  end
9
9
 
10
+ it 'redirects after login' do
11
+ expect(response).to have_http_status(302)
12
+ end
13
+
10
14
  it 'sets user session token' do
11
15
  @user.reload
12
16
  expect(@user.session_token).to_not be_nil
@@ -12,7 +12,7 @@ require 'rspec/rails'
12
12
  require 'capybara/rails'
13
13
  require 'capybara/rspec'
14
14
  require 'database_cleaner'
15
- require 'factory_girl'
15
+ require 'factory_bot'
16
16
  require 'timecop'
17
17
 
18
18
  Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
@@ -20,7 +20,7 @@ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
20
20
  Rails.backtrace_cleaner.remove_silencers!
21
21
  DatabaseCleaner.strategy = :truncation
22
22
 
23
- # Load factory girl factories.
23
+ # Load factory bot factories.
24
24
  Dir[File.join(File.dirname(__FILE__), 'factories/**/*.rb')].each { |f| require f }
25
25
 
26
26
  # Build test database in spec/dummy/db. There's probably a better way to do this.
@@ -35,7 +35,7 @@ if ActiveRecord::VERSION::STRING >= '4.2' && ActiveRecord::VERSION::STRING < '5.
35
35
  end
36
36
 
37
37
  RSpec.configure do |config|
38
- config.include FactoryGirl::Syntax::Methods
38
+ config.include FactoryBot::Syntax::Methods
39
39
  config.infer_spec_type_from_file_location!
40
40
  config.order = :random
41
41
  config.use_transactional_fixtures = true
@@ -54,4 +54,3 @@ RSpec.configure do |config|
54
54
  Capybara.use_default_driver # Revert Capybara.current_driver to Capybara.default_driver
55
55
  end
56
56
  end
57
-
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: authenticate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.7.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Tomich
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-04 00:00:00.000000000 Z
11
+ date: 2018-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bcrypt
@@ -47,7 +47,7 @@ dependencies:
47
47
  version: '4.0'
48
48
  - - "<"
49
49
  - !ruby/object:Gem::Version
50
- version: '5.2'
50
+ version: '5.3'
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
@@ -57,21 +57,21 @@ dependencies:
57
57
  version: '4.0'
58
58
  - - "<"
59
59
  - !ruby/object:Gem::Version
60
- version: '5.2'
60
+ version: '5.3'
61
61
  - !ruby/object:Gem::Dependency
62
- name: factory_girl
62
+ name: factory_bot
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '4.8'
67
+ version: 4.8.2
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '4.8'
74
+ version: 4.8.2
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: rspec-rails
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -227,6 +227,7 @@ files:
227
227
  - gemfiles/4.2.gemfile
228
228
  - gemfiles/5.0.gemfile
229
229
  - gemfiles/5.1.gemfile
230
+ - gemfiles/5.2.gemfile
230
231
  - lib/authenticate.rb
231
232
  - lib/authenticate/callbacks/authenticatable.rb
232
233
  - lib/authenticate/callbacks/brute_force.rb