keycloak-admin 1.0.17 → 1.0.19

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 20b76c1bb1420309572914deaecf3bc3d56f44ceaf3b0b02b38f5f464eb5e66c
4
- data.tar.gz: 94da4db63c8918619c813ee14ce9f6e2340a073124ad9746f86a817777b5e75a
3
+ metadata.gz: 67ccb78dc55dca61ad8dd44cb0f131dbe1b7a6b6c6449dd68c51fc981ef5439c
4
+ data.tar.gz: 7d3d483d4c1d26b430abc1accb326a7a371cc18c39fdde00845c2ed53dc79593
5
5
  SHA512:
6
- metadata.gz: c75e35d6003d82710f80f5e462718bb8aec7bc28e1c1a722453e8b7044f006e4b0b22070ee1b6fb90d33d2e029c2fd295fc13828d8bc84a53d841273be3451dd
7
- data.tar.gz: 140acb4be1a220f7decf254a9482d9b992400c70626833d8ba732e862adfd43e77c572daa204800c65a894ae7ba807905f656888e5faca6ce09acad46ab02143
6
+ metadata.gz: 5ef5313937cb5b1442aaf182f10d020a893c86b6d5ce88950f9caa9bde8c115345c48b47b1a2598b49d85e76dbad1d7eea967a8dbc3655d07cfbf152d83471a9
7
+ data.tar.gz: a0373bba411c1e642220b61b25dc790727aad1738a60ca8e0141539eb7f8468eaae73d963255d7fd845072c9feca9530336da658c2a12e041c07218a61d1cf3a
data/CHANGELOG.md CHANGED
@@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.0.19] - 2022-12-03
9
+
10
+ * Remove specific realm roles from user (thanks to @Kazhuu)
11
+ * Get role by name (thanks to @Kazhuu)
12
+
13
+ ## [1.0.18] - 2022-11-24
14
+
15
+ * List user realm-level role mappings (thanks to @Kazhuu)
16
+
8
17
  ## [1.0.17] - 2022-11-02
9
18
 
10
19
  * Delete `Client`
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- keycloak-admin (1.0.17)
4
+ keycloak-admin (1.0.19)
5
5
  http-cookie (~> 1.0, >= 1.0.3)
6
6
  rest-client (~> 2.1)
7
7
 
data/README.md CHANGED
@@ -12,7 +12,7 @@ This gem *does not* require Rails.
12
12
  For example, using `bundle`, add this line to your Gemfile.
13
13
 
14
14
  ```ruby
15
- gem "keycloak-admin", "1.0.17"
15
+ gem "keycloak-admin", "1.0.19"
16
16
  ```
17
17
 
18
18
  ## Login
@@ -12,6 +12,13 @@ module KeycloakAdmin
12
12
  end
13
13
  JSON.parse(response).map { |role_as_hash| RoleRepresentation.from_hash(role_as_hash) }
14
14
  end
15
+
16
+ def get(name)
17
+ response = execute_http do
18
+ RestClient::Resource.new(role_name_url(name), @configuration.rest_client_options).get(headers)
19
+ end
20
+ RoleRepresentation.from_hash JSON.parse(response)
21
+ end
15
22
 
16
23
  def save(role_representation)
17
24
  execute_http do
@@ -28,5 +35,10 @@ module KeycloakAdmin
28
35
  "#{@realm_client.realm_admin_url}/roles"
29
36
  end
30
37
  end
38
+
39
+ def role_name_url(name)
40
+ "#{@realm_client.realm_admin_url}/roles/#{name}"
41
+ end
42
+
31
43
  end
32
44
  end
@@ -5,6 +5,13 @@ module KeycloakAdmin
5
5
  @user_resource = user_resource
6
6
  end
7
7
 
8
+ def list
9
+ response = execute_http do
10
+ RestClient::Resource.new(realm_level_url, @configuration.rest_client_options).get(headers)
11
+ end
12
+ JSON.parse(response).map { |role_as_hash| RoleRepresentation.from_hash(role_as_hash) }
13
+ end
14
+
8
15
  def save_realm_level(role_representation_list)
9
16
  execute_http do
10
17
  RestClient::Resource.new(realm_level_url, @configuration.rest_client_options).post(
@@ -13,6 +20,17 @@ module KeycloakAdmin
13
20
  end
14
21
  end
15
22
 
23
+ def remove_realm_level(role_representation_list)
24
+ execute_http do
25
+ RestClient::Request.execute(
26
+ method: :delete,
27
+ url: realm_level_url,
28
+ payload: create_payload(role_representation_list),
29
+ headers: headers
30
+ )
31
+ end
32
+ end
33
+
16
34
  def remove_all_realm_roles
17
35
  execute_http do
18
36
  RestClient::Resource.new(realm_level_url, @configuration.rest_client_options).delete(headers)
@@ -1,3 +1,3 @@
1
1
  module KeycloakAdmin
2
- VERSION = "1.0.17"
2
+ VERSION = "1.0.19"
3
3
  end
@@ -12,6 +12,27 @@ RSpec.describe KeycloakAdmin::RoleMapperClient do
12
12
  end
13
13
  end
14
14
 
15
+ describe "#list" do
16
+ let(:realm_name) { "valid-realm" }
17
+ let(:user_id) { "test_user" }
18
+
19
+ before(:each) do
20
+ @role_mapper_client = KeycloakAdmin.realm(realm_name).user(user_id).role_mapper
21
+
22
+ stub_token_client
23
+ allow_any_instance_of(RestClient::Resource).to receive(:get)
24
+ .and_return '[{"id":"test_role_id","name":"test_role_name","composite": false}]'
25
+ end
26
+
27
+ it "list user realm-level role mappings" do
28
+ roles = @role_mapper_client.list
29
+ expect(roles.length).to eq 1
30
+ expect(roles[0].id).to eq "test_role_id"
31
+ expect(roles[0].name).to eq "test_role_name"
32
+ expect(roles[0].composite).to be false
33
+ end
34
+ end
35
+
15
36
  describe "#save_realm_level" do
16
37
  let(:realm_name) { "valid-realm" }
17
38
  let(:user_id) { "test_user" }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: keycloak-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.17
4
+ version: 1.0.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lorent Lempereur
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-02 00:00:00.000000000 Z
11
+ date: 2022-12-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http-cookie