Module: Keycloak::Admin

Included in:
Internal
Defined in:
lib/keycloak.rb

Overview

Os recursos desse module (admin) serão utilizadas apenas por usuários que possuem as roles do client realm-management

Class Method Summary collapse

Class Method Details

.add_client_level_roles_to_user(id, client, role_representation, access_token = nil) ⇒ Object



388
389
390
# File 'lib/keycloak.rb', line 388

def self.add_client_level_roles_to_user(id, client, role_representation, access_token = nil)
  generic_post("users/#{id}/role-mappings/clients/#{client}", nil, role_representation, access_token)
end

.count_users(access_token = nil) ⇒ Object



342
343
344
# File 'lib/keycloak.rb', line 342

def self.count_users(access_token = nil)
  generic_get("users/count/", nil, access_token)
end

.create_user(user_representation, access_token = nil) ⇒ Object



338
339
340
# File 'lib/keycloak.rb', line 338

def self.create_user(user_representation, access_token = nil)
  generic_post("users/", nil, user_representation, access_token)
end

.delete_client_level_roles_from_user(id, client, role_representation, access_token = nil) ⇒ Object



392
393
394
# File 'lib/keycloak.rb', line 392

def self.delete_client_level_roles_from_user(id, client, role_representation, access_token = nil)
  generic_delete("users/#{id}/role-mappings/clients/#{client}", nil, role_representation, access_token)
end

.delete_user(id, access_token = nil) ⇒ Object



354
355
356
# File 'lib/keycloak.rb', line 354

def self.delete_user(id, access_token = nil)
  generic_delete("users/#{id}", nil, nil, access_token)
end

.generic_delete(service, query_parameters = nil, body_parameter = nil, access_token = nil) ⇒ Object



469
470
471
# File 'lib/keycloak.rb', line 469

def self.generic_delete(service, query_parameters = nil, body_parameter = nil, access_token = nil)
  Keycloak.generic_request(effective_access_token(access_token), full_url(service), query_parameters, body_parameter, 'DELETE')
end

.generic_get(service, query_parameters = nil, access_token = nil) ⇒ Object

Generics methods



457
458
459
# File 'lib/keycloak.rb', line 457

def self.generic_get(service, query_parameters = nil, access_token = nil)
  Keycloak.generic_request(effective_access_token(access_token), full_url(service), query_parameters, nil, 'GET')
end

.generic_post(service, query_parameters, body_parameter, access_token = nil) ⇒ Object



461
462
463
# File 'lib/keycloak.rb', line 461

def self.generic_post(service, query_parameters, body_parameter, access_token = nil)
  Keycloak.generic_request(effective_access_token(access_token), full_url(service), query_parameters, body_parameter, 'POST')
end

.generic_put(service, query_parameters, body_parameter, access_token = nil) ⇒ Object



465
466
467
# File 'lib/keycloak.rb', line 465

def self.generic_put(service, query_parameters, body_parameter, access_token = nil)
  Keycloak.generic_request(effective_access_token(access_token), full_url(service), query_parameters, body_parameter, 'PUT')
end

.get_all_roles_client(id, access_token = nil) ⇒ Object



380
381
382
# File 'lib/keycloak.rb', line 380

def self.get_all_roles_client(id, access_token = nil)
  generic_get("clients/#{id}/roles", nil, access_token)
end

.get_client_level_role_for_user_and_app(id, client, access_token = nil) ⇒ Object



396
397
398
# File 'lib/keycloak.rb', line 396

def self.get_client_level_role_for_user_and_app(id, client, access_token = nil)
  generic_get("users/#{id}/role-mappings/clients/#{client}", nil, access_token)
end

.get_clients(query_parameters = nil, access_token = nil) ⇒ Object



376
377
378
# File 'lib/keycloak.rb', line 376

def self.get_clients(query_parameters = nil, access_token = nil)
  generic_get("clients/", query_parameters, access_token)
end

.get_effective_client_level_role_composite_user(id, client, access_token = nil) ⇒ Object



451
452
453
# File 'lib/keycloak.rb', line 451

def self.get_effective_client_level_role_composite_user(id, client, access_token = nil)
  generic_get("users/#{id}/role-mappings/clients/#{client}/composite", nil, access_token)
end

.get_role_mappings(id, access_token = nil) ⇒ Object



372
373
374
# File 'lib/keycloak.rb', line 372

def self.get_role_mappings(id, access_token = nil)
  generic_get("users/#{id}/role-mappings", nil, access_token)
end

.get_roles_client_by_name(id, role_name, access_token = nil) ⇒ Object



384
385
386
# File 'lib/keycloak.rb', line 384

def self.get_roles_client_by_name(id, role_name, access_token = nil)
  generic_get("clients/#{id}/roles/#{role_name}", nil, access_token)
end

.get_user(id, access_token = nil) ⇒ Object



346
347
348
# File 'lib/keycloak.rb', line 346

def self.get_user(id, access_token = nil)
  generic_get("users/#{id}", nil, access_token)
end

.get_users(query_parameters = nil, access_token = nil) ⇒ Object



334
335
336
# File 'lib/keycloak.rb', line 334

def self.get_users(query_parameters = nil, access_token = nil)
  generic_get("users/", query_parameters, access_token)
end

.reset_password(id, credentialRepresentation, access_token = nil) ⇒ Object



447
448
449
# File 'lib/keycloak.rb', line 447

def self.reset_password(id, credentialRepresentation, access_token = nil)
  generic_put("users/#{id}/reset-password", nil, credentialRepresentation, access_token)
end


358
359
360
361
362
363
# File 'lib/keycloak.rb', line 358

def self.revoke_consent_user(id, client_id = nil, access_token = nil)
  if client_id.nil?
    client_id = Keycloak::Client.client_id
  end
  generic_delete("users/#{id}/consents/#{client_id}", nil, nil, access_token)
end

.update_account_email(id, actions, redirect_uri = '', client_id = nil, access_token = nil) ⇒ Object



365
366
367
368
369
370
# File 'lib/keycloak.rb', line 365

def self.(id, actions, redirect_uri = '', client_id = nil, access_token = nil)
  if client_id.nil?
    client_id = Keycloak::Client.client_id
  end
  generic_put("users/#{id}/execute-actions-email", {:redirect_uri => redirect_uri, :client_id => client_id}, actions, access_token)
end

.update_effective_user_roles(id, client_id, rolesNames, access_token = nil) ⇒ Object



400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
# File 'lib/keycloak.rb', line 400

def self.update_effective_user_roles(id, client_id, rolesNames, access_token = nil)
  client = JSON get_clients({ clientId: client_id })

  user_roles = JSON get_client_level_role_for_user_and_app(id, client[0]['id'], access_token)

  roles = Array.new
  # Include new role
  rolesNames.each do |r|
    if r && !r.empty?
      found = false
      user_roles.each do |ur|
        found = ur['name'] == r
        break if found
        found = false
      end
      if !found
        role = JSON get_roles_client_by_name(client[0]['id'], r, access_token)
        roles.push(role)
      end
    end
  end

  garbage_roles = Array.new
  # Exclude old role
  user_roles.each do |ur|
    found = false
    rolesNames.each do |r|
      if r && !r.empty?
        found = ur['name'] == r
        break if found
        found = false
      end
    end
    if !found
      garbage_roles.push(ur)
    end
  end

  if garbage_roles.count > 0
    delete_client_level_roles_from_user(id, client[0]['id'], garbage_roles, access_token)
  end

  if roles.count > 0
    add_client_level_roles_to_user(id, client[0]['id'], roles, access_token)
  end
end

.update_user(id, user_representation, access_token = nil) ⇒ Object



350
351
352
# File 'lib/keycloak.rb', line 350

def self.update_user(id, user_representation, access_token = nil)
  generic_put("users/#{id}", nil, user_representation, access_token)
end