authentication-zero 0.0.12 → 0.0.13

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: c9a25e8862ad568105b15810d98b4efb68b1d7a69199c35ff7a726b991aeb21d
4
- data.tar.gz: fd37bc06817fb23c8bd61c4cfe8635932be62ae94df89b5f5928f55b749e0a7d
3
+ metadata.gz: 9e853cd032072f4c6dc76b99cdff704b392eac57abea2893957b03f93c7069bd
4
+ data.tar.gz: 49428b1a84e2cd03beba0f9f5a39623f06c33ae20072a691130885391b09d615
5
5
  SHA512:
6
- metadata.gz: 7c89d91c1e3b5259b2924b6c25ee09c094db9f71deb75944cf9387b45c7f3202cba8bc394539d1fc5c79038aeb5dbbbe74eed5b0ac4fd44c7f76377278380f24
7
- data.tar.gz: 4f79e7af311270e7d995f8e07f3e2a73269c41b4fe17e31d7542e98547c96df4a6f55340d3575f05cd56e445582a9955443ca279ce8fe01f5fab4164d90c7d94
6
+ metadata.gz: aa5510a1671afde349053941f76876b888b481fbae4839dd7724b38163c3ca37c8a68ad73f2eb1de277f80bfbc3ad9d4e21f5d07613a24f09bc78d9e7b051bec
7
+ data.tar.gz: 1578a6bc1502f0d1f0f25b6b993f4f1be297f367532ce604f1da5926de5bd9fb38bbcc36705b98c2a8fd3cca933bd2649b81cdc9007fbf4dfcb63065758835a0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- authentication-zero (0.0.12)
4
+ authentication-zero (0.0.13)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -30,6 +30,10 @@ Add these lines to your `app/views/home/index.html.erb`:
30
30
 
31
31
  <p>Signed as <%= Current.user.email %></p>
32
32
 
33
+ <div>
34
+ <%= link_to "Change email", edit_emails_path %>
35
+ </div>
36
+
33
37
  <div>
34
38
  <%= link_to "Change password", edit_passwords_path %>
35
39
  </div>
@@ -1,3 +1,3 @@
1
1
  module AuthenticationZero
2
- VERSION = "0.0.12"
2
+ VERSION = "0.0.13"
3
3
  end
@@ -16,11 +16,13 @@ class AuthenticationGenerator < Rails::Generators::NamedBase
16
16
  end
17
17
 
18
18
  def create_mailers
19
+ template "mailers/email_mailer.rb", "app/mailers/email_mailer.rb"
19
20
  template "mailers/password_mailer.rb", "app/mailers/password_mailer.rb"
20
21
  end
21
22
 
22
23
  def create_views
23
24
  if options.api
25
+ directory "views/email_mailer", "app/views/email_mailer"
24
26
  directory "views/password_mailer", "app/views/password_mailer"
25
27
  else
26
28
  directory "views", "app/views"
@@ -39,7 +41,8 @@ class AuthenticationGenerator < Rails::Generators::NamedBase
39
41
  def add_routes
40
42
  route "resource :password_resets, only: [:new, :edit, :create, :update]"
41
43
  route "resource :cancellations, only: [:new, :create]"
42
- route "resource :passwords, only: [:update, :edit]"
44
+ route "resource :passwords, only: [:edit, :update]"
45
+ route "resource :emails, only: [:edit, :update]"
43
46
  route "delete 'sign_out', to: 'sessions#destroy'"
44
47
  route "post 'sign_up', to: 'registrations#create'"
45
48
  route "get 'sign_up', to: 'registrations#new'" unless options.api?
@@ -0,0 +1,25 @@
1
+ class EmailsController < ApplicationController
2
+ before_action :set_<%= singular_table_name %>
3
+
4
+ def update
5
+ if !@<%= singular_table_name %>.authenticate(params[:current_password])
6
+ render json: { error: "The current password you entered is incorrect" }, status: :bad_request
7
+ elsif @<%= singular_table_name %>.update(<%= "#{singular_table_name}_params" %>)
8
+ if @<%= singular_table_name %>.email_previously_changed?
9
+ EmailMailer.with(email_change: @<%= singular_table_name %>.email_previous_change).changed.deliver_later
10
+ end
11
+ render json: @<%= singular_table_name %>
12
+ else
13
+ render json: @<%= singular_table_name %>.errors, status: :unprocessable_entity
14
+ end
15
+ end
16
+
17
+ private
18
+ def set_<%= singular_table_name %>
19
+ @<%= singular_table_name %> = Current.<%= singular_table_name %>
20
+ end
21
+
22
+ def <%= "#{singular_table_name}_params" %>
23
+ params.permit(:email)
24
+ end
25
+ end
@@ -16,7 +16,7 @@ class PasswordResetsController < ApplicationController
16
16
  end
17
17
 
18
18
  def update
19
- if @<%= singular_table_name %>.update(password_params)
19
+ if @<%= singular_table_name %>.update(<%= "#{singular_table_name}_params" %>)
20
20
  render json: @<%= singular_table_name %>
21
21
  else
22
22
  render json: @<%= singular_table_name %>.errors, status: :unprocessable_entity
@@ -30,7 +30,7 @@ class PasswordResetsController < ApplicationController
30
30
  render json: { error: "Your token has expired, please request a new one" }, status: :bad_request
31
31
  end
32
32
 
33
- def password_params
33
+ def <%= "#{singular_table_name}_params" %>
34
34
  params.permit(:password, :password_confirmation)
35
35
  end
36
36
  end
@@ -4,7 +4,8 @@ class PasswordsController < ApplicationController
4
4
  def update
5
5
  if !@<%= singular_table_name %>.authenticate(params[:current_password])
6
6
  render json: { error: "The current password you entered is incorrect" }, status: :bad_request
7
- elsif @<%= singular_table_name %>.update(password_params)
7
+ elsif @<%= singular_table_name %>.update(<%= "#{singular_table_name}_params" %>)
8
+ PasswordMailer.with(user: @<%= singular_table_name %>).changed.deliver_later
8
9
  render json: @<%= singular_table_name %>
9
10
  else
10
11
  render json: @<%= singular_table_name %>.errors, status: :unprocessable_entity
@@ -16,7 +17,7 @@ class PasswordsController < ApplicationController
16
17
  @<%= singular_table_name %> = Current.<%= singular_table_name %>
17
18
  end
18
19
 
19
- def password_params
20
+ def <%= "#{singular_table_name}_params" %>
20
21
  params.permit(:password, :password_confirmation)
21
22
  end
22
23
  end
@@ -0,0 +1,28 @@
1
+ class EmailsController < ApplicationController
2
+ before_action :set_<%= singular_table_name %>
3
+
4
+ def edit
5
+ end
6
+
7
+ def update
8
+ if !@<%= singular_table_name %>.authenticate(params[:current_password])
9
+ redirect_to edit_emails_path, alert: "The current password you entered is incorrect"
10
+ elsif @<%= singular_table_name %>.update(<%= "#{singular_table_name}_params" %>)
11
+ if @<%= singular_table_name %>.email_previously_changed?
12
+ EmailMailer.with(email_change: @<%= singular_table_name %>.email_previous_change).changed.deliver_later
13
+ end
14
+ redirect_to root_path, notice: "Your email has been changed successfully"
15
+ else
16
+ render :edit, status: :unprocessable_entity
17
+ end
18
+ end
19
+
20
+ private
21
+ def set_<%= singular_table_name %>
22
+ @<%= singular_table_name %> = Current.<%= singular_table_name %>
23
+ end
24
+
25
+ def <%= "#{singular_table_name}_params" %>
26
+ params.require(:<%= singular_table_name %>).permit(:email)
27
+ end
28
+ end
@@ -19,7 +19,7 @@ class PasswordResetsController < ApplicationController
19
19
  end
20
20
 
21
21
  def update
22
- if @<%= singular_table_name %>.update(password_params)
22
+ if @<%= singular_table_name %>.update(<%= "#{singular_table_name}_params" %>)
23
23
  redirect_to sign_in_path, notice: "Your password was reset successfully. Please sign in"
24
24
  else
25
25
  render :edit, status: :unprocessable_entity
@@ -33,7 +33,7 @@ class PasswordResetsController < ApplicationController
33
33
  redirect_to new_password_resets_path, alert: "Your token has expired, please request a new one"
34
34
  end
35
35
 
36
- def password_params
36
+ def <%= "#{singular_table_name}_params" %>
37
37
  params.require(:<%= singular_table_name %>).permit(:password, :password_confirmation)
38
38
  end
39
39
  end
@@ -2,13 +2,13 @@ class PasswordsController < ApplicationController
2
2
  before_action :set_<%= singular_table_name %>
3
3
 
4
4
  def edit
5
- @<%= singular_table_name %> = Current.<%= singular_table_name %>
6
5
  end
7
6
 
8
7
  def update
9
8
  if !@<%= singular_table_name %>.authenticate(params[:current_password])
10
9
  redirect_to edit_passwords_path, alert: "The current password you entered is incorrect"
11
- elsif @<%= singular_table_name %>.update(password_params)
10
+ elsif @<%= singular_table_name %>.update(<%= "#{singular_table_name}_params" %>)
11
+ PasswordMailer.with(user: @<%= singular_table_name %>).changed.deliver_later
12
12
  redirect_to root_path, notice: "Your password has been changed successfully"
13
13
  else
14
14
  render :edit, status: :unprocessable_entity
@@ -20,7 +20,7 @@ class PasswordsController < ApplicationController
20
20
  @<%= singular_table_name %> = Current.<%= singular_table_name %>
21
21
  end
22
22
 
23
- def password_params
23
+ def <%= "#{singular_table_name}_params" %>
24
24
  params.require(:<%= singular_table_name %>).permit(:password, :password_confirmation)
25
25
  end
26
26
  end
@@ -0,0 +1,6 @@
1
+ class EmailMailer < ApplicationMailer
2
+ def changed
3
+ @previous_email, @current_email = params[:email_change]
4
+ mail to: @previous_email
5
+ end
6
+ end
@@ -1,4 +1,8 @@
1
1
  class PasswordMailer < ApplicationMailer
2
+ def changed
3
+ mail to: params[:<%= singular_table_name %>].email
4
+ end
5
+
2
6
  def reset
3
7
  @signed_id = params[:<%= singular_table_name %>].signed_id(purpose: "password_reset", expires_in: 20.minutes)
4
8
  mail to: params[:<%= singular_table_name %>].email
@@ -0,0 +1,11 @@
1
+ <p>Hey there,</p>
2
+
3
+ <p>We just wanted to confirm that your email address has been updated.</p>
4
+
5
+ <p><strong>Before, it was: <%%= @previous_email %></strong></p>
6
+
7
+ <p><strong>Now it is set to: <%%= @current_email %></strong></p>
8
+
9
+ <hr>
10
+
11
+ <p>If you didn't make this change, someone else may have access to your account. If you think that may be the case, please reply to this email and our support team will help you out.</p>
@@ -0,0 +1,9 @@
1
+ Hey there,
2
+
3
+ We just wanted to confirm that your email address has been updated.
4
+
5
+ Before, it was: <%%= @previous_email %>
6
+
7
+ Now it is set to: <%%= @current_email %>
8
+
9
+ If you didn't make this change, someone else may have access to your account. If you think that may be the case, please reply to this email and our support team will help you out.
@@ -0,0 +1,37 @@
1
+ <p style="color: red"><%%= alert %></p>
2
+
3
+ <h1>Change your email</h1>
4
+
5
+ <%%= form_with(model: @<%= model_resource_name %>, url: emails_path) do |form| %>
6
+ <%% if @<%= singular_table_name %>.errors.any? %>
7
+ <div style="color: red">
8
+ <h2><%%= pluralize(@<%= singular_table_name %>.errors.count, "error") %> prohibited this <%= singular_table_name %> from being saved:</h2>
9
+
10
+ <ul>
11
+ <%% @<%= singular_table_name %>.errors.each do |error| %>
12
+ <li><%%= error.full_message %></li>
13
+ <%% end %>
14
+ </ul>
15
+ </div>
16
+ <%% end %>
17
+
18
+ <div>
19
+ <%%= label_tag :current_password, nil, style: "display: block" %>
20
+ <%%= password_field_tag :current_password, nil, autofocus: true, autocomplete: "current-password" %>
21
+ </div>
22
+
23
+ <div>
24
+ <%%= form.label :email, "New email", style: "display: block" %>
25
+ <%%= form.email_field :email %>
26
+ </div>
27
+
28
+ <div>
29
+ <%%= form.submit "Save changes" %>
30
+ </div>
31
+ <%% end %>
32
+
33
+ <br>
34
+
35
+ <div>
36
+ <%%= link_to "Back", root_path %>
37
+ </div>
@@ -0,0 +1,7 @@
1
+ <p>Hey there,</p>
2
+
3
+ <p>We just wanted to confirm that your password has been updated.</p>
4
+
5
+ <hr>
6
+
7
+ <p>If you didn't make this change, someone else may have access to your account. If you think that may be the case, please reply to this email and our support team will help you out.</p>
@@ -0,0 +1,5 @@
1
+ Hey there,
2
+
3
+ We just wanted to confirm that your password has been updated.
4
+
5
+ If you didn't make this change, someone else may have access to your account. If you think that may be the case, please reply to this email and our support team will help you out.
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: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nixon
@@ -32,20 +32,28 @@ files:
32
32
  - lib/generators/authentication/USAGE
33
33
  - lib/generators/authentication/authentication_generator.rb
34
34
  - lib/generators/authentication/templates/controllers/api/cancellations_controller.rb.tt
35
+ - lib/generators/authentication/templates/controllers/api/emails_controller.rb.tt
35
36
  - lib/generators/authentication/templates/controllers/api/password_resets_controller.rb.tt
36
37
  - lib/generators/authentication/templates/controllers/api/passwords_controller.rb.tt
37
38
  - lib/generators/authentication/templates/controllers/api/registrations_controller.rb.tt
38
39
  - lib/generators/authentication/templates/controllers/api/sessions_controller.rb.tt
39
40
  - lib/generators/authentication/templates/controllers/html/cancellations_controller.rb.tt
41
+ - lib/generators/authentication/templates/controllers/html/emails_controller.rb.tt
40
42
  - lib/generators/authentication/templates/controllers/html/password_resets_controller.rb.tt
41
43
  - lib/generators/authentication/templates/controllers/html/passwords_controller.rb.tt
42
44
  - lib/generators/authentication/templates/controllers/html/registrations_controller.rb.tt
43
45
  - lib/generators/authentication/templates/controllers/html/sessions_controller.rb.tt
46
+ - lib/generators/authentication/templates/mailers/email_mailer.rb.tt
44
47
  - lib/generators/authentication/templates/mailers/password_mailer.rb.tt
45
48
  - lib/generators/authentication/templates/migration.rb.tt
46
49
  - lib/generators/authentication/templates/models/current.rb.tt
47
50
  - lib/generators/authentication/templates/models/resource.rb.tt
48
51
  - lib/generators/authentication/templates/views/cancellations/new.html.erb.tt
52
+ - lib/generators/authentication/templates/views/email_mailer/changed.html.erb.tt
53
+ - lib/generators/authentication/templates/views/email_mailer/changed.text.erb.tt
54
+ - lib/generators/authentication/templates/views/emails/edit.html.erb.tt
55
+ - lib/generators/authentication/templates/views/password_mailer/changed.html.erb.tt
56
+ - lib/generators/authentication/templates/views/password_mailer/changed.text.erb.tt
49
57
  - lib/generators/authentication/templates/views/password_mailer/reset.html.erb.tt
50
58
  - lib/generators/authentication/templates/views/password_mailer/reset.text.erb.tt
51
59
  - lib/generators/authentication/templates/views/password_resets/edit.html.erb.tt