|
10 | 10 | from uuid import UUID |
11 | 11 |
|
12 | 12 | from ai.backend.common.api_handlers import SENTINEL |
| 13 | +from ai.backend.common.contexts.user import current_user |
13 | 14 | from ai.backend.common.data.filter_specs import StringMatchSpec |
14 | 15 | from ai.backend.common.data.permission.types import OperationType as InternalOperationType |
15 | 16 | from ai.backend.common.data.permission.types import RBACElementType |
|
51 | 52 | from ai.backend.common.dto.manager.v2.rbac.request import ( |
52 | 53 | AdminSearchEntitiesGQLInput, |
53 | 54 | AdminSearchPermissionsGQLInput, |
54 | | - AdminSearchRoleAssignmentsGQLInput, |
| 55 | + AdminSearchRoleAssignmentsInput, |
55 | 56 | SearchRolesInput, |
56 | 57 | ) |
57 | 58 | from ai.backend.common.dto.manager.v2.rbac.request import ( |
|
111 | 112 | from ai.backend.common.dto.manager.v2.rbac.types import ( |
112 | 113 | OrderDirection as OrderDirectionV2, |
113 | 114 | ) |
| 115 | +from ai.backend.common.exception import UnreachableError |
114 | 116 | from ai.backend.manager.actions.action import build_operation_description |
115 | 117 | from ai.backend.manager.api.adapters.pagination import PaginationSpec |
116 | 118 | from ai.backend.manager.data.common.types import SearchResult |
@@ -680,9 +682,22 @@ async def search_roles_in_scope( |
680 | 682 | has_previous_page=raw.has_previous_page, |
681 | 683 | ) |
682 | 684 |
|
683 | | - async def admin_search_role_assignments_gql( |
| 685 | + async def my_search_role_assignments( |
684 | 686 | self, |
685 | | - input: AdminSearchRoleAssignmentsGQLInput, |
| 687 | + input: AdminSearchRoleAssignmentsInput, |
| 688 | + ) -> SearchResult[RoleAssignmentNode]: |
| 689 | + """Search role assignments for the current authenticated user.""" |
| 690 | + me = current_user() |
| 691 | + if me is None: |
| 692 | + raise UnreachableError("User context is not available") |
| 693 | + return await self.admin_search_role_assignments( |
| 694 | + input, |
| 695 | + base_conditions=[AssignedUserConditions.by_user_id(me.user_id)], |
| 696 | + ) |
| 697 | + |
| 698 | + async def admin_search_role_assignments( |
| 699 | + self, |
| 700 | + input: AdminSearchRoleAssignmentsInput, |
686 | 701 | base_conditions: Sequence[QueryCondition] | None = None, |
687 | 702 | ) -> SearchResult[RoleAssignmentNode]: |
688 | 703 | """Search role assignments with cursor/offset pagination.""" |
|
0 commit comments