Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/content/en/latest/administration/user-groups/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
Original file line number Diff line number Diff line change
@@ -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=[])
"""
```
Original file line number Diff line number Diff line change
@@ -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)
```
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down
Original file line number Diff line number Diff line change
@@ -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 %}}
Original file line number Diff line number Diff line change
@@ -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 %}}
4 changes: 4 additions & 0 deletions docs/content/en/latest/administration/users/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
Original file line number Diff line number Diff line change
@@ -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=[])
"""
```
Original file line number Diff line number Diff line change
@@ -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)
```
56 changes: 56 additions & 0 deletions gooddata-sdk/gooddata_sdk/catalog/user/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -374,25 +374,81 @@ 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)
)

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]:
Expand Down
Loading