graphql-auth 0.6.0 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +51 -0
- data/app/graphql/mutations/auth/forgot_password.rb +7 -1
- data/app/graphql/mutations/auth/reset_password.rb +7 -1
- data/app/graphql/mutations/auth/sign_in.rb +6 -1
- data/app/helpers/graphql/account_lock_helper.rb +7 -1
- data/lib/graphql-auth/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7321053f154f4a124cc2b732bdb80b97faabf404bc90b9af28fc37345728db43
|
4
|
+
data.tar.gz: 666586e19bce1a314cb55cbaadf49cdc84da267f562e6844321c7c5b0b90528c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5fb1f82cbb9ebc4d2141b322c297b5a30e8d8312016bb848312732fa44ab1a2d09e9f972e46b88335e0dc1d3bcc309f544b20e70983b27c66d9631fb7724ee4
|
7
|
+
data.tar.gz: 8c3818cb610f864f631f9d07a6805d9a3668001f9eb9e2b29cd23dcb14108aacd3d7ad209cc1ad1eec20413e9ee8fc91f41d18b12b75a4383fd3b6790f9e5cfd
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## 0.6.1
|
4
|
+
|
5
|
+
Multiple fixes to allow usage of the gem without the lockable Devise
|
6
|
+
feature
|
7
|
+
|
8
|
+
## 0.6.0
|
9
|
+
|
10
|
+
### Important
|
11
|
+
|
12
|
+
Upgrade to 0.6.1 if you plan on using this gem without Devise's lockable
|
13
|
+
feature
|
14
|
+
|
15
|
+
### New features
|
16
|
+
|
17
|
+
Added to possibility to use your own sign_up and update_account mutations
|
18
|
+
to allow custom fields for your user accounts
|
19
|
+
|
20
|
+
### Breaking changes
|
21
|
+
|
22
|
+
Configuration file was changed and some config names now have a different
|
23
|
+
use.
|
24
|
+
|
25
|
+
Please make sure to update your config file with the current version.
|
26
|
+
|
27
|
+
**Those settings were renamed for more clarity**
|
28
|
+
* sign_up_mutation => allow_sign_up
|
29
|
+
* lock_account_mutation => allow_lock_account
|
30
|
+
* unlock_account_mutation => allow_unlock_account
|
31
|
+
|
32
|
+
The updated config file should look like this:
|
33
|
+
```
|
34
|
+
GraphQL::Auth.configure do |config|
|
35
|
+
# config.token_lifespan = 4.hours
|
36
|
+
# config.jwt_secret_key = ENV['JWT_SECRET_KEY']
|
37
|
+
# config.app_url = ENV['APP_URL']
|
38
|
+
|
39
|
+
# config.user_type = '::Types::Auth::User'
|
40
|
+
|
41
|
+
# Devise allowed actions
|
42
|
+
# Don't forget to enable the lockable setting in your Devise user model if you plan on using the lock_account feature
|
43
|
+
# config.allow_sign_up = true
|
44
|
+
# config.allow_lock_account = false
|
45
|
+
# config.allow_unlock_account = false
|
46
|
+
|
47
|
+
# Allow custom mutations for signup and update account
|
48
|
+
# config.sign_up_mutation = '::Mutations::Auth::SignUp'
|
49
|
+
# config.update_account_mutation = '::Mutations::Auth::UpdateAccount'
|
50
|
+
end
|
51
|
+
```
|
@@ -1,6 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class Mutations::Auth::ForgotPassword < GraphQL::Schema::Mutation
|
4
|
+
include ::Graphql::AccountLockHelper
|
5
|
+
|
4
6
|
argument :email, String, required: true do
|
5
7
|
description 'The email with forgotten password'
|
6
8
|
end
|
@@ -10,7 +12,11 @@ class Mutations::Auth::ForgotPassword < GraphQL::Schema::Mutation
|
|
10
12
|
field :valid, Boolean, null: false
|
11
13
|
|
12
14
|
def resolve(email:)
|
13
|
-
|
15
|
+
if lockable?
|
16
|
+
user = User.where(locked_at: nil).find_by email: email
|
17
|
+
else
|
18
|
+
user = User.find_by email: email
|
19
|
+
end
|
14
20
|
|
15
21
|
user.send_reset_password_instructions if user.present?
|
16
22
|
|
@@ -1,6 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class Mutations::Auth::ResetPassword < GraphQL::Schema::Mutation
|
4
|
+
include ::Graphql::AccountLockHelper
|
5
|
+
|
4
6
|
argument :reset_password_token, String, required: true do
|
5
7
|
description "Reset password token"
|
6
8
|
end
|
@@ -17,7 +19,11 @@ class Mutations::Auth::ResetPassword < GraphQL::Schema::Mutation
|
|
17
19
|
field :success, Boolean, null: false
|
18
20
|
|
19
21
|
def resolve(args)
|
20
|
-
|
22
|
+
if lockable?
|
23
|
+
user = User.where(locked_at: nil).reset_password_by_token args
|
24
|
+
else
|
25
|
+
user = User.reset_password_by_token args
|
26
|
+
end
|
21
27
|
|
22
28
|
if user.errors.any?
|
23
29
|
{
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class Mutations::Auth::SignIn < GraphQL::Schema::Mutation
|
4
|
+
include ::Graphql::AccountLockHelper
|
4
5
|
include ::Graphql::TokenHelper
|
5
6
|
|
6
7
|
argument :email, String, required: true do
|
@@ -22,7 +23,11 @@ class Mutations::Auth::SignIn < GraphQL::Schema::Mutation
|
|
22
23
|
def resolve(email:, password:, remember_me:)
|
23
24
|
response = context[:response]
|
24
25
|
|
25
|
-
|
26
|
+
if lockable?
|
27
|
+
user = User.where(locked_at: nil).find_by email: email
|
28
|
+
else
|
29
|
+
user = User.find_by email: email
|
30
|
+
end
|
26
31
|
|
27
32
|
valid_sign_in = user.present? && user.valid_password?(password)
|
28
33
|
|
@@ -1,8 +1,14 @@
|
|
1
1
|
module Graphql
|
2
2
|
module AccountLockHelper
|
3
|
+
|
3
4
|
def account_locked?(user)
|
4
|
-
return false unless
|
5
|
+
return false unless lockable?
|
5
6
|
user.access_locked?
|
6
7
|
end
|
8
|
+
|
9
|
+
def lockable?
|
10
|
+
GraphQL::Auth.configuration.allow_lock_account
|
11
|
+
end
|
12
|
+
|
7
13
|
end
|
8
14
|
end
|
data/lib/graphql-auth/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphql-auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Guillaume Ferland
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2019-08-
|
13
|
+
date: 2019-08-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -100,14 +100,14 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 2.0
|
103
|
+
version: '2.0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 2.0
|
110
|
+
version: '2.0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: rake
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -157,6 +157,7 @@ executables: []
|
|
157
157
|
extensions: []
|
158
158
|
extra_rdoc_files: []
|
159
159
|
files:
|
160
|
+
- CHANGELOG.md
|
160
161
|
- README.md
|
161
162
|
- Rakefile
|
162
163
|
- app/graphql/mutations/auth/forgot_password.rb
|