authentication-zero 2.16.14 → 2.16.15

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
  SHA256:
3
- metadata.gz: e0f83db44ee39461a039edbf34e4ab4b1af7698fc537361607b120310e3d828e
4
- data.tar.gz: ecbf7f8578a9612f30bd7d19d9c482c7d9dbf62e2a28fa148f25c7cb5eb3bad6
3
+ metadata.gz: 85fbe83273139a893939d4f20c3a06de269e0cea2b5fe3a7994f8d66919c3532
4
+ data.tar.gz: 63396f6a2ceb39fc3a49be717a6ffc7097c29e6782b7a351ca0d6f3bb7f2cae6
5
5
  SHA512:
6
- metadata.gz: c8b1ed8282c418a5941295a522640ec2bcbc43fcd5dd8f6743333a860051c7c2858301d019f4f3400e217e2a385527809ab7bee61ef49306e4f6aba88bbdad38
7
- data.tar.gz: 48220896d353c7aa5c37584f84ec4bd75d189f2205440fe754256fd2cfb885d31a2e87859d8756ec54502ef1e5f6cad51eede0662b664a26dc9f2daa066ea8e6
6
+ metadata.gz: '0899627eceb12252ec843541a19ec9da8de2e0d4ab12e76e43f34e1117597be485f58a090a66f825f2a1fdb1affe5c83cb55502e2deb7a681e2d70e7578ede31'
7
+ data.tar.gz: 8ee00bb247a6989e0c930b33ffefc5c546f6e2c4161d77297344343ec5585b6c80f5b11dd18cd06937b6264d4abb1d89b9f47d1ab80494201bf5d523cb289f86
@@ -6,12 +6,11 @@
6
6
  # run tests and linters.
7
7
  name: "Generate sample app and run tests"
8
8
  on: [push]
9
+
9
10
  jobs:
10
11
  test_html:
11
12
  name: 🧪 Run HTML Tests
12
13
  runs-on: ubuntu-latest
13
- env:
14
- RAILS_ENV: test
15
14
  steps:
16
15
  - name: Checkout code
17
16
  uses: actions/checkout@v3
@@ -22,45 +21,39 @@ jobs:
22
21
  bundler-cache: true
23
22
 
24
23
  - name: Install the latest Rails gem
25
- run: gem install rails
24
+ run: gem install rails -v "~> 7.0.0"
25
+
26
+ - name: Install Rubocop
27
+ run: gem install rubocop rubocop-performance rubocop-minitest rubocop-packaging rubocop-minitest rubocop-rails
26
28
 
27
29
  - name: Create fresh Rails app and run generator
28
30
  run: |
29
31
  rails new test-app
32
+ cp .rubocop.yml test-app/.rubocop.yml
30
33
  cd test-app
31
- wget https://raw.githubusercontent.com/lazaronixon/authentication-zero/master/.rubocop.yml
32
- bundle add authentication-zero --github ${{ github.repository }} --branch ${{ github.ref_name }}
34
+ bundle add authentication-zero --path ..
33
35
  bin/rails generate authentication
34
36
  bundle install
35
37
  bin/rails db:migrate
36
38
 
37
-
38
- - name: Install Rubocop
39
- run: gem install rubocop rubocop-performance rubocop-minitest rubocop-packaging rubocop-minitest rubocop-rails
40
-
41
39
  - name: Rubocop
42
- run: |
43
- cd test-app
44
- rubocop
40
+ run: cd test-app && rubocop
45
41
 
46
- - name: Install brakeman
42
+ - name: Install Brakeman
47
43
  run: gem install brakeman
48
44
 
49
45
  - name: Brakeman
50
- run: |
51
- cd test-app
52
- brakeman
46
+ run: cd test-app && brakeman
53
47
 
54
48
  - name: Tests
55
49
  run: |
56
50
  cd test-app
57
51
  bin/rails test
58
52
  bin/rails test:system
53
+
59
54
  test_api:
60
55
  name: 🧪 Run API Tests
61
56
  runs-on: ubuntu-latest
62
- env:
63
- RAILS_ENV: test
64
57
  steps:
65
58
  - name: Checkout code
66
59
  uses: actions/checkout@v3
@@ -71,36 +64,30 @@ jobs:
71
64
  bundler-cache: true
72
65
 
73
66
  - name: Install the latest Rails gem
74
- run: gem install rails
67
+ run: gem install rails -v "~> 7.0.0"
68
+
69
+ - name: Install Rubocop
70
+ run: gem install rubocop rubocop-performance rubocop-minitest rubocop-packaging rubocop-minitest rubocop-rails
75
71
 
76
72
  - name: Create fresh Rails app and run generator
77
73
  run: |
78
74
  rails new test-app
75
+ cp .rubocop.yml test-app/.rubocop.yml
79
76
  cd test-app
80
- wget https://raw.githubusercontent.com/lazaronixon/authentication-zero/master/.rubocop.yml
81
- bundle add authentication-zero --github ${{ github.repository }} --branch ${{ github.ref_name }}
77
+ bundle add authentication-zero --path ..
82
78
  bin/rails generate authentication --api
83
79
  bundle install
84
80
  bin/rails db:migrate
85
81
 
86
- - name: Install Rubocop
87
- run: gem install rubocop rubocop-performance rubocop-minitest rubocop-packaging rubocop-minitest rubocop-rails
88
-
89
82
  - name: Rubocop
90
- run: |
91
- cd test-app
92
- rubocop
83
+ run: cd test-app && rubocop
93
84
 
94
- - name: Install brakeman
85
+ - name: Install Brakeman
95
86
  run: gem install brakeman
96
87
 
97
88
  - name: Brakeman
98
- run: |
99
- cd test-app
100
- brakeman
89
+ run: cd test-app && brakeman
101
90
 
102
91
  - name: Tests
103
- run: |
104
- cd test-app
105
- bin/rails test
92
+ run: cd test-app && bin/rails test
106
93
 
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.1.2
1
+ 3.2.2
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## Authentication Zero 2.16.15 ##
2
+
3
+ * Add sign-in as button functionallity (--masqueradable)
4
+
1
5
  ## Authentication Zero 2.16.14 ##
2
6
 
3
7
  * Remove password requirements
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- authentication-zero (2.16.14)
4
+ authentication-zero (2.16.15)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -31,6 +31,7 @@ Since Authentication Zero generates this code into your application instead of b
31
31
  - Two factor authentication (--two-factor)
32
32
  - Social Login with OmniAuth (--omniauthable)
33
33
  - Send invitations (--invitable)
34
+ - Sign-in as button functionallity (--masqueradable)
34
35
  - Verify email using a link with token
35
36
  - Verify email using a six random digits code for api (--code-verifiable)
36
37
  - Ask password before sensitive data changes, aka: sudo (--sudoable)
@@ -1,3 +1,3 @@
1
1
  module AuthenticationZero
2
- VERSION = "2.16.14"
2
+ VERSION = "2.16.15"
3
3
  end
@@ -14,6 +14,7 @@ class AuthenticationGenerator < Rails::Generators::Base
14
14
  class_option :trackable, type: :boolean, desc: "Add activity log support"
15
15
  class_option :two_factor, type: :boolean, desc: "Add two factor authentication"
16
16
  class_option :invitable, type: :boolean, desc: "Add sending invitations"
17
+ class_option :masqueradable, type: :boolean, desc: "Add sign-in as button functionallity"
17
18
 
18
19
  source_root File.expand_path("templates", __dir__)
19
20
 
@@ -86,6 +87,7 @@ class AuthenticationGenerator < Rails::Generators::Base
86
87
  template "controllers/#{format_folder}/sessions_controller.rb", "app/controllers/sessions_controller.rb"
87
88
  template "controllers/#{format_folder}/passwords_controller.rb", "app/controllers/passwords_controller.rb"
88
89
  template "controllers/#{format_folder}/invitations_controller.rb", "app/controllers/invitations_controller.rb" if invitable?
90
+ template "controllers/#{format_folder}/masquerades_controller.rb", "app/controllers/masquerades_controller.rb" if masqueradable?
89
91
  template "controllers/#{format_folder}/registrations_controller.rb", "app/controllers/registrations_controller.rb"
90
92
  template "controllers/#{format_folder}/home_controller.rb", "app/controllers/home_controller.rb" unless options.api?
91
93
  template "controllers/#{format_folder}/sessions/sudos_controller.rb", "app/controllers/sessions/sudos_controller.rb" if sudoable?
@@ -135,6 +137,10 @@ class AuthenticationGenerator < Rails::Generators::Base
135
137
  route "resource :passwordless, only: [:new, :edit, :create]", namespace: :sessions
136
138
  end
137
139
 
140
+ if masqueradable?
141
+ route 'post "users/:user_id/masquerade", to: "masquerades#create", as: :user_masquerade'
142
+ end
143
+
138
144
  if omniauthable?
139
145
  route 'post "/auth/:provider/callback", to: "sessions/omniauth#create"'
140
146
  route 'get "/auth/:provider/callback", to: "sessions/omniauth#create"'
@@ -199,6 +205,10 @@ class AuthenticationGenerator < Rails::Generators::Base
199
205
  options.invitable? && !options.api?
200
206
  end
201
207
 
208
+ def masqueradable?
209
+ options.masqueradable? && !options.api?
210
+ end
211
+
202
212
  def sudoable?
203
213
  options.sudoable? && !options.api?
204
214
  end
@@ -0,0 +1,20 @@
1
+ class MasqueradesController < ApplicationController
2
+ before_action :authorize
3
+ before_action :set_user
4
+
5
+ def create
6
+ session = @user.sessions.create!
7
+ cookies.signed.permanent[:session_token] = { value: session.id, httponly: true }
8
+
9
+ redirect_to root_path, notice: "Signed in successfully"
10
+ end
11
+
12
+ private
13
+ def set_user
14
+ @user = User.find(params[:user_id])
15
+ end
16
+
17
+ def authorize
18
+ redirect_to(root_path, alert: "You must be in development") unless Rails.env.development?
19
+ end
20
+ end
@@ -24,6 +24,11 @@
24
24
  <%%= link_to "Send invitation", new_invitation_path %>
25
25
  </div>
26
26
  <%- end -%>
27
+ <%- if masqueradable? %>
28
+ <div>
29
+ <%%= button_to "Signin as last user", user_masquerade_path(User.last) %>
30
+ </div>
31
+ <%- end -%>
27
32
  <%- if two_factor? %>
28
33
  <div>
29
34
  <%%= link_to "Two-Factor Authentication", new_two_factor_authentication_totp_path %>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: authentication-zero
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.16.14
4
+ version: 2.16.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nixon
@@ -52,6 +52,7 @@ files:
52
52
  - lib/generators/authentication/templates/controllers/html/identity/emails_controller.rb.tt
53
53
  - lib/generators/authentication/templates/controllers/html/identity/password_resets_controller.rb.tt
54
54
  - lib/generators/authentication/templates/controllers/html/invitations_controller.rb.tt
55
+ - lib/generators/authentication/templates/controllers/html/masquerades_controller.rb.tt
55
56
  - lib/generators/authentication/templates/controllers/html/passwords_controller.rb.tt
56
57
  - lib/generators/authentication/templates/controllers/html/registrations_controller.rb.tt
57
58
  - lib/generators/authentication/templates/controllers/html/sessions/omniauth_controller.rb.tt
@@ -135,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
136
  - !ruby/object:Gem::Version
136
137
  version: '0'
137
138
  requirements: []
138
- rubygems_version: 3.3.7
139
+ rubygems_version: 3.4.10
139
140
  signing_key:
140
141
  specification_version: 4
141
142
  summary: An authentication system generator for Rails applications