keycloak_ruby 0.1.0 → 0.1.1
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 +4 -4
- data/.rspec_status +66 -66
- data/lib/keycloak_ruby/user.rb +26 -0
- data/lib/keycloak_ruby/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69b02c30af6136bdddbf2bbd025fb4b9468eb4cbc483367ede0774bdc3c4ba71
|
4
|
+
data.tar.gz: 6f080dfe0802d3124ca38b09077b4fa9793c8032694919b2eb7bccf008fb745a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb4794636898be09829f9bf14395db896af56ddcb9ef92738225f95ad23be49135463c9deb0abaa7274d453574818647326cba80c89e306b1098ab5169805746
|
7
|
+
data.tar.gz: 3450f8d4fdd49e76b05fbd596078d03df83cb3b5d9869f93e8f9525ddac8a8dabaa7c089e55b141d375bfa32209e944615b799ee1a036dd5236c3bc82d20d86b
|
data/.rspec_status
CHANGED
@@ -1,68 +1,68 @@
|
|
1
1
|
example_id | status | run_time |
|
2
2
|
-------------------------------------------------------- | ------ | --------------- |
|
3
|
-
./spec/keycloak_ruby/client_spec.rb[1:1:1:1] | passed | 0.
|
4
|
-
./spec/keycloak_ruby/client_spec.rb[1:1:2:1] | passed | 0.
|
5
|
-
./spec/keycloak_ruby/client_spec.rb[1:2:1:1] | passed | 0.
|
6
|
-
./spec/keycloak_ruby/client_spec.rb[1:2:2:1] | passed | 0.
|
7
|
-
./spec/keycloak_ruby/client_spec.rb[1:3:1] | passed | 0.
|
8
|
-
./spec/keycloak_ruby/client_spec.rb[1:3:2] | passed | 0.
|
9
|
-
./spec/keycloak_ruby/client_spec.rb[1:4:1:1] | passed | 0.
|
10
|
-
./spec/keycloak_ruby/client_spec.rb[1:4:2:1] | passed | 0.
|
11
|
-
./spec/keycloak_ruby/client_spec.rb[1:5:1] | passed | 0.
|
12
|
-
./spec/keycloak_ruby/client_spec.rb[1:6:1:1] | passed | 0.
|
13
|
-
./spec/keycloak_ruby/client_spec.rb[1:6:2:1] | passed | 0.
|
14
|
-
./spec/keycloak_ruby/config_spec.rb[1:1:1:1] | passed | 0.
|
15
|
-
./spec/keycloak_ruby/config_spec.rb[1:1:1:2] | passed | 0.
|
16
|
-
./spec/keycloak_ruby/config_spec.rb[1:1:1:3] | passed | 0.
|
17
|
-
./spec/keycloak_ruby/config_spec.rb[1:1:1:4] | passed | 0.
|
18
|
-
./spec/keycloak_ruby/config_spec.rb[1:1:1:5] | passed | 0.
|
19
|
-
./spec/keycloak_ruby/config_spec.rb[1:1:2:1] | passed | 0.
|
20
|
-
./spec/keycloak_ruby/config_spec.rb[1:2:1] | passed | 0.
|
21
|
-
./spec/keycloak_ruby/config_spec.rb[1:2:2] | passed | 0.
|
22
|
-
./spec/keycloak_ruby/config_spec.rb[1:2:3] | passed | 0.
|
23
|
-
./spec/keycloak_ruby/config_spec.rb[1:2:4] | passed | 0.
|
24
|
-
./spec/keycloak_ruby/config_spec.rb[1:3:1] | passed | 0.
|
25
|
-
./spec/keycloak_ruby/config_spec.rb[1:3:2] | passed | 0.
|
26
|
-
./spec/keycloak_ruby/config_spec.rb[1:3:3] | passed | 0.
|
27
|
-
./spec/keycloak_ruby/config_spec.rb[1:3:4] | passed | 0.
|
28
|
-
./spec/keycloak_ruby/config_spec.rb[1:4:1:1] | passed | 0.
|
29
|
-
./spec/keycloak_ruby/config_spec.rb[1:4:2:1] | passed | 0.
|
30
|
-
./spec/keycloak_ruby/config_spec.rb[1:4:2:2] | passed | 0.
|
31
|
-
./spec/keycloak_ruby/request_performer_spec.rb[1:1:1:1] | passed | 0.
|
32
|
-
./spec/keycloak_ruby/request_performer_spec.rb[1:1:1:2] | passed | 0.
|
33
|
-
./spec/keycloak_ruby/request_performer_spec.rb[1:1:2:1] | passed | 0.
|
34
|
-
./spec/keycloak_ruby/request_performer_spec.rb[1:1:3:1] | passed | 0.
|
35
|
-
./spec/keycloak_ruby/request_performer_spec.rb[1:1:4:1] | passed | 0.
|
36
|
-
./spec/keycloak_ruby/response_validator_spec.rb[1:1:1:1] | passed | 0.
|
37
|
-
./spec/keycloak_ruby/response_validator_spec.rb[1:1:2:1] | passed | 0.
|
38
|
-
./spec/keycloak_ruby/response_validator_spec.rb[1:1:3:1] | passed | 0.
|
39
|
-
./spec/keycloak_ruby/response_validator_spec.rb[1:1:4:1] | passed | 0.
|
40
|
-
./spec/keycloak_ruby/response_validator_spec.rb[1:1:5:1] | passed | 0.
|
41
|
-
./spec/keycloak_ruby/response_validator_spec.rb[1:1:6:1] | passed | 0.
|
42
|
-
./spec/keycloak_ruby/response_validator_spec.rb[1:2:1:1] | passed | 0.
|
43
|
-
./spec/keycloak_ruby/response_validator_spec.rb[1:2:2:1] | passed | 0.
|
44
|
-
./spec/keycloak_ruby/response_validator_spec.rb[1:2:3:1] | passed | 0.
|
45
|
-
./spec/keycloak_ruby/response_validator_spec.rb[1:2:4:1] | passed | 0.
|
46
|
-
./spec/keycloak_ruby/response_validator_spec.rb[1:2:5:1] | passed | 0.
|
47
|
-
./spec/keycloak_ruby/response_validator_spec.rb[1:2:6:1] | passed | 0.
|
48
|
-
./spec/keycloak_ruby/response_validator_spec.rb[1:2:7:1] | passed | 0.
|
49
|
-
./spec/keycloak_ruby/token_refresher_spec.rb[1:1:1:1] | passed | 0.
|
50
|
-
./spec/keycloak_ruby/token_refresher_spec.rb[1:1:1:2] | passed | 0.
|
51
|
-
./spec/keycloak_ruby/token_refresher_spec.rb[1:1:2:1] | passed | 0.
|
52
|
-
./spec/keycloak_ruby/token_refresher_spec.rb[1:1:3:1] | passed | 0.
|
53
|
-
./spec/keycloak_ruby/token_refresher_spec.rb[1:1:4:1] | passed | 0.
|
54
|
-
./spec/keycloak_ruby/token_service_spec.rb[1:1:1:1] | passed | 0.
|
55
|
-
./spec/keycloak_ruby/token_service_spec.rb[1:1:2:1] | passed | 0.
|
56
|
-
./spec/keycloak_ruby/token_service_spec.rb[1:1:2:2] | passed | 0.
|
57
|
-
./spec/keycloak_ruby/token_service_spec.rb[1:2:1] | passed | 0.
|
58
|
-
./spec/keycloak_ruby/token_service_spec.rb[1:2:2] | passed | 0.
|
59
|
-
./spec/keycloak_ruby/token_service_spec.rb[1:2:3] | passed | 0.
|
60
|
-
./spec/keycloak_ruby/token_service_spec.rb[1:3:1] | passed | 0.
|
61
|
-
./spec/keycloak_ruby/token_service_spec.rb[1:3:2] | passed | 0.
|
62
|
-
./spec/keycloak_ruby/token_service_spec.rb[1:3:3] | passed | 0.
|
63
|
-
./spec/keycloak_ruby/token_service_spec.rb[1:4:1:1] | passed | 0.
|
64
|
-
./spec/keycloak_ruby/token_service_spec.rb[1:4:2:1] | passed | 0.
|
65
|
-
./spec/keycloak_ruby/token_service_spec.rb[1:4:3:1] | passed | 0.
|
66
|
-
./spec/keycloak_ruby/token_service_spec.rb[1:4:3:2] | passed | 0.
|
67
|
-
./spec/keycloak_ruby/token_service_spec.rb[1:5:1] | passed | 0.
|
68
|
-
./spec/keycloak_ruby_spec.rb[1:1] | passed | 0.
|
3
|
+
./spec/keycloak_ruby/client_spec.rb[1:1:1:1] | passed | 0.01112 seconds |
|
4
|
+
./spec/keycloak_ruby/client_spec.rb[1:1:2:1] | passed | 0.00164 seconds |
|
5
|
+
./spec/keycloak_ruby/client_spec.rb[1:2:1:1] | passed | 0.00447 seconds |
|
6
|
+
./spec/keycloak_ruby/client_spec.rb[1:2:2:1] | passed | 0.00116 seconds |
|
7
|
+
./spec/keycloak_ruby/client_spec.rb[1:3:1] | passed | 0.00283 seconds |
|
8
|
+
./spec/keycloak_ruby/client_spec.rb[1:3:2] | passed | 0.00209 seconds |
|
9
|
+
./spec/keycloak_ruby/client_spec.rb[1:4:1:1] | passed | 0.00114 seconds |
|
10
|
+
./spec/keycloak_ruby/client_spec.rb[1:4:2:1] | passed | 0.00102 seconds |
|
11
|
+
./spec/keycloak_ruby/client_spec.rb[1:5:1] | passed | 0.00116 seconds |
|
12
|
+
./spec/keycloak_ruby/client_spec.rb[1:6:1:1] | passed | 0.00173 seconds |
|
13
|
+
./spec/keycloak_ruby/client_spec.rb[1:6:2:1] | passed | 0.00092 seconds |
|
14
|
+
./spec/keycloak_ruby/config_spec.rb[1:1:1:1] | passed | 0.00052 seconds |
|
15
|
+
./spec/keycloak_ruby/config_spec.rb[1:1:1:2] | passed | 0.00045 seconds |
|
16
|
+
./spec/keycloak_ruby/config_spec.rb[1:1:1:3] | passed | 0.00048 seconds |
|
17
|
+
./spec/keycloak_ruby/config_spec.rb[1:1:1:4] | passed | 0.00038 seconds |
|
18
|
+
./spec/keycloak_ruby/config_spec.rb[1:1:1:5] | passed | 0.00039 seconds |
|
19
|
+
./spec/keycloak_ruby/config_spec.rb[1:1:2:1] | passed | 0.00006 seconds |
|
20
|
+
./spec/keycloak_ruby/config_spec.rb[1:2:1] | passed | 0.00044 seconds |
|
21
|
+
./spec/keycloak_ruby/config_spec.rb[1:2:2] | passed | 0.0004 seconds |
|
22
|
+
./spec/keycloak_ruby/config_spec.rb[1:2:3] | passed | 0.00026 seconds |
|
23
|
+
./spec/keycloak_ruby/config_spec.rb[1:2:4] | passed | 0.00025 seconds |
|
24
|
+
./spec/keycloak_ruby/config_spec.rb[1:3:1] | passed | 0.00024 seconds |
|
25
|
+
./spec/keycloak_ruby/config_spec.rb[1:3:2] | passed | 0.00024 seconds |
|
26
|
+
./spec/keycloak_ruby/config_spec.rb[1:3:3] | passed | 0.00027 seconds |
|
27
|
+
./spec/keycloak_ruby/config_spec.rb[1:3:4] | passed | 0.00024 seconds |
|
28
|
+
./spec/keycloak_ruby/config_spec.rb[1:4:1:1] | passed | 0.00379 seconds |
|
29
|
+
./spec/keycloak_ruby/config_spec.rb[1:4:2:1] | passed | 0.00042 seconds |
|
30
|
+
./spec/keycloak_ruby/config_spec.rb[1:4:2:2] | passed | 0.00029 seconds |
|
31
|
+
./spec/keycloak_ruby/request_performer_spec.rb[1:1:1:1] | passed | 0.00099 seconds |
|
32
|
+
./spec/keycloak_ruby/request_performer_spec.rb[1:1:1:2] | passed | 0.0008 seconds |
|
33
|
+
./spec/keycloak_ruby/request_performer_spec.rb[1:1:2:1] | passed | 0.00067 seconds |
|
34
|
+
./spec/keycloak_ruby/request_performer_spec.rb[1:1:3:1] | passed | 0.00058 seconds |
|
35
|
+
./spec/keycloak_ruby/request_performer_spec.rb[1:1:4:1] | passed | 0.0006 seconds |
|
36
|
+
./spec/keycloak_ruby/response_validator_spec.rb[1:1:1:1] | passed | 0.00065 seconds |
|
37
|
+
./spec/keycloak_ruby/response_validator_spec.rb[1:1:2:1] | passed | 0.00017 seconds |
|
38
|
+
./spec/keycloak_ruby/response_validator_spec.rb[1:1:3:1] | passed | 0.00021 seconds |
|
39
|
+
./spec/keycloak_ruby/response_validator_spec.rb[1:1:4:1] | passed | 0.00009 seconds |
|
40
|
+
./spec/keycloak_ruby/response_validator_spec.rb[1:1:5:1] | passed | 0.00008 seconds |
|
41
|
+
./spec/keycloak_ruby/response_validator_spec.rb[1:1:6:1] | passed | 0.00011 seconds |
|
42
|
+
./spec/keycloak_ruby/response_validator_spec.rb[1:2:1:1] | passed | 0.0001 seconds |
|
43
|
+
./spec/keycloak_ruby/response_validator_spec.rb[1:2:2:1] | passed | 0.00012 seconds |
|
44
|
+
./spec/keycloak_ruby/response_validator_spec.rb[1:2:3:1] | passed | 0.0001 seconds |
|
45
|
+
./spec/keycloak_ruby/response_validator_spec.rb[1:2:4:1] | passed | 0.00009 seconds |
|
46
|
+
./spec/keycloak_ruby/response_validator_spec.rb[1:2:5:1] | passed | 0.00011 seconds |
|
47
|
+
./spec/keycloak_ruby/response_validator_spec.rb[1:2:6:1] | passed | 0.00016 seconds |
|
48
|
+
./spec/keycloak_ruby/response_validator_spec.rb[1:2:7:1] | passed | 0.00011 seconds |
|
49
|
+
./spec/keycloak_ruby/token_refresher_spec.rb[1:1:1:1] | passed | 0.00085 seconds |
|
50
|
+
./spec/keycloak_ruby/token_refresher_spec.rb[1:1:1:2] | passed | 0.00077 seconds |
|
51
|
+
./spec/keycloak_ruby/token_refresher_spec.rb[1:1:2:1] | passed | 0.00093 seconds |
|
52
|
+
./spec/keycloak_ruby/token_refresher_spec.rb[1:1:3:1] | passed | 0.00056 seconds |
|
53
|
+
./spec/keycloak_ruby/token_refresher_spec.rb[1:1:4:1] | passed | 0.00072 seconds |
|
54
|
+
./spec/keycloak_ruby/token_service_spec.rb[1:1:1:1] | passed | 0.00696 seconds |
|
55
|
+
./spec/keycloak_ruby/token_service_spec.rb[1:1:2:1] | passed | 0.00129 seconds |
|
56
|
+
./spec/keycloak_ruby/token_service_spec.rb[1:1:2:2] | passed | 0.00826 seconds |
|
57
|
+
./spec/keycloak_ruby/token_service_spec.rb[1:2:1] | passed | 0.00072 seconds |
|
58
|
+
./spec/keycloak_ruby/token_service_spec.rb[1:2:2] | passed | 0.00044 seconds |
|
59
|
+
./spec/keycloak_ruby/token_service_spec.rb[1:2:3] | passed | 0.0004 seconds |
|
60
|
+
./spec/keycloak_ruby/token_service_spec.rb[1:3:1] | passed | 0.00056 seconds |
|
61
|
+
./spec/keycloak_ruby/token_service_spec.rb[1:3:2] | passed | 0.00083 seconds |
|
62
|
+
./spec/keycloak_ruby/token_service_spec.rb[1:3:3] | passed | 0.00038 seconds |
|
63
|
+
./spec/keycloak_ruby/token_service_spec.rb[1:4:1:1] | passed | 0.00057 seconds |
|
64
|
+
./spec/keycloak_ruby/token_service_spec.rb[1:4:2:1] | passed | 0.00072 seconds |
|
65
|
+
./spec/keycloak_ruby/token_service_spec.rb[1:4:3:1] | passed | 0.00056 seconds |
|
66
|
+
./spec/keycloak_ruby/token_service_spec.rb[1:4:3:2] | passed | 0.00055 seconds |
|
67
|
+
./spec/keycloak_ruby/token_service_spec.rb[1:5:1] | passed | 0.0007 seconds |
|
68
|
+
./spec/keycloak_ruby_spec.rb[1:1] | passed | 0.00005 seconds |
|
data/lib/keycloak_ruby/user.rb
CHANGED
@@ -42,6 +42,32 @@ module KeycloakRuby
|
|
42
42
|
client.find_users(search_string)
|
43
43
|
end
|
44
44
|
|
45
|
+
# Finds a Keycloak user by email.
|
46
|
+
# If no user is found, creates a new user in Keycloak with the given attributes.
|
47
|
+
#
|
48
|
+
# @param user_attrs [Hash] A hash of user attributes. Must include:
|
49
|
+
# :username [String] - the username for the user
|
50
|
+
# :email [String] - the user's email address
|
51
|
+
# :password [String] - the user's initial password
|
52
|
+
# :temporary [Boolean] (optional) - whether the password should be temporary (default: true)
|
53
|
+
#
|
54
|
+
# @return [Hash] Result hash containing:
|
55
|
+
# :user_data [Hash] - Keycloak user data (either found or newly created)
|
56
|
+
# :created [Boolean] - true if the user was created, false if already existed
|
57
|
+
#
|
58
|
+
# @raise [KeycloakRuby::Errors::Error] if any request to Keycloak fails
|
59
|
+
def find_or_create(user_attrs = {})
|
60
|
+
users = find(user_attrs[:email])
|
61
|
+
user = users.detect { |u| u["email"].casecmp?(user_attrs[:email]) }
|
62
|
+
|
63
|
+
if user
|
64
|
+
{ user_data: user, created: false }
|
65
|
+
else
|
66
|
+
created_user = create(user_attrs)
|
67
|
+
{ user_data: created_user, created: true }
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
45
71
|
private
|
46
72
|
|
47
73
|
# Provides a singleton instance of the KeycloakRuby::Client.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: keycloak_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergey Arkhipov
|
8
8
|
- Georgy Shcherbakov
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-04-
|
11
|
+
date: 2025-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|