From 0e92f505ce3d766e5547b228505dcf6be6cd89fb Mon Sep 17 00:00:00 2001 From: Michael Pisman Date: Fri, 7 Jul 2023 10:09:14 -0700 Subject: [PATCH 1/4] ci: Updated semantic_release config --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 3fd1918..dc4e6ec 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,11 +11,11 @@ build-backend = "setuptools.build_meta" [tool.semantic_release] -version_source = "tag" +version_source = "tag_only" branch = "main" major_on_zero = true upload_to_pypi = false -upload_to_repository = true +# upload_to_repository = true upload_to_release = true commit_version_number = true tag_commit = true From 2a20596b50bbb70226567d2b44333278be749f06 Mon Sep 17 00:00:00 2001 From: Michael Pisman Date: Fri, 7 Jul 2023 10:09:45 -0700 Subject: [PATCH 2/4] fix: Fixed error when removing members --- src/actions/workspace.py | 2 +- src/models/documents.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/actions/workspace.py b/src/actions/workspace.py index 14cf2f4..ad23c52 100644 --- a/src/actions/workspace.py +++ b/src/actions/workspace.py @@ -138,7 +138,7 @@ async def remove_workspace_member(workspace: Workspace, account_id: ResourceID): if not account: raise AccountExceptions.AccountNotFound(account_id) - if account.id not in [ResourceID(member.ref.id) for member in workspace.members]: + if account.id not in [ResourceID(member.id) for member in workspace.members]: raise WorkspaceExceptions.UserNotMember(workspace, account) return await workspace.remove_member(account) diff --git a/src/models/documents.py b/src/models/documents.py index a70e447..fff1a4d 100644 --- a/src/models/documents.py +++ b/src/models/documents.py @@ -70,13 +70,13 @@ async def remove_member(self, account, save: bool = True) -> bool: # Remove the account from the group # await self.fetch_link("members") for i, member in enumerate(self.members): - if account.id == member.ref.id: + if account.id == member.id: self.members.remove(member) - Debug.info(f"Removed member {member.ref.id} from {self.resource_type} {self.id}") # type: ignore + Debug.info(f"Removed member {member.id} from {self.resource_type} {self.id}") # type: ignore break # Remove the policy from the group - await self.fetch_link("policies") + # await self.fetch_link("policies") for policy in self.policies: # pc = await policy.policy_holder.fetch() # type: ignore pc = policy.policy_holder # type: ignore From e42a3e404caa9b88d6de653c7a04dfa587b08415 Mon Sep 17 00:00:00 2001 From: Michael Pisman Date: Fri, 7 Jul 2023 10:10:23 -0700 Subject: [PATCH 3/4] feat: Added enpoint to get list of all accounts --- src/routes/account.py | 10 ++++++++++ src/schemas/account.py | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/src/routes/account.py b/src/routes/account.py index 818f73b..9e631c9 100644 --- a/src/routes/account.py +++ b/src/routes/account.py @@ -11,6 +11,16 @@ router = APIRouter() +@router.get("", + response_model=AccountSchemas.AccountList) +async def get_all_accounts(): + try: + accounts = [AccountSchemas.AccountShort(**account.dict()) for account in await Account.find_all().to_list()] + return AccountSchemas.AccountList(accounts=accounts) + except APIException as e: + raise HTTPException(status_code=e.code, detail=str(e)) + + # Delete current user account @router.delete("/me", status_code=status.HTTP_204_NO_CONTENT) diff --git a/src/schemas/account.py b/src/schemas/account.py index 03210b4..a6519e0 100644 --- a/src/schemas/account.py +++ b/src/schemas/account.py @@ -35,6 +35,10 @@ class AccountShort(BaseModel): last_name: str +class AccountList(BaseModel): + accounts: list[AccountShort] + + class CreateAccount(schemas.BaseUserCreate): email: EmailStr = Field(...) first_name: str = Field( From 2436c4d2cf4e8d3da9a7ddcd1f0c2a7b071d598f Mon Sep 17 00:00:00 2001 From: Michael Pisman Date: Fri, 7 Jul 2023 10:11:21 -0700 Subject: [PATCH 4/4] refactor: Changed default permissions for new policies --- src/utils/permissions.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/utils/permissions.py b/src/utils/permissions.py index 9c2406b..151b141 100644 --- a/src/utils/permissions.py +++ b/src/utils/permissions.py @@ -31,7 +31,12 @@ def parse_action_file(resource_type: str) -> Permissions: WORKSPACE_ALL_PERMISSIONS = WorkspacePermissions(-1) # type: ignore -WORKSPACE_BASIC_PERMISSIONS = (WorkspacePermissions["get_workspace"]) # type: ignore +# WORKSPACE_BASIC_PERMISSIONS = (WorkspacePermissions["get_workspace"]) # type: ignore +WORKSPACE_BASIC_PERMISSIONS = (WorkspacePermissions["get_workspace"] + # type: ignore + WorkspacePermissions["get_workspace_members"] + # type: ignore + WorkspacePermissions["get_workspace_policy"] + # type: ignore + WorkspacePermissions["get_workspace_policies"] + # type: ignore + WorkspacePermissions["get_groups"]) # type: ignore # Example: (WorkspacePermissions["get_workspace"] + WorkspacePermissions["get_workspace_members"]) GROUP_ALL_PERMISSIONS = GroupPermissions(-1) # type: ignore