authenticate 0.7.2 → 0.7.3

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: 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