You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.6 KiB

  1. from keycloak import KeycloakAdmin
  2. import json
  3. # Keycloak Configuration
  4. KEYCLOAK_URL = "https://auth.illysky.io"
  5. REALM_NAME = "cassandra"
  6. CLIENT_ID = "administration"
  7. CLIENT_SECRET = "JMFYMbWfPBYG3t6C4ZtQ5tfXjBE6n2PY"
  8. keycloak_admin = KeycloakAdmin(
  9. server_url=f"{KEYCLOAK_URL}/",
  10. realm_name=REALM_NAME,
  11. client_id=CLIENT_ID,
  12. client_secret_key=CLIENT_SECRET,
  13. verify=True
  14. )
  15. # 🟢 Test fetching all organizations
  16. print("\n🔹 Fetching all organizations...")
  17. organizations = keycloak_admin.get_organizations()
  18. print(json.dumps(organizations, indent=4))
  19. # 🟢 Test creating an organization
  20. print("\n🔹 Creating a new organization...")
  21. new_org = {"name": "St Leonards Academy", "alias": "st-leonards-academy", "description": "This is a test organization", "domains": ["test.com"]}
  22. keycloak_admin.create_organization(new_org)
  23. print("Created Organization")
  24. # 🟢 Test fetching all organizations
  25. print("\n🔹 Fetching all organizations...")
  26. organizations = keycloak_admin.get_organizations()
  27. print(json.dumps(organizations, indent=4))
  28. organization_id = next((org["id"] for org in organizations if org["name"] == new_org["name"]), None)
  29. # 🟢 Test fetching organization details
  30. print(f"\n🔹 Fetching organization details for {organization_id}...")
  31. org_details = keycloak_admin.get_organization(organization_id)
  32. print(org_details)
  33. # 🟢 Test updating organization
  34. print("\n🔹 Updating organization...")
  35. # 🟢 Test listing organization members
  36. print("\n🔹 Fetching members of the organization...")
  37. org_members = keycloak_admin.get_organization_members(organization_id)
  38. print(json.dumps(org_members, indent=4))
  39. # 🟢 Test adding a user to an organization
  40. user_id = "e9dc913d-9d55-4e01-b70b-4cf5d3b3393a" # Replace with a real user ID
  41. print(f"\n🔹 Adding user {user_id} to organization {organization_id}...")
  42. add_response = keycloak_admin.add_user_to_organization(organization_id, user_id)
  43. print("Added User")
  44. # 🟢 Test listing organization members
  45. print("\n🔹 Fetching members of the organization...")
  46. org_members = keycloak_admin.get_organization_members(organization_id)
  47. print(json.dumps(org_members, indent=4))
  48. # 🟢 Test removing a user from an organization
  49. print(f"\n🔹 Removing user {user_id} from organization {organization_id}...")
  50. remove_response = keycloak_admin.remove_user_from_organization(organization_id, user_id)
  51. print("Removed User Response:", remove_response)
  52. # 🟢 Test deleting an organization
  53. print("\n🔹 Deleting organization...")
  54. delete_response = keycloak_admin.delete_organization(organization_id)
  55. print("Deleted Organization Response:", delete_response)