diff --git a/README.md b/README.md
index 6a8c9cc..54b3ceb 100644
--- a/README.md
+++ b/README.md
@@ -47,7 +47,7 @@ The documentation for python-keycloak is available on [readthedocs](http://pytho
* [Shon T. Urbas](shon.urbas@gmail.com>)
* [Markus Spanier]()
* [Remco Kranenburg]()
-* [Remco Kranenburg]()
+* [Armin]()
## Usage
diff --git a/docs/source/index.rst b/docs/source/index.rst
index 87a72cc..a56dab9 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -68,6 +68,10 @@ Contributors
* `Agriness Team `_
* `Martin Devlin `_
* `Shon T. Urbas `_
+* `Shon T. Urbas `_
+* `Shon T. Urbas `_
+* `Shon T. Urbas `_
+* `Shon T. Urbas `_
Usage
=====
diff --git a/keycloak/keycloak_admin.py b/keycloak/keycloak_admin.py
index 97e35a8..9049df4 100644
--- a/keycloak/keycloak_admin.py
+++ b/keycloak/keycloak_admin.py
@@ -17,12 +17,13 @@
# Unless otherwise stated in the comments, "id", in e.g. user_id, refers to the
# internal Keycloak server ID, usually a uuid string
+
from keycloak.urls_patterns import URL_ADMIN_CLIENT_ROLE
from .urls_patterns import \
URL_ADMIN_USERS_COUNT, URL_ADMIN_USER, URL_ADMIN_USER_CONSENTS, \
URL_ADMIN_SEND_UPDATE_ACCOUNT, URL_ADMIN_RESET_PASSWORD, URL_ADMIN_SEND_VERIFY_EMAIL, URL_ADMIN_GET_SESSIONS, \
URL_ADMIN_SERVER_INFO, URL_ADMIN_CLIENTS, URL_ADMIN_CLIENT, URL_ADMIN_CLIENT_ROLES, URL_ADMIN_REALM_ROLES, \
- URL_ADMIN_GROUP, URL_ADMIN_GROUPS, URL_ADMIN_GROUP_CHILD, URL_ADMIN_USER_GROUP,\
+ URL_ADMIN_GROUP, URL_ADMIN_GROUPS, URL_ADMIN_GROUP_CHILD, URL_ADMIN_USER_GROUP, URL_ADMIN_GROUP_MEMBERS, \
URL_ADMIN_USER_GROUPS, URL_ADMIN_GROUP_PERMISSIONS, URL_ADMIN_USER_CLIENT_ROLES, URL_ADMIN_USER_STORAGE
from .keycloak_openid import KeycloakOpenID
@@ -385,6 +386,19 @@ class KeycloakAdmin:
return self.get_subgroups(subgroup, path)
return None
+ def get_group_members(self, group_id):
+ """
+ Get members by group id. Returns group members
+
+ GroupRepresentation
+ http://www.keycloak.org/docs-api/3.2/rest-api/#_userrepresentation
+
+ :return: Keycloak server response (UserRepresentation)
+ """
+ params_path = {"realm-name": self.realm_name, "id": group_id}
+ data_raw = self.connection.raw_get(URL_ADMIN_GROUP_MEMBERS.format(**params_path))
+ return raise_error_from_response(data_raw, KeycloakGetError)
+
def get_group_by_path(self, path, search_in_subgroups=False):
"""
Get group id based on name or path.
diff --git a/keycloak/urls_patterns.py b/keycloak/urls_patterns.py
index d65d26b..048f008 100644
--- a/keycloak/urls_patterns.py
+++ b/keycloak/urls_patterns.py
@@ -44,6 +44,7 @@ URL_ADMIN_GROUPS = "admin/realms/{realm-name}/groups"
URL_ADMIN_GROUP = "admin/realms/{realm-name}/groups/{id}"
URL_ADMIN_GROUP_CHILD = "admin/realms/{realm-name}/groups/{id}/children"
URL_ADMIN_GROUP_PERMISSIONS = "admin/realms/{realm-name}/groups/{id}/management/permissions"
+URL_ADMIN_GROUP_MEMBERS = "admin/realms/{realm-name}/groups/{id}/members"
URL_ADMIN_CLIENTS = "admin/realms/{realm-name}/clients"
URL_ADMIN_CLIENT = "admin/realms/{realm-name}/clients/{id}"