token_authenticate_me 0.4.1 → 0.4.2

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: 229ecb84a5060e5d18c67bfe11ded27a73771e7a
4
- data.tar.gz: 75f47933a25a6b961f277b7856d956527e23fa9a
3
+ metadata.gz: 1b0b4986c15318e2b049d77c161bb49ddb54cd40
4
+ data.tar.gz: 753233dd4e2f98c51f5add6d3543a7c72e1744cb
5
5
  SHA512:
6
- metadata.gz: 020f1fbaa8a83ff17be432305293880ae0de0d4089d70434e04c07d9cc4c7a0c08dd623eb7a98239123b7e5ecfcec968c88f92da5edeab4f6428d546dea540dd
7
- data.tar.gz: b2e713b0a2817b615bbecefc9b291025bb41f9d46dc09918d7100ac43fae982be05d40b88164514a6a2e7d143ffbacfa97f257c472132fd78fd7cab692cf8416
6
+ metadata.gz: 13c59c0d210c88e9b4de37b69c0bcd899670421202233f608228f09ce10412620ab12239937a8793ea5b690df811a3fb17c428cb594d227a9c9fa31ec23a8674
7
+ data.tar.gz: 2f0ba37bfd6c7d8f2065543e0ecde7e8f46cddfa87fb1ed0b4e77ae141b8bd015d143dc62ca458c8373187bc9dd978a8ed1dfece7a2007d68542bdc197d184f1
data/CHANGELOG.md ADDED
@@ -0,0 +1,2 @@
1
+ ## 0.4.2 / 2015-09-08
2
+ * [BUGFIX] fixed bug #26.
data/README.md CHANGED
@@ -65,3 +65,6 @@ This model will have a set of [validators](https://github.com/inigo-llc/token_au
65
65
  - [ ] Make it so any resource name can be used for authentication (initial thought is either specify the default or pass resource name in token string?).
66
66
  - [ ] Allow users to specify the API namespace default.
67
67
  - [ ] Add a way to override/change/configure validations.
68
+
69
+ ## Code Of Conduct
70
+ Wildland Open Source [Code Of Conduct](https://github.com/wildland/code-of-conduct)
@@ -9,19 +9,12 @@ module TokenAuthenticateMe
9
9
  template 'sessions.rb', 'app/controllers/api/sessions_controller.rb'
10
10
 
11
11
  # Inject /api/sesssion route into routes file
12
- route <<-ROUTE
13
- namespace :api do
14
- resource :session, only: [:create, :show, :destroy]
15
- end
16
- ROUTE
12
+ insert_after_api(" resource :session, only: [:create, :show, :destroy]\n")
17
13
  end
18
14
 
19
15
  def create_password_reset_controller # rubocop:disable Metrics/MethodLength
20
16
  template 'password_reset.rb', 'app/controllers/api/password_resets_controller.rb'
21
-
22
- # Inject /api/password_resets route into routes file
23
- route <<-ROUTE
24
- namespace :api do
17
+ insert_after_api(<<-ROUTE
25
18
  resources(
26
19
  :password_resets,
27
20
  only: [:create, :update],
@@ -29,32 +22,60 @@ namespace :api do
29
22
  id: TokenAuthenticateMe::UUID_REGEX
30
23
  }
31
24
  )
32
- end
33
- ROUTE
25
+ ROUTE
26
+ )
34
27
  end
35
28
 
36
29
  def create_users_controller
37
30
  template 'users.rb', 'app/controllers/api/v1/users_controller.rb'
31
+ insert_after_version(" resources :users\n")
32
+ end
33
+
34
+ private
35
+
36
+ def insert_after_api(string)
37
+ maybe_create_api_v1_namespace
38
+
39
+ in_root do
40
+ insert_into_file(
41
+ 'config/routes.rb',
42
+ string,
43
+ after: "namespace :api do\n"
44
+ )
45
+ end
46
+ end
47
+
48
+ def insert_after_version(string)
49
+ maybe_create_api_v1_namespace
50
+
51
+ in_root do
52
+ insert_into_file(
53
+ 'config/routes.rb',
54
+ string,
55
+ after: "namespace :v1 do\n"
56
+ )
57
+ end
58
+ end
38
59
 
39
- # Inject /api/v1/users route into routes file
40
- route <<-ROUTE
60
+ def maybe_create_api_v1_namespace
61
+ in_root do
62
+ unless File.readlines('config/routes.rb').grep('namespace :api do')
63
+ route <<-ROUTE
41
64
  namespace :api do
42
65
  namespace :v1 do
43
- resources :users
44
66
  end
45
67
  end
46
- ROUTE
68
+ ROUTE
69
+ end
70
+ end
47
71
  end
48
72
 
49
- private
50
-
51
73
  def inject_before_actions_into_users_controllers
52
74
  inject_into_class(
53
75
  Rails.root.join('app', 'controllers', 'api', 'v1', 'users_controller.rb'),
54
- UsersController
55
- ) do
76
+ UsersController,
56
77
  " skip_before_action :authenticate, only: [:create]\n"
57
- end
78
+ )
58
79
  end
59
80
  end
60
81
  end
@@ -3,9 +3,9 @@ require 'token_authenticate_me/models/authenticatable'
3
3
  class User < ActiveRecord::Base
4
4
  include TokenAuthenticateMe::Models::Authenticatable
5
5
 
6
- has_many :#{session_model_plural_name}
6
+ has_many :<%= session_model_plural_name %>
7
7
 
8
8
  def as_json(options=nil)
9
- { #{authenticate_model_singular_name}: super(options) }
9
+ { <%= authenticate_model_singular_name %>: super(options) }
10
10
  end
11
11
  end
@@ -3,10 +3,10 @@ require 'token_authenticate_me/models/sessionable'
3
3
  class Session < ActiveRecord::Base
4
4
  include TokenAuthenticateMe::Models::Sessionable
5
5
 
6
- belongs_to :#{authenticate_model_singular_name}
6
+ belongs_to :<%= authenticate_model_singular_name %>
7
7
 
8
8
  def as_json(options={})
9
- { #{session_model_singular_name}: super({ include: :#{authenticate_model_singular_name} }.merge(options)) }
9
+ { <%= session_model_singular_name %>: super({ include: :<%= authenticate_model_singular_name %> }.merge(options)) }
10
10
  end
11
11
 
12
12
  end
@@ -73,7 +73,11 @@ module TokenAuthenticateMe
73
73
  end
74
74
 
75
75
  def current_password_required?
76
- !new_record? && (email_changed? || attempting_to_change_password?)
76
+ !new_record? && (email_changed? || attempting_to_change_password?) && !password_resetting?
77
+ end
78
+
79
+ def password_resetting?
80
+ reset_password_token_changed? && reset_password_token_exp_changed?
77
81
  end
78
82
 
79
83
  def password_required?
@@ -81,7 +85,7 @@ module TokenAuthenticateMe
81
85
  end
82
86
 
83
87
  def attempting_to_change_password?
84
- !password.blank? || !password_confirmation.blank?
88
+ (!password.blank? || !password_confirmation.blank?) && password_digest_changed?
85
89
  end
86
90
  end
87
91
  end
@@ -1,3 +1,3 @@
1
1
  module TokenAuthenticateMe
2
- VERSION = '0.4.1'
2
+ VERSION = '0.4.2'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: token_authenticate_me
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Clopton
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-02-09 00:00:00.000000000 Z
12
+ date: 2015-09-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -174,6 +174,7 @@ extra_rdoc_files: []
174
174
  files:
175
175
  - ".gitignore"
176
176
  - ".rubocop.yml"
177
+ - CHANGELOG.md
177
178
  - Gemfile
178
179
  - LICENSE
179
180
  - README.md
@@ -239,7 +240,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
239
240
  version: '0'
240
241
  requirements: []
241
242
  rubyforge_project:
242
- rubygems_version: 2.4.3
243
+ rubygems_version: 2.4.5
243
244
  signing_key:
244
245
  specification_version: 4
245
246
  summary: This gem adds simple token authentication to users.