revise_auth 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +91 -6
  3. data/app/controllers/revise_auth/email_controller.rb +3 -3
  4. data/app/controllers/revise_auth/password_controller.rb +2 -2
  5. data/app/controllers/revise_auth/password_resets_controller.rb +5 -7
  6. data/app/controllers/revise_auth/registrations_controller.rb +4 -4
  7. data/app/controllers/revise_auth/sessions_controller.rb +1 -1
  8. data/app/views/revise_auth/mailer/confirm_email.html.erb +4 -4
  9. data/app/views/revise_auth/mailer/password_reset.html.erb +3 -4
  10. data/app/views/revise_auth/password_resets/edit.html.erb +3 -3
  11. data/app/views/revise_auth/password_resets/new.html.erb +2 -2
  12. data/app/views/revise_auth/registrations/edit.html.erb +13 -13
  13. data/app/views/revise_auth/registrations/new.html.erb +3 -3
  14. data/app/views/revise_auth/sessions/new.html.erb +3 -3
  15. data/config/i18n-tasks.yml +161 -0
  16. data/config/locales/cs.yml +64 -0
  17. data/config/locales/de.yml +62 -14
  18. data/config/locales/el.yml +62 -14
  19. data/config/locales/en.yml +62 -16
  20. data/config/locales/es.yml +64 -0
  21. data/config/locales/fr.yml +62 -14
  22. data/config/locales/nl.yml +63 -15
  23. data/config/locales/pt.yml +62 -14
  24. data/config/locales/tr.yml +62 -14
  25. data/config/locales/zh-TW.yml +62 -14
  26. data/lib/generators/revise_auth/model_generator.rb +12 -30
  27. data/lib/generators/revise_auth/templates/README +4 -1
  28. data/lib/generators/revise_auth/templates/initializer.rb +5 -0
  29. data/lib/revise_auth/model.rb +7 -2
  30. data/lib/revise_auth/route_constraint.rb +2 -0
  31. data/lib/revise_auth/routes.rb +7 -4
  32. data/lib/revise_auth/version.rb +1 -1
  33. data/lib/revise_auth.rb +5 -0
  34. metadata +7 -3
@@ -1,16 +1,64 @@
1
+ ---
1
2
  zh-TW:
3
+ activerecord:
4
+ attributes:
5
+ user:
6
+ email: Email
7
+ password: Password
8
+ password_challenge: Current password
9
+ password_confirmation: Password confirmation
2
10
  revise_auth:
3
- account_deleted: "您的帳號已經被刪除"
4
- account_updated: "帳號更新成功"
5
-
6
- invalid_email_or_password: "錯誤的信箱或是密碼"
7
- sign_up_or_login: "需要註冊或是登入才能進行"
8
-
9
- # Password changes
10
- password_changed: "您的密碼已經成功地更新"
11
- incorrect_password: "您現在輸入的密碼不正確, 請重新嘗試"
12
-
13
- # Email confirmations
14
- email_confirmed: "您的電子信箱已經成功地通過驗證"
15
- email_confirm_failed: "無法驗證您的電子信箱"
16
- confirmation_email_sent: "電子信箱驗證信已寄往 %{email}"
11
+ email:
12
+ show:
13
+ email_confirm_failed: 無法驗證您的電子信箱
14
+ email_confirmed: 您的電子信箱已經成功地通過驗證
15
+ update:
16
+ confirmation_email_sent: 電子信箱驗證信已寄往 %{email}
17
+ mailer:
18
+ confirm_email:
19
+ confirm: Confirm my account
20
+ confirm_below: 'You can confirm your account email through the link below:'
21
+ expiration_notice: This link will expire in 24 hours.
22
+ welcome: Welcome %{email}!
23
+ password_reset:
24
+ expiration_notice: This link will expire in 1 hour.
25
+ reset_password: Reset my password
26
+ reset_password_below: We've received a password reset request for your login. If this was you just visit the link below to finish up. If it wasn't you, you can simply ignore this email.
27
+ password:
28
+ update:
29
+ incorrect_password: 您現在輸入的密碼不正確, 請重新嘗試
30
+ password_changed: 您的密碼已經成功地更新
31
+ password_resets:
32
+ create:
33
+ password_reset_sent: An email with password reset instructions has been sent if that account exists.
34
+ edit:
35
+ invalid_password_link: The provided password reset link is invalid.
36
+ reset_password: Reset password
37
+ new:
38
+ send_password_reset_instructions: Send Password Reset Instructions
39
+ registrations:
40
+ destroy:
41
+ account_deleted: 您的帳號已經被刪除
42
+ edit:
43
+ change_email_address: Change Email Address
44
+ change_password: Change Password
45
+ confirm: Are you sure?
46
+ confirmation_instructions: To change your email, we will send a confirmation email to your new address to complete the change.
47
+ current_email_address: 'Your email address is: %{email}.'
48
+ delete_account: Delete my account
49
+ new_email: New Email
50
+ new_password: New password
51
+ profile: Profile
52
+ save: Save Changes
53
+ waiting_confirmation: Waiting for confirmation of %{email}.
54
+ new:
55
+ sign_up: Sign up
56
+ update:
57
+ account_updated: 帳號更新成功
58
+ sessions:
59
+ create:
60
+ invalid_email_or_password: 錯誤的信箱或是密碼
61
+ new:
62
+ log_in: Log in
63
+ reset_password: Reset your password
64
+ sign_up_or_login: 需要註冊或是登入才能進行
@@ -1,32 +1,27 @@
1
1
  module ReviseAuth
2
2
  module Generators
3
- class ModelGenerator < Rails::Generators::NamedBase
4
- include Rails::Generators::ResourceHelpers
5
-
6
- desc "Generates a model for authentication, default User"
3
+ class ModelGenerator < Rails::Generators::Base
4
+ desc "Generates the User model for authentication"
7
5
 
8
6
  source_root File.expand_path("templates", __dir__)
9
7
 
10
- argument :name, required: false, default: "User"
11
- argument :attributes, type: :array, default: [], banner: "field:type field:type"
12
-
13
- def initialize(args, *options)
14
- @original_attributes = args[1..] || []
15
- super
8
+ argument :attributes, type: :array, default: [], banner: "field[:type][:index] field[:type][:index]"
9
+ hook_for :orm, required: true, desc: "ORM to be invoked" do |instance, model|
10
+ instance.invoke model, ["User", "email:string:uniq", "password_digest:string", "confirmed_at:datetime", "unconfirmed_email:string", *instance.attributes]
16
11
  end
17
12
 
18
- def generate_model
19
- generate :model, name, *model_attributes
13
+ def change_attributes_null
14
+ return unless behavior == :invoke
15
+ gsub_file migration_path, /t\.string :email$/, "t.string :email, null: false"
16
+ gsub_file migration_path, /t\.string :password_digest$/, "t.string :password_digest, null: false"
20
17
  end
21
18
 
22
19
  def add_revise_auth_model
23
- inject_into_class model_path, class_name, " include ReviseAuth::Model\n"
20
+ inject_into_class "app/models/user.rb", "User", " include ReviseAuth::Model\n" if behavior == :invoke
24
21
  end
25
22
 
26
- def add_uniq_to_email_index
27
- insert_into_file migration_path, after: "#{name.downcase.pluralize}, :email", force: true do
28
- ", unique: true"
29
- end
23
+ def copy_initializer
24
+ template "initializer.rb", "config/initializers/revise_auth.rb"
30
25
  end
31
26
 
32
27
  def done
@@ -38,19 +33,6 @@ module ReviseAuth
38
33
  def migration_path
39
34
  @migration_path ||= Dir.glob(Rails.root.join("db/migrate/*")).max_by { |f| File.mtime(f) }
40
35
  end
41
-
42
- def model_path
43
- @model_path ||= File.join("app", "models", "#{file_path}.rb")
44
- end
45
-
46
- def model_attributes
47
- [
48
- "email:string:index",
49
- "password_digest:string",
50
- "confirmed_at:datetime",
51
- "unconfirmed_email:string"
52
- ] + @original_attributes
53
- end
54
36
  end
55
37
  end
56
38
  end
@@ -1,4 +1,7 @@
1
- 🚚 Your Revise auth database model has been generated!
1
+ 🚚 Your ReviseAuth User has been generated!
2
2
 
3
3
  Next step:
4
4
  Run "rails db:migrate"
5
+
6
+ To customize views:
7
+ Run "rails generate revise_auth:views"
@@ -0,0 +1,5 @@
1
+ ReviseAuth.configure do |config|
2
+ # Customize the params for registration and update profile.
3
+ # config.sign_up_params += [:time_zone]
4
+ # config.update_params += [:time_zone]
5
+ end
@@ -7,7 +7,6 @@ module ReviseAuth
7
7
  base.const_set :PASSWORD_RESET_TOKEN_VALIDITY, 1.hour
8
8
 
9
9
  has_secure_password
10
- has_secure_token :confirmation_token
11
10
 
12
11
  generates_token_for :password_reset, expires_in: base.const_get(:PASSWORD_RESET_TOKEN_VALIDITY) do
13
12
  BCrypt::Password.new(password_digest).salt[-10..]
@@ -31,8 +30,14 @@ module ReviseAuth
31
30
  ReviseAuth::Mailer.with(user: self, token: token).confirm_email.deliver_later
32
31
  end
33
32
 
33
+ # Generates a password reset token and send email to the user
34
+ def send_password_reset_instructions
35
+ token = generate_token_for(:password_reset)
36
+ ReviseAuth::Mailer.with(user: self, token: token).password_reset.deliver_later
37
+ end
38
+
34
39
  def confirm_email_change
35
- update(confirmed_at: Time.current, email: unconfirmed_email)
40
+ update(confirmed_at: Time.current, email: unconfirmed_email, unconfirmed_email: nil)
36
41
  end
37
42
  end
38
43
  end
@@ -8,6 +8,8 @@ module ReviseAuth
8
8
 
9
9
  include Authentication
10
10
 
11
+ delegate :session, to: :@request
12
+
11
13
  def initialize(request)
12
14
  @request = request
13
15
  end
@@ -1,5 +1,7 @@
1
1
  module ActionDispatch::Routing
2
2
  class Mapper
3
+ # Adds helpers for config/routes.rb to constraint routes with authentication
4
+
3
5
  def revise_auth
4
6
  scope module: :revise_auth do
5
7
  revise_registration
@@ -21,10 +23,11 @@ module ActionDispatch::Routing
21
23
  end
22
24
  end
23
25
 
24
- # Adds helpers for config/routes.rb to constraint routes with authentication
25
- #
26
- def authenticated
27
- constraints ->(request) { ReviseAuth::RouteConstraint.new(request).user_signed_in? } do
26
+ def authenticated(block = nil)
27
+ constraints ->(request) {
28
+ rc = ReviseAuth::RouteConstraint.new(request)
29
+ rc.user_signed_in? && (block.nil? || block.call(rc.current_user))
30
+ } do
28
31
  yield
29
32
  end
30
33
  end
@@ -1,3 +1,3 @@
1
1
  module ReviseAuth
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
data/lib/revise_auth.rb CHANGED
@@ -7,4 +7,9 @@ module ReviseAuth
7
7
  autoload :Current, "revise_auth/current"
8
8
  autoload :Model, "revise_auth/model"
9
9
  autoload :RouteConstraint, "revise_auth/route_constraint"
10
+
11
+ include ActiveSupport::Configurable
12
+
13
+ config_accessor :sign_up_params, default: [:name, :email, :password, :password_confirmation]
14
+ config_accessor :update_params, default: [:name]
10
15
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: revise_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Oliver
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-27 00:00:00.000000000 Z
11
+ date: 2024-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -62,9 +62,12 @@ files:
62
62
  - app/views/revise_auth/registrations/edit.html.erb
63
63
  - app/views/revise_auth/registrations/new.html.erb
64
64
  - app/views/revise_auth/sessions/new.html.erb
65
+ - config/i18n-tasks.yml
66
+ - config/locales/cs.yml
65
67
  - config/locales/de.yml
66
68
  - config/locales/el.yml
67
69
  - config/locales/en.yml
70
+ - config/locales/es.yml
68
71
  - config/locales/fr.yml
69
72
  - config/locales/nl.yml
70
73
  - config/locales/pt.yml
@@ -72,6 +75,7 @@ files:
72
75
  - config/locales/zh-TW.yml
73
76
  - lib/generators/revise_auth/model_generator.rb
74
77
  - lib/generators/revise_auth/templates/README
78
+ - lib/generators/revise_auth/templates/initializer.rb
75
79
  - lib/generators/revise_auth/views_generator.rb
76
80
  - lib/revise_auth.rb
77
81
  - lib/revise_auth/authentication.rb
@@ -104,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
108
  - !ruby/object:Gem::Version
105
109
  version: '0'
106
110
  requirements: []
107
- rubygems_version: 3.4.19
111
+ rubygems_version: 3.5.6
108
112
  signing_key:
109
113
  specification_version: 4
110
114
  summary: Simple authentication for Ruby on Rails apps