From b3ed23d53aaff66b45d3f948b83bc411ed087929 Mon Sep 17 00:00:00 2001 From: Jan Kadlec Date: Fri, 6 Jun 2025 15:45:27 +0200 Subject: [PATCH] docs: user management methods Add missing documentation to user management methods. JIRA: TRIVIAL risk: low --- .../administration/user-groups/_index.md | 4 ++ .../user-groups/get_user_group_permissions.md | 39 +++++++++++++ .../manage_user_group_permissions.md | 36 ++++++++++++ .../users-and-user-groups/_index.md | 4 ++ .../assign_permissions_bulk.md | 19 +++++++ .../revoke_permissions_bulk.md | 19 +++++++ .../en/latest/administration/users/_index.md | 4 ++ .../users/get_user_permissions.md | 39 +++++++++++++ .../users/manage_user_permissions.md | 36 ++++++++++++ .../gooddata_sdk/catalog/user/service.py | 56 +++++++++++++++++++ 10 files changed, 256 insertions(+) create mode 100644 docs/content/en/latest/administration/user-groups/get_user_group_permissions.md create mode 100644 docs/content/en/latest/administration/user-groups/manage_user_group_permissions.md create mode 100644 docs/content/en/latest/administration/users-and-user-groups/assign_permissions_bulk.md create mode 100644 docs/content/en/latest/administration/users-and-user-groups/revoke_permissions_bulk.md create mode 100644 docs/content/en/latest/administration/users/get_user_permissions.md create mode 100644 docs/content/en/latest/administration/users/manage_user_permissions.md diff --git a/docs/content/en/latest/administration/user-groups/_index.md b/docs/content/en/latest/administration/user-groups/_index.md index ea7da7c63..bff6140cf 100644 --- a/docs/content/en/latest/administration/user-groups/_index.md +++ b/docs/content/en/latest/administration/user-groups/_index.md @@ -25,6 +25,10 @@ See [Manage Permissions](https://www.gooddata.com/docs/cloud/manage-deployment/m * [load_declarative_user_groups](./load_declarative_user_groups/) * [load_and_put_declarative_user_groups](./load_and_put_declarative_user_groups/) +### Permission management +* [get_user_group_permissions](./get_user_group_permissions) +* [manage_user_group_permissions](./manage_user_group_permissions) + ## Example List, create and delete user groups: diff --git a/docs/content/en/latest/administration/user-groups/get_user_group_permissions.md b/docs/content/en/latest/administration/user-groups/get_user_group_permissions.md new file mode 100644 index 000000000..4c1d4bf6f --- /dev/null +++ b/docs/content/en/latest/administration/user-groups/get_user_group_permissions.md @@ -0,0 +1,39 @@ +--- +title: "get_user_group_permissions" +linkTitle: "get_user_group_permissions" +weight: 10 +no_list: true +superheading: "catalog_user." +--- + + + +``get_user_group_permissions(user_group_id: str) -> CatalogPermissionAssignments`` + +Get permission assignments for a user group. + +{{% parameters-block title="Parameters"%}} +{{< parameter p_name="user_group_id" p_type="string" >}} +User group identification string. e.g. "demo.users" +{{< /parameter >}} +{{% /parameters-block %}} + +{{% parameters-block title="Returns" %}} +{{< parameter p_type="CatalogPermissionAssignments" >}} +Object containing permission assignments for workspaces and data sources. +{{< /parameter >}} +{{% /parameters-block %}} + +## Example + +```python +sdk.catalog_user.get_user_group_permissions("demo.users") +""" +CatalogPermissionAssignments(workspaces=[CatalogWorkspacePermissionAssignment(id='demo_west', + permissions=['VIEW', 'CREATE_AUTOMATION', + 'EXPORT_PDF', + 'CREATE_FILTER_VIEW'], + hierarchy_permissions=[], + name='Demo West')], data_sources=[]) +""" +``` diff --git a/docs/content/en/latest/administration/user-groups/manage_user_group_permissions.md b/docs/content/en/latest/administration/user-groups/manage_user_group_permissions.md new file mode 100644 index 000000000..5191bf2db --- /dev/null +++ b/docs/content/en/latest/administration/user-groups/manage_user_group_permissions.md @@ -0,0 +1,36 @@ +--- +title: "manage_user_group_permissions" +linkTitle: "manage_user_group_permissions" +weight: 10 +no_list: true +superheading: "catalog_user." +--- + + + +``manage_user_group_permissions(user_group_id: str, api_token_id: str) -> None`` + +Set permission assignments for a user. + +{{% parameters-block title="Parameters"%}} +{{< parameter p_name="user_group_id" p_type="string" >}} +User group identification string. e.g. "demo.users" +{{< /parameter >}} +{{< parameter p_name="permission_assignments" p_type="CatalogPermissionAssignments" >}} +Object containing permission assignments for workspaces and data sources. +{{< /parameter >}} +{{% /parameters-block %}} + +## Example + +```python +permissions = CatalogPermissionAssignments(workspaces=[CatalogWorkspacePermissionAssignment(id='demo_west', + permissions=['VIEW', + 'CREATE_AUTOMATION', + 'EXPORT_PDF', + 'CREATE_FILTER_VIEW'], + hierarchy_permissions=[], + name='Demo West')], + data_sources=[]) +sdk.catalog_user.manage_user_group_permissions("demo.users", permissions) +``` diff --git a/docs/content/en/latest/administration/users-and-user-groups/_index.md b/docs/content/en/latest/administration/users-and-user-groups/_index.md index ed7118536..397b286bc 100644 --- a/docs/content/en/latest/administration/users-and-user-groups/_index.md +++ b/docs/content/en/latest/administration/users-and-user-groups/_index.md @@ -17,6 +17,10 @@ See [Manage Permissions](https://www.gooddata.com/docs/cloud/manage-deployment/m * [load_declarative_users_user_groups](./load_declarative_users_user_groups/) * [load_and_put_declarative_users_user_groups](./load_and_put_declarative_users_user_groups/) +### Permission management +* [assign_permissions_bulk](./assign_permissions_bulk) +* [revoke_permissions_bulk](./revoke_permissions_bulk) + ## Example List, create and delete users and user groups: diff --git a/docs/content/en/latest/administration/users-and-user-groups/assign_permissions_bulk.md b/docs/content/en/latest/administration/users-and-user-groups/assign_permissions_bulk.md new file mode 100644 index 000000000..ed318df07 --- /dev/null +++ b/docs/content/en/latest/administration/users-and-user-groups/assign_permissions_bulk.md @@ -0,0 +1,19 @@ +--- +title: "assign_permissions_bulk" +linkTitle: "assign_permissions_bulk" +weight: 10 +no_list: true +superheading: "catalog_user." +--- + + + +``assign_permissions_bulk(permissions_assignment: CatalogPermissionsAssignment) -> None`` + +Assign permissions in bulk to a users or user groups. + +{{% parameters-block title="Parameters"%}} +{{< parameter p_name="permissions_assignment" p_type="CatalogPermissionsAssignment" >}} +Object containing permission assignments for workspaces and data sources to be assigned. +{{< /parameter >}} +{{% /parameters-block %}} diff --git a/docs/content/en/latest/administration/users-and-user-groups/revoke_permissions_bulk.md b/docs/content/en/latest/administration/users-and-user-groups/revoke_permissions_bulk.md new file mode 100644 index 000000000..8cb407093 --- /dev/null +++ b/docs/content/en/latest/administration/users-and-user-groups/revoke_permissions_bulk.md @@ -0,0 +1,19 @@ +--- +title: "revoke_permissions_bulk" +linkTitle: "revoke_permissions_bulk" +weight: 10 +no_list: true +superheading: "catalog_user." +--- + + + +``revoke_permissions_bulk(permissions_assignment: CatalogPermissionsAssignment) -> None`` + +Revoke permissions in bulk to users or user groups. + +{{% parameters-block title="Parameters"%}} +{{< parameter p_name="permissions_assignment" p_type="CatalogPermissionsAssignment" >}} +Object containing permission assignments for workspaces and data sources to be assigned. +{{< /parameter >}} +{{% /parameters-block %}} diff --git a/docs/content/en/latest/administration/users/_index.md b/docs/content/en/latest/administration/users/_index.md index 3e0312816..399cc61f1 100644 --- a/docs/content/en/latest/administration/users/_index.md +++ b/docs/content/en/latest/administration/users/_index.md @@ -30,6 +30,10 @@ See [Manage Users and UserGroups](https://www.gooddata.com/docs/cloud/manage-dep * [load_declarative_users](./load_declarative_users/) * [load_and_put_declarative_users](./load_and_put_declarative_users/) +### Permission management +* [get_user_permissions](./get_user_permissions) +* [manage_user_permissions](./manage_user_permissions) + ## Example diff --git a/docs/content/en/latest/administration/users/get_user_permissions.md b/docs/content/en/latest/administration/users/get_user_permissions.md new file mode 100644 index 000000000..17a2bbd57 --- /dev/null +++ b/docs/content/en/latest/administration/users/get_user_permissions.md @@ -0,0 +1,39 @@ +--- +title: "get_user_permissions" +linkTitle: "get_user_permissions" +weight: 10 +no_list: true +superheading: "catalog_user." +--- + + + +``get_user_permissions(user_id: str) -> CatalogPermissionAssignments`` + +Get permission assignments for a user. + +{{% parameters-block title="Parameters"%}} +{{< parameter p_name="user_id" p_type="string" >}} +User identification string. e.g. "admin" +{{< /parameter >}} +{{% /parameters-block %}} + +{{% parameters-block title="Returns" %}} +{{< parameter p_type="CatalogPermissionAssignments" >}} +Object containing permission assignments for workspaces and data sources. +{{< /parameter >}} +{{% /parameters-block %}} + +## Example + +```python +sdk.catalog_user.get_user_permissions("demo.user") +""" +CatalogPermissionAssignments(workspaces=[CatalogWorkspacePermissionAssignment(id='demo_west', + permissions=['VIEW', 'CREATE_AUTOMATION', + 'EXPORT_PDF', + 'CREATE_FILTER_VIEW'], + hierarchy_permissions=[], + name='Demo West')], data_sources=[]) +""" +``` diff --git a/docs/content/en/latest/administration/users/manage_user_permissions.md b/docs/content/en/latest/administration/users/manage_user_permissions.md new file mode 100644 index 000000000..4cb2eb29f --- /dev/null +++ b/docs/content/en/latest/administration/users/manage_user_permissions.md @@ -0,0 +1,36 @@ +--- +title: "manage_user_permissions" +linkTitle: "manage_user_permissions" +weight: 10 +no_list: true +superheading: "catalog_user." +--- + + + +``manage_user_permissions(user_id: str, api_token_id: str) -> None`` + +Set permission assignments for a user. + +{{% parameters-block title="Parameters"%}} +{{< parameter p_name="user_id" p_type="string" >}} +User identification string. e.g. "admin" +{{< /parameter >}} +{{< parameter p_name="permission_assignments" p_type="CatalogPermissionAssignments" >}} +Object containing permission assignments for workspaces and data sources. +{{< /parameter >}} +{{% /parameters-block %}} + +## Example + +```python +permissions = CatalogPermissionAssignments(workspaces=[CatalogWorkspacePermissionAssignment(id='demo_west', + permissions=['VIEW', + 'CREATE_AUTOMATION', + 'EXPORT_PDF', + 'CREATE_FILTER_VIEW'], + hierarchy_permissions=[], + name='Demo West')], + data_sources=[]) +sdk.catalog_user.manage_user_permissions("demo.user", permissions) +``` diff --git a/gooddata-sdk/gooddata_sdk/catalog/user/service.py b/gooddata-sdk/gooddata_sdk/catalog/user/service.py index a6881cf52..23a71452e 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/user/service.py +++ b/gooddata-sdk/gooddata_sdk/catalog/user/service.py @@ -374,12 +374,41 @@ def load_and_put_declarative_users_user_groups(self, layout_root_path: Path = Pa # User management use case APIs def get_user_permissions(self, user_id: str) -> CatalogPermissionAssignments: + """Get permission assignments for a user. + + Args: + user_id (str): + User identification string. + E.g. "demo.user" + + Returns: + CatalogPermissionAssignments + """ return CatalogPermissionAssignments.from_api(self._user_management_api.list_permissions_for_user(user_id)) def manage_user_permissions(self, user_id: str, permission_assignments: CatalogPermissionAssignments) -> None: + """Set permission assignments for a user. + + Args: + user_id (str): + User identification string. + E.g. "demo.user" + permission_assignments (CatalogPermissionAssignments): + Object containing permission assignments for workspaces and data sources. + """ self._user_management_api.manage_permissions_for_user(user_id, permission_assignments.to_api()) def get_user_group_permissions(self, user_group_id: str) -> CatalogPermissionAssignments: + """Get permission assignments for a user group. + + Args: + user_group_id (str): + User group identification string. + E.g. "demo.users" + + Returns: + CatalogPermissionAssignments + """ return CatalogPermissionAssignments.from_api( self._user_management_api.list_permissions_for_user_group(user_group_id) ) @@ -387,12 +416,39 @@ def get_user_group_permissions(self, user_group_id: str) -> CatalogPermissionAss def manage_user_group_permissions( self, user_group_id: str, permission_assignments: CatalogPermissionAssignments ) -> None: + """Set permission assignments for a user group. + + Args: + user_group_id (str): + User group identification string. + E.g. "demo.users" + permission_assignments (CatalogPermissionAssignments): + Object containing permission assignments for workspaces and data sources. + """ self._user_management_api.manage_permissions_for_user_group(user_group_id, permission_assignments.to_api()) def assign_permissions_bulk(self, permissions_assignment: CatalogPermissionsAssignment) -> None: + """Assign permissions in bulk to a users or user groups. + + Args: + permissions_assignment (CatalogPermissionsAssignment): + Object containing permission assignments for workspaces and data sources to be assigned. + + Returns: + None + """ self._user_management_api.assign_permissions(permissions_assignment.to_api()) def revoke_permissions_bulk(self, permissions_assignment: CatalogPermissionsAssignment) -> None: + """Revoke permissions in bulk to a users or user groups. + + Args: + permissions_assignment (CatalogPermissionsAssignment): + Object containing permission assignments for workspaces and data sources to be revoked. + + Returns: + None + """ self._user_management_api.revoke_permissions(permissions_assignment.to_api()) def list_user_api_tokens(self, user_id: str) -> list[CatalogApiToken]: