grape_devise_auth 0.0.3 → 0.0.4

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: 1e4e1810801a7a67993cbcef50d0fb9dc37a576e
4
- data.tar.gz: 0bce89133725e2d990bda7c3a2494e389fc429a8
3
+ metadata.gz: 0b9b3d196787d6ee25e67f15ee0c23bdade1b43b
4
+ data.tar.gz: 2784c17dcc774bc5ecd8adaaef7ef9f36714ee4c
5
5
  SHA512:
6
- metadata.gz: 7fd6901908df25c04a9577ca93cc99af64981a47011aae0e0228cd91ff91c2532c7823d3feebcdb2ba9a713af5b698fe335dae52c13f5257209368659716f426
7
- data.tar.gz: 8eb4ed0faad41d749c964e7baff1b3468de9a03a4371435320a39c9f14a43d0e089ead9f4d173613b260c3cd0e09cdde79b3bf7ec62233f57717d9a96fa10e09
6
+ metadata.gz: ebac066932bfbadb5c22e39cd472e0263de23b600e15cb36f733cde4d18f00805f6906b0c01127b699ee0b25420bbff2b7581b9f5b57b0bef3ea33401e1fe6f4
7
+ data.tar.gz: 46b7f0c060874447f2d5425f30632ee0778065a3173df7ca9e256b64034af36e04d014023f664548e5663eb4e50605c0175efe0410fcdce4918d092ba65050d3
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
- ##Current - 0.0.3
1
+ ##Current - 0.0.4
2
2
 
3
+ #### Remove unnecessary code
4
+ #### Code refactor
5
+ #### Fix bug with multiple models names compatibility
6
+ #### Fix registration bug from version 0.0.3
7
+
8
+
9
+ ### 0.0.3
3
10
  #### Passing ActiveRecord error message to RegistrationFailed exception
4
11
 
5
12
 
@@ -17,9 +17,7 @@ module GrapeDeviseAuth
17
17
  :token_lifespan,
18
18
  :max_number_of_devices,
19
19
  :headers_names,
20
- :remove_tokens_after_password_reset,
21
- :authenticate_all,
22
- :skip_middleware_unauthorized_error_raising
20
+ :remove_tokens_after_password_reset
23
21
 
24
22
  def configuration
25
23
  @configuration ||= Configuration.new
@@ -42,4 +40,4 @@ module GrapeDeviseAuth
42
40
  )
43
41
  end
44
42
  end
45
- end
43
+ end
@@ -3,7 +3,7 @@ module GrapeDeviseAuth
3
3
  extend Forwardable
4
4
 
5
5
  def initialize(warden, mapping, request_start, data)
6
- @resource = warden.user(:user)
6
+ @resource = warden.user(mapping)
7
7
  @request_start = request_start
8
8
  @data = data
9
9
  end
@@ -7,17 +7,18 @@ module GrapeDeviseAuth
7
7
  end
8
8
 
9
9
  define_method("authenticate_#{mapping}") do
10
- load_auth_headers_data(mapping)
11
- authorizer_data = AuthorizerData.from_env(env)
12
- devise_interface = DeviseInterface.new(authorizer_data)
13
- token_authorizer = TokenAuthorizer.new(authorizer_data,
10
+ @authorizer_data = AuthorizerData.from_env(env)
11
+ devise_interface = DeviseInterface.new(@authorizer_data)
12
+ token_authorizer = TokenAuthorizer.new(@authorizer_data,
14
13
  devise_interface)
15
14
 
16
15
  resource = token_authorizer.authenticate_from_token(mapping)
17
16
  if resource
18
17
  devise_interface.set_user_in_warden(mapping, resource)
19
- update_expiry_for_client_token(authorizer_data.client_id)
20
- true
18
+ env[Configuration::CURRENT_AUTH_HEADERS] = AuthHeaders.new(warden,
19
+ mapping,
20
+ env[Configuration::REQUEST_START],
21
+ @authorizer_data).headers
21
22
  end
22
23
  end
23
24
 
@@ -33,7 +34,7 @@ module GrapeDeviseAuth
33
34
  resource = resource_class(mapping).find_by_uid(uid)
34
35
 
35
36
  if resource && valid_params?(field, uid) && resource.valid_password?(params[:password]) && (!resource.respond_to?(:active_for_authentication?) || resource.active_for_authentication?)
36
- update_env_with_auth_data(resource.create_new_auth_token)
37
+ env[Configuration::CURRENT_AUTH_HEADERS] = resource.create_new_auth_token
37
38
  warden.set_user(resource, scope: mapping, store: false)
38
39
  end
39
40
  end
@@ -74,16 +75,13 @@ module GrapeDeviseAuth
74
75
  resource.email = declared(params)['email'].try :downcase
75
76
  end
76
77
 
77
- if resource.save
78
- update_env_with_auth_data(resource.create_new_auth_token)
79
- else
80
- resource
81
- end
78
+ env[Configuration::CURRENT_AUTH_HEADERS] = resource.create_new_auth_token if resource.save
79
+ resource
82
80
  end
83
81
 
84
82
  define_method("register_#{mapping}!") do
85
83
  register = send("register_#{mapping}")
86
- raise RegistrationFailed.new(register.errors) if register.errors
84
+ raise RegistrationFailed.new(register.errors) if register.errors.any?
87
85
  register
88
86
  end
89
87
  end
@@ -121,23 +119,5 @@ module GrapeDeviseAuth
121
119
  def find_uid(field)
122
120
  request.headers[field.to_s.capitalize] || params[field] || request.headers['Uid'] || params['uid']
123
121
  end
124
-
125
- def load_auth_headers_data(mapping)
126
- env[Configuration::UID_KEY] = find_uid(authentication_field(mapping))
127
- env[Configuration::CLIENT_KEY] = request.headers['Client'] || params['client']
128
- env[Configuration::ACCESS_TOKEN_KEY] = request.headers['Access-Token'] || params['access-token']
129
- end
130
-
131
- def update_expiry_for_client_token(client_id)
132
- if @user
133
- @client_id = client_id
134
- @user.tokens[@client_id]['expiry'] = (Time.now + GrapeDeviseAuth.token_lifespan).to_i
135
- @user.save
136
- end
137
- end
138
-
139
- def update_env_with_auth_data(auth_data)
140
- env[Configuration::CURRENT_AUTH_HEADERS] = auth_data
141
- end
142
122
  end
143
123
  end
@@ -2,24 +2,22 @@ module GrapeDeviseAuth
2
2
  class Configuration
3
3
  attr_accessor :batch_request_buffer_throttle,
4
4
  :change_headers_on_each_request,
5
- :authenticate_all,
6
5
  :default_provider,
7
6
  :token_lifespan,
8
7
  :max_number_of_devices,
9
8
  :headers_names,
10
- :remove_tokens_after_password_reset,
11
- :skip_middleware_unauthorized_error_raising
9
+ :remove_tokens_after_password_reset
12
10
 
13
11
  ACCESS_TOKEN_KEY = 'HTTP_ACCESS_TOKEN'
14
12
  EXPIRY_KEY = 'HTTP_EXPIRY'
15
13
  UID_KEY = 'HTTP_UID'
16
14
  CLIENT_KEY = 'HTTP_CLIENT'
15
+ REQUEST_START = 'REQUEST_START'
17
16
  CURRENT_AUTH_HEADERS = 'CURRENT_AUTH_HEADERS'
18
17
 
19
18
  def initialize
20
19
  @batch_request_buffer_throttle = 2.weeks
21
20
  @change_headers_on_each_request = true
22
- @authenticate_all = false
23
21
  @default_provider = 'email'
24
22
  @token_lifespan = 2.weeks
25
23
  @max_number_of_devices = 10
@@ -29,11 +27,6 @@ module GrapeDeviseAuth
29
27
  :'uid' => 'uid',
30
28
  :'token-type' => 'token-type' }
31
29
  @remove_tokens_after_password_reset = false
32
- @skip_middleware_unauthorized_error_raising = true
33
- end
34
-
35
- def auth_all?
36
- @authenticate_all
37
30
  end
38
31
  end
39
32
  end
@@ -1,6 +1,5 @@
1
1
  module GrapeDeviseAuth
2
2
  class Middleware
3
- extend Forwardable
4
3
 
5
4
  def initialize(app, resource_name)
6
5
  @app = app
@@ -9,58 +8,17 @@ module GrapeDeviseAuth
9
8
 
10
9
  def call(env)
11
10
  setup(env)
12
- begin
13
- auth_all
14
- responses_with_auth_headers(*@app.call(env))
15
- rescue Unauthorized => _e
16
- return unauthorized unless GrapeDeviseAuth.skip_middleware_unauthorized_error_raising
17
- raise Unauthorized
18
- end
11
+ responses_with_headers(*@app.call(env))
19
12
  end
20
13
 
21
14
  private
22
15
 
23
- attr_reader :authorizer_data, :token_authorizer, :resource, :request_start
24
- def_delegators :@authorizer_data, :warden, :token, :client_id
25
-
26
- def auth_all
27
- return if skip_auth_all?
28
- user = token_authorizer.authenticate_from_token(@resource_name)
29
- fail Unauthorized unless user
30
- sign_in_user(user)
31
- end
32
-
33
- def skip_auth_all?
34
- !GrapeDeviseAuth.configuration.auth_all?
35
- end
36
-
37
16
  def setup(env)
38
- @request_start = Time.now
39
- @authorizer_data = AuthorizerData.from_env(env)
40
- @devise_interface = DeviseInterface.new(@authorizer_data)
41
- @token_authorizer = TokenAuthorizer.new(@authorizer_data,
42
- @devise_interface)
43
- end
44
-
45
- def sign_in_user(user)
46
- @devise_interface.set_user_in_warden(@resource_name, user)
47
- end
48
-
49
- def responses_with_auth_headers(status, headers, response)
50
- auth_headers = AuthHeaders.new(warden, @resource_name, request_start, authorizer_data)
51
- [
52
- status,
53
- headers.merge(auth_headers.headers),
54
- response
55
- ]
17
+ env[Configuration::REQUEST_START] = Time.now
56
18
  end
57
19
 
58
- def unauthorized
59
- [401,
60
- { 'Content-Type' => 'application/json'
61
- },
62
- []
63
- ]
20
+ def responses_with_headers(status, headers, response)
21
+ [ status, headers, response ]
64
22
  end
65
23
  end
66
24
  end
@@ -1,3 +1,3 @@
1
1
  module GrapeDeviseAuth
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape_devise_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Sokolskyi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-09 00:00:00.000000000 Z
11
+ date: 2016-11-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler