1
0
Fork 0
forked from sr2/cloud-api

feat: iam dependencies

IAM endpoints now use dependencies to perform most initial database get requests.

Issue #6
This commit is contained in:
Chris Milne 2026-05-27 11:11:19 +01:00
parent d4f1b73deb
commit c6a2b301dc
4 changed files with 100 additions and 61 deletions

View file

@ -30,6 +30,12 @@ class GroupResponse(CustomBaseModel):
id: int
name: str
class GroupIDMixin(CustomBaseModel):
group_id: int
class PermIDMixin(CustomBaseModel):
permission_id: int
class IAMGetGroupPermissionsResponse(CustomBaseModel):
permissions: list[PermissionResponse]
@ -42,32 +48,28 @@ class IAMPostGroupRequest(CustomBaseModel):
class IAMPostGroupResponse(CustomBaseModel):
group: GroupResponse
class IAMPutGroupPermissionRequest(CustomBaseModel):
group_id: int
permission_id: int
class IAMPutGroupPermissionRequest(GroupIDMixin, PermIDMixin):
pass
class IAMPutGroupPermissionResponse(CustomBaseModel):
group: GroupResponse
permissions: list[PermissionResponse]
class IAMPutGroupUserRequest(CustomBaseModel):
group_id: int
class IAMPutGroupUserRequest(GroupIDMixin):
user_id: int
class IAMPutGroupUserResponse(CustomBaseModel):
group: GroupResponse
users: list[UserResponse]
class IAMDeleteGroupPermissionRequest(CustomBaseModel):
group_id: int
permission_id: int
class IAMDeleteGroupPermissionRequest(GroupIDMixin, PermIDMixin):
pass
class IAMDeleteGroupPermissionResponse(CustomBaseModel):
group: GroupResponse
permissions: list[PermissionResponse]
class IAMDeleteGroupUserRequest(CustomBaseModel):
group_id: int
class IAMDeleteGroupUserRequest(GroupIDMixin):
user_id: int
class IAMDeleteGroupUserResponse(CustomBaseModel):
@ -85,10 +87,8 @@ class IAMPostPermissionRequest(CustomBaseModel):
class IAMPostPermissionResponse(CustomBaseModel):
permission: PermissionResponse
class IAMDeletePermissionRequest(CustomBaseModel):
service_id: int
resource: str
action: str
class IAMDeletePermissionRequest(PermIDMixin):
pass
class IAMGetPermissionsSearchRequest(CustomBaseModel):
service_id: Optional[int] = None