revise_auth 0.7.0 → 0.8.0

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: 6a6403810d3c60e03cc0e09a4a756770fe53de27701578209642bbac3c080270
4
- data.tar.gz: a04b03a82250b048aa26a7922ce984da15dd7270b45d1e277112a22e870f3d06
3
+ metadata.gz: 71fda2f113599eedcf1149b7875e3ed902a34f25612b357090997f9dbef2755c
4
+ data.tar.gz: a0c7efefe1c554681d61dcecd319c0b13a8db42dc10e5e67ca7f252e39940413
5
5
  SHA512:
6
- metadata.gz: 78f5d30aa78e0ce1fc7c25b1a33cc502a780fa23d55f93f2e6a2f939cab5378659abdb68f8bf132486f4268f3b5217e886dd42cb32c77c28b7f5aa3a2aae4b31
7
- data.tar.gz: 2cc5056ce0b8007b4fec974a9a073c1bf68ef65334fe0161f70f6b1a371d82a12eec56fc41f0f11dad8d647da3244c6d6bc48cad1b2da78ac653a31585a501b8
6
+ metadata.gz: 50583c21daaa058fe253945ce034b04742126a665a31dfb1a56219c45ee7199b521f7af006fffe833e7ccb4b4f4c6b356aff3604479306c6dea121d9adddbdbd
7
+ data.tar.gz: e7debb89b6652c443c8c07f3c8ad9cb594faaa9748ffb6f8ebb5f04205a8494f9fbca9293b183941831473134969a604ad1a1bc909f73a26106183769cbe7be5
data/README.md CHANGED
@@ -63,6 +63,17 @@ revise_auth
63
63
 
64
64
  You will want to define a root path. After login (see below), the user will be redirected to the root path.
65
65
 
66
+ ### Views
67
+
68
+ ReviseAuth uses the flash to display notices and alerts, so make sure flash messages are rendered by your application:
69
+
70
+ ```erb
71
+ <%# views/layouts/application.html.erb %>
72
+
73
+ <%= tag.div notice if notice %>
74
+ <%= tag.div alert if alert %>
75
+ ```
76
+
66
77
  ### Filters and Helpers
67
78
 
68
79
  To protect your actions from unauthenticated users, you can use the `authenticate_user!` filter:
@@ -1,5 +1,6 @@
1
1
  class ReviseAuth::RegistrationsController < ReviseAuthController
2
2
  before_action :authenticate_user!, except: [:new, :create]
3
+ before_action :require_unauthenticated, only: [:new, :create]
3
4
 
4
5
  def new
5
6
  @user = User.new
@@ -41,8 +42,4 @@ class ReviseAuth::RegistrationsController < ReviseAuthController
41
42
  def profile_params
42
43
  params.require(:user).permit(ReviseAuth.update_params)
43
44
  end
44
-
45
- def resolve_after_register_path
46
- try(:after_register_path) || return_to_location || root_path
47
- end
48
45
  end
@@ -1,4 +1,8 @@
1
1
  class ReviseAuth::SessionsController < ReviseAuthController
2
+ before_action :require_unauthenticated, only: [:new, :create]
3
+
4
+ rate_limit(**ReviseAuth.login_rate_limit) if respond_to?(:rate_limit) && ReviseAuth.login_rate_limit.present?
5
+
2
6
  def new
3
7
  end
4
8
 
@@ -16,10 +20,4 @@ class ReviseAuth::SessionsController < ReviseAuthController
16
20
  logout
17
21
  redirect_to root_path
18
22
  end
19
-
20
- private
21
-
22
- def resolve_after_login_path
23
- try(:after_login_path) || return_to_location || root_path
24
- end
25
23
  end
@@ -1,7 +1,2 @@
1
1
  class ReviseAuthController < ::ApplicationController
2
- private
3
-
4
- def return_to_location
5
- session.delete(:user_return_to)
6
- end
7
2
  end
@@ -6,9 +6,8 @@
6
6
  <% form.object.errors.full_messages.each do |message| %>
7
7
  <li><%= message %></li>
8
8
  <% end %>
9
- <% end %>
10
-
11
9
  </ul>
10
+ <% end %>
12
11
  <div>
13
12
  <%= form.label :email %>
14
13
  <%= form.email_field :email, required: true, autofocus: true %>
@@ -53,8 +53,9 @@ data:
53
53
  # Find translate calls
54
54
  search:
55
55
  ## Paths or `Find.find` patterns to search in:
56
- # paths:
57
- # - app/
56
+ paths:
57
+ - app/
58
+ - lib/
58
59
 
59
60
  ## Root directories for relative keys resolution.
60
61
  # relative_roots:
@@ -61,6 +61,7 @@ cs:
61
61
  new:
62
62
  log_in: Log in
63
63
  shared:
64
+ already_authenticated: You are already signed in.
64
65
  links:
65
66
  log_in: Log in
66
67
  reset_password: Reset your password
@@ -61,6 +61,7 @@ de:
61
61
  new:
62
62
  log_in: Log in
63
63
  shared:
64
+ already_authenticated: You are already signed in.
64
65
  links:
65
66
  log_in: Log in
66
67
  reset_password: Reset your password
@@ -61,6 +61,7 @@ el:
61
61
  new:
62
62
  log_in: Log in
63
63
  shared:
64
+ already_authenticated: You are already signed in.
64
65
  links:
65
66
  log_in: Log in
66
67
  reset_password: Reset your password
@@ -61,6 +61,7 @@ en:
61
61
  new:
62
62
  log_in: Log in
63
63
  shared:
64
+ already_authenticated: You are already signed in.
64
65
  links:
65
66
  log_in: Log in
66
67
  reset_password: Reset your password
@@ -61,6 +61,7 @@ es:
61
61
  new:
62
62
  log_in: Iniciar sesión
63
63
  shared:
64
+ already_authenticated: You are already signed in.
64
65
  links:
65
66
  log_in: Iniciar sesión
66
67
  reset_password: Resetear contraseña
@@ -61,6 +61,7 @@ fr:
61
61
  new:
62
62
  log_in: Log in
63
63
  shared:
64
+ already_authenticated: You are already signed in.
64
65
  links:
65
66
  log_in: Log in
66
67
  reset_password: Reset your password
@@ -61,6 +61,7 @@ nl:
61
61
  new:
62
62
  log_in: Log in
63
63
  shared:
64
+ already_authenticated: You are already signed in.
64
65
  links:
65
66
  log_in: Log in
66
67
  reset_password: Reset your password
@@ -61,6 +61,7 @@ pt:
61
61
  new:
62
62
  log_in: Log in
63
63
  shared:
64
+ already_authenticated: You are already signed in.
64
65
  links:
65
66
  log_in: Log in
66
67
  reset_password: Reset your password
@@ -61,6 +61,7 @@ tr:
61
61
  new:
62
62
  log_in: Log in
63
63
  shared:
64
+ already_authenticated: You are already signed in.
64
65
  links:
65
66
  log_in: Log in
66
67
  reset_password: Reset your password
@@ -61,6 +61,7 @@ zh-TW:
61
61
  new:
62
62
  log_in: Log in
63
63
  shared:
64
+ already_authenticated: You are already signed in.
64
65
  links:
65
66
  log_in: Log in
66
67
  reset_password: Reset your password
@@ -9,6 +9,12 @@ module ReviseAuth
9
9
  helper_method :current_user
10
10
  end
11
11
 
12
+ class_methods do
13
+ def authenticate_user!(with: :login, return_to: true, **options)
14
+ before_action -> { authenticate_user!(with: with, return_to: return_to) }, **options
15
+ end
16
+ end
17
+
12
18
  # Returns a boolean whether the user is signed in or not
13
19
  def user_signed_in?
14
20
  !!current_user
@@ -21,8 +27,15 @@ module ReviseAuth
21
27
  end
22
28
 
23
29
  # Authenticates a user or redirects to the login page
24
- def authenticate_user!
25
- redirect_to_login_with_stashed_location unless user_signed_in?
30
+ def authenticate_user!(with: :login, return_to: true)
31
+ return if user_signed_in?
32
+ stash_return_to_location(request.fullpath) if return_to && request.get?
33
+ path = (with == :sign_up) ? sign_up_path : login_path
34
+ redirect_to path, alert: t("revise_auth.sign_up_or_login")
35
+ end
36
+
37
+ def require_unauthenticated
38
+ redirect_to resolve_after_login_path, alert: t("revise_auth.shared.already_authenticated") if user_signed_in?
26
39
  end
27
40
 
28
41
  # Authenticates the current user
@@ -61,9 +74,16 @@ module ReviseAuth
61
74
  session[:user_return_to] = path
62
75
  end
63
76
 
64
- def redirect_to_login_with_stashed_location
65
- stash_return_to_location(request.fullpath) if request.get?
66
- redirect_to login_path, alert: I18n.t("revise_auth.sign_up_or_login")
77
+ def return_to_location
78
+ session.delete(:user_return_to)
79
+ end
80
+
81
+ def resolve_after_register_path
82
+ try(:after_register_path) || return_to_location || root_path
83
+ end
84
+
85
+ def resolve_after_login_path
86
+ try(:after_login_path) || return_to_location || root_path
67
87
  end
68
88
 
69
89
  # Return true if it's a revise_auth_controller. false to all controllers unless
@@ -1,3 +1,3 @@
1
1
  module ReviseAuth
2
- VERSION = "0.7.0"
2
+ VERSION = "0.8.0"
3
3
  end
data/lib/revise_auth.rb CHANGED
@@ -17,4 +17,5 @@ module ReviseAuth
17
17
  config_accessor :sign_up_params, default: [:email, :password, :password_confirmation]
18
18
  config_accessor :update_params, default: []
19
19
  config_accessor :minimum_password_length, default: 12
20
+ config_accessor :login_rate_limit, default: {to: 10, within: 3.minutes, only: :create}
20
21
  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.7.0
4
+ version: 0.8.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: 2024-06-10 00:00:00.000000000 Z
11
+ date: 2024-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  requirements: []
112
- rubygems_version: 3.5.11
112
+ rubygems_version: 3.5.16
113
113
  signing_key:
114
114
  specification_version: 4
115
115
  summary: Simple authentication for Ruby on Rails apps