clearance 1.11.0 → 1.12.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of clearance might be problematic. Click here for more details.

Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -2
  3. data/.yardopts +3 -0
  4. data/Gemfile.lock +60 -60
  5. data/NEWS.md +17 -0
  6. data/config/locales/clearance.en.yml +1 -0
  7. data/lib/clearance/authentication.rb +49 -0
  8. data/lib/clearance/authorization.rb +44 -1
  9. data/lib/clearance/back_door.rb +1 -0
  10. data/lib/clearance/configuration.rb +2 -1
  11. data/lib/clearance/constraints.rb +12 -0
  12. data/lib/clearance/constraints/signed_in.rb +4 -0
  13. data/lib/clearance/constraints/signed_out.rb +2 -0
  14. data/lib/clearance/controller.rb +13 -0
  15. data/lib/clearance/default_sign_in_guard.rb +17 -0
  16. data/lib/clearance/engine.rb +16 -0
  17. data/lib/clearance/password_strategies/bcrypt.rb +3 -2
  18. data/lib/clearance/password_strategies/bcrypt_migration_from_sha1.rb +9 -0
  19. data/lib/clearance/password_strategies/blowfish.rb +8 -0
  20. data/lib/clearance/password_strategies/sha1.rb +8 -0
  21. data/lib/clearance/rack_session.rb +13 -0
  22. data/lib/clearance/session.rb +45 -0
  23. data/lib/clearance/session_status.rb +7 -0
  24. data/lib/clearance/sign_in_guard.rb +65 -0
  25. data/lib/clearance/testing/controller_helpers.rb +10 -1
  26. data/lib/clearance/testing/deny_access_matcher.rb +30 -0
  27. data/lib/clearance/testing/view_helpers.rb +1 -1
  28. data/lib/clearance/token.rb +7 -0
  29. data/lib/clearance/user.rb +159 -0
  30. data/lib/clearance/version.rb +1 -1
  31. data/lib/generators/clearance/install/install_generator.rb +1 -1
  32. data/lib/generators/clearance/routes/routes_generator.rb +15 -0
  33. data/lib/generators/clearance/routes/templates/routes.rb +10 -10
  34. data/lib/generators/clearance/specs/templates/features/clearance/visitor_resets_password_spec.rb.tt +1 -1
  35. data/spec/acceptance/clearance_installation_spec.rb +2 -1
  36. data/spec/controllers/permissions_controller_spec.rb +6 -0
  37. metadata +3 -3
@@ -1,3 +1,3 @@
1
1
  module Clearance
2
- VERSION = "1.11.0"
2
+ VERSION = "1.12.0"
3
3
  end
@@ -23,7 +23,7 @@ module Clearance
23
23
  if File.exist? "app/models/user.rb"
24
24
  inject_into_file(
25
25
  "app/models/user.rb",
26
- "include Clearance::User\n\n",
26
+ " include Clearance::User\n\n",
27
27
  after: "class User < ActiveRecord::Base\n"
28
28
  )
29
29
  else
@@ -26,6 +26,21 @@ module Clearance
26
26
  def routes_file_path
27
27
  File.expand_path(find_in_source_paths('routes.rb'))
28
28
  end
29
+
30
+ def route(routing_code)
31
+ log :route, "all clearance routes"
32
+ sentinel = /\.routes\.draw do\s*\n/m
33
+
34
+ in_root do
35
+ inject_into_file(
36
+ "config/routes.rb",
37
+ routing_code,
38
+ after: sentinel,
39
+ verbose: false,
40
+ force: true,
41
+ )
42
+ end
43
+ end
29
44
  end
30
45
  end
31
46
  end
@@ -1,12 +1,12 @@
1
- resources :passwords, controller: "clearance/passwords", only: [:create, :new]
2
- resource :session, controller: "clearance/sessions", only: [:create]
1
+ resources :passwords, controller: "clearance/passwords", only: [:create, :new]
2
+ resource :session, controller: "clearance/sessions", only: [:create]
3
3
 
4
- resources :users, controller: "clearance/users", only: [:create] do
5
- resource :password,
6
- controller: "clearance/passwords",
7
- only: [:create, :edit, :update]
8
- end
4
+ resources :users, controller: "clearance/users", only: [:create] do
5
+ resource :password,
6
+ controller: "clearance/passwords",
7
+ only: [:create, :edit, :update]
8
+ end
9
9
 
10
- get "/sign_in" => "clearance/sessions#new", as: "sign_in"
11
- delete "/sign_out" => "clearance/sessions#destroy", as: "sign_out"
12
- get "/sign_up" => "clearance/users#new", as: "sign_up"
10
+ get "/sign_in" => "clearance/sessions#new", as: "sign_in"
11
+ delete "/sign_out" => "clearance/sessions#destroy", as: "sign_out"
12
+ get "/sign_up" => "clearance/users#new", as: "sign_up"
@@ -47,7 +47,7 @@ feature "Visitor resets password" do
47
47
  message = ActionMailer::Base.deliveries.any? do |email|
48
48
  email.to == [recipient] &&
49
49
  email.subject =~ /#{subject}/i &&
50
- email.html_part.body =~ /#{body}/
50
+ email.html_part.body =~ /#{body}/ &&
51
51
  email.text_part.body =~ /#{body}/
52
52
  end
53
53
 
@@ -28,7 +28,8 @@ describe "Clearance Installation" do
28
28
  --skip-git \
29
29
  --skip-javascript \
30
30
  --skip-sprockets \
31
- --skip-keeps"
31
+ --skip-keeps \
32
+ --no-rc"
32
33
 
33
34
  FileUtils.rm_f("public/index.html")
34
35
  FileUtils.rm_f("app/views/layouts/application.html.erb")
@@ -54,6 +54,12 @@ describe PermissionsController do
54
54
 
55
55
  expect(subject).to deny_access(redirect: sign_in_url)
56
56
  end
57
+
58
+ it "denies access to show and display a flash message" do
59
+ get :show
60
+
61
+ expect(flash[:notice]).to match(/^Please sign in to continue/)
62
+ end
57
63
  end
58
64
 
59
65
  context 'when remember_token is blank' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clearance
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.0
4
+ version: 1.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Croak
@@ -25,7 +25,7 @@ authors:
25
25
  autorequire:
26
26
  bindir: bin
27
27
  cert_chain: []
28
- date: 2015-08-21 00:00:00.000000000 Z
28
+ date: 2015-11-18 00:00:00.000000000 Z
29
29
  dependencies:
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: bcrypt
@@ -242,7 +242,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
242
242
  version: '0'
243
243
  requirements: []
244
244
  rubyforge_project:
245
- rubygems_version: 2.4.5
245
+ rubygems_version: 2.4.8
246
246
  signing_key:
247
247
  specification_version: 4
248
248
  summary: Rails authentication & authorization with email & password.