rails_jwt_auth 0.15.3 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7707d815623c98d52ffeba8ab839a280796a2484
4
- data.tar.gz: 11033a8dc15b0c67e4c085243225e10df54c0d7b
3
+ metadata.gz: 0db8f2a0ef2121ee0f1c4f5ff80b11b1c4bdb8cc
4
+ data.tar.gz: 6ffc4e0922ef4f7c228d2224e943030c06fa0e1d
5
5
  SHA512:
6
- metadata.gz: 9a66ea670862efd6164577d0f9d637f7d6f8872bde6245d2d9cdbb251095b1a3a4bc62dfb289b0d42c885bf5af0cd1f1d73a7b0d638cd407f8acbee091feb112
7
- data.tar.gz: 2be976c6ff68e9ef21a9e949ab3e692b409ec505be9f2b1c2bfb758171899f962561530a70e2536b51b210b491d9a679627a63e6a022a096338947b345520bc1
6
+ metadata.gz: 6533f3b2d2518403af392c6698c7193eb847bf3588c2d15387aed664362371fd0ef1410c3b7953bd358c5b77d3e641ad9bf62972e525546fec373284ff85d53c
7
+ data.tar.gz: efca9a928a49a399d463bf0c7fc9e9ce617ab035f75670ec1bccd7e6be8825af271e31f167c5deacd563f09aa4eaa03f1e556e9ff5477ce116bd3ecd8a34abf6
data/README.md CHANGED
@@ -45,6 +45,7 @@ You can edit configuration options into `config/initializers/auth_token_auth.rb`
45
45
  | confirmation_expiration_time | 1.day | Confirmation token expiration time |
46
46
  | reset_password_url | password_path | Url used to create email link with reset password token |
47
47
  | reset_password_expiration_time | 1.day | Confirmation token expiration time |
48
+ | set_password_url | password_path | Url used to create email link with set password token |
48
49
  | deliver_later | false | Uses `deliver_later` method to send emails |
49
50
 
50
51
  ## Authenticatable
@@ -414,7 +415,28 @@ class CurrentUserController < ApplicationController
414
415
  params.require(:user).permit(:email, :current_password, :password)
415
416
  end
416
417
  end
418
+ ```
419
+
420
+ ## Register users with random password
417
421
 
422
+ This is a controller example that allows admins to register users with random password and send email to reset it.
423
+ If registration is sucess it will send email to `set_password_url` with reset password token.
424
+
425
+ ```ruby
426
+ class UsersController < ApplicationController
427
+ before_action 'authenticate!'
428
+
429
+ def create
430
+ user = User.new(create_params)
431
+ user.set_and_send_password_instructions ? render_204 : render_422(user.errors)
432
+ end
433
+
434
+ private
435
+
436
+ def create_params
437
+ params.require(:user).permit(:email)
438
+ end
439
+ end
418
440
  ```
419
441
 
420
442
  ## Custom responses
@@ -35,5 +35,22 @@ if defined?(ActionMailer)
35
35
  subject = I18n.t('rails_jwt_auth.mailer.reset_password_instructions.subject')
36
36
  mail(to: @user.email, subject: subject)
37
37
  end
38
+
39
+ def set_password_instructions(user)
40
+ @user = user
41
+
42
+ if RailsJwtAuth.set_password_url
43
+ url, params = RailsJwtAuth.set_password_url.split('?')
44
+ params = params ? params.split('&') : []
45
+ params.push("reset_password_token=#{@user.reset_password_token}")
46
+
47
+ @reset_password_url = "#{url}?#{params.join('&')}"
48
+ else
49
+ @reset_password_url = password_url(reset_password_token: @user.reset_password_token)
50
+ end
51
+
52
+ subject = I18n.t('rails_jwt_auth.mailer.set_password_instructions.subject')
53
+ mail(to: @user.email, subject: subject)
54
+ end
38
55
  end
39
56
  end
@@ -14,6 +14,22 @@ module RailsJwtAuth
14
14
  RailsJwtAuth.deliver_later ? mailer.deliver_later : mailer.deliver
15
15
  end
16
16
 
17
+ def set_and_send_password_instructions
18
+ return if password.present?
19
+
20
+ self.password = SecureRandom.base58(48)
21
+ self.password_confirmation = self.password
22
+ self.skip_confirmation! if self.class.ancestors.include?(RailsJwtAuth::Confirmable)
23
+
24
+ self.reset_password_token = SecureRandom.base58(24)
25
+ self.reset_password_sent_at = Time.now
26
+ return false unless save
27
+
28
+ mailer = Mailer.set_password_instructions(self)
29
+ RailsJwtAuth.deliver_later ? mailer.deliver_later : mailer.deliver
30
+ true
31
+ end
32
+
17
33
  def self.included(base)
18
34
  if base.ancestors.include? Mongoid::Document
19
35
  # include GlobalID::Identification to use deliver_later method
@@ -0,0 +1,5 @@
1
+ <p>Hello <%= @user.email %>!</p>
2
+
3
+ <p>You need to define your password to complete registration. You can do this through the link below.</p>
4
+
5
+ <p><%= link_to 'Set my password', @reset_password_url.html_safe %></p>
@@ -3,8 +3,10 @@ en:
3
3
  mailer:
4
4
  confirmation_instructions:
5
5
  subject: "Confirmation instructions"
6
- reset_password_instructions.subject:
6
+ reset_password_instructions:
7
7
  subject: "Reset password instructions"
8
+ set_password_instructions:
9
+ subject: "Set password instructions"
8
10
  errors:
9
11
  unconfirmed: "unconfirmed email"
10
12
  already_confirmed: "was already confirmed, please try signing in"
@@ -14,7 +16,7 @@ en:
14
16
  blank: "blank"
15
17
  not_found: "not found"
16
18
  email:
17
- invlid: "is not an email"
19
+ invalid: "is not an email"
18
20
  current_password:
19
21
  blank: "blank"
20
22
  invalid: "invalid"
@@ -34,6 +34,9 @@ module RailsJwtAuth
34
34
  mattr_accessor :reset_password_url
35
35
  @@reset_password_url = nil
36
36
 
37
+ mattr_accessor :set_password_url
38
+ @@set_password_url = nil
39
+
37
40
  mattr_accessor :reset_password_expiration_time
38
41
  @@reset_password_expiration_time = 1.day
39
42
 
@@ -1,3 +1,3 @@
1
1
  module RailsJwtAuth
2
- VERSION = '0.15.3'
2
+ VERSION = '0.16.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_jwt_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.3
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - rjurado
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-03 00:00:00.000000000 Z
11
+ date: 2017-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -93,6 +93,7 @@ files:
93
93
  - app/validators/email_validator.rb
94
94
  - app/views/rails_jwt_auth/mailer/confirmation_instructions.html.erb
95
95
  - app/views/rails_jwt_auth/mailer/reset_password_instructions.html.erb
96
+ - app/views/rails_jwt_auth/mailer/set_password_instructions.html.erb
96
97
  - config/locales/en.yml
97
98
  - lib/generators/rails_jwt_auth/install_generator.rb
98
99
  - lib/generators/templates/initializer.rb
@@ -125,9 +126,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
126
  version: '0'
126
127
  requirements: []
127
128
  rubyforge_project:
128
- rubygems_version: 2.4.5.1
129
+ rubygems_version: 2.5.2
129
130
  signing_key:
130
131
  specification_version: 4
131
132
  summary: Rails jwt authentication.
132
133
  test_files: []
133
- has_rdoc: