cleanup, add test for workspace user permissions

This commit is contained in:
dandds 2018-10-29 10:39:19 -04:00
parent ead84834d0
commit 4c03a403f7
2 changed files with 24 additions and 8 deletions

View File

@ -9,13 +9,6 @@ class WorkspaceUser(object):
self.user = user self.user = user
self.workspace_role = workspace_role self.workspace_role = workspace_role
def permissions(self):
atat_permissions = set(self.user.atat_role.permissions)
workspace_permissions = (
[] if self.workspace_role is None else self.workspace_role.role.permissions
)
return set(workspace_permissions).union(atat_permissions)
@property @property
def workspace(self): def workspace(self):
return self.workspace_role.workspace return self.workspace_role.workspace

View File

@ -1,6 +1,8 @@
from atst.domain.workspace_users import WorkspaceUsers from atst.domain.workspace_users import WorkspaceUsers
from atst.domain.users import Users from atst.domain.users import Users
from tests.factories import WorkspaceFactory, UserFactory from atst.models.invitation import Status as InvitationStatus
from tests.factories import WorkspaceFactory, UserFactory, InvitationFactory
def test_can_create_new_workspace_user(): def test_can_create_new_workspace_user():
@ -34,3 +36,24 @@ def test_can_update_existing_workspace_user():
workspace_users[0].workspace_role.role.name workspace_users[0].workspace_role.role.name
== new_user.workspace_roles[0].role.name == new_user.workspace_roles[0].role.name
) )
def test_workspace_user_permissions():
workspace_one = WorkspaceFactory.create()
workspace_two = WorkspaceFactory.create()
new_user = UserFactory.create()
WorkspaceUsers.add_many(
workspace_one.id, [{"id": new_user.id, "workspace_role": "developer"}]
)
WorkspaceUsers.add_many(
workspace_two.id, [{"id": new_user.id, "workspace_role": "developer"}]
)
InvitationFactory.create(
workspace=workspace_one,
user=new_user,
inviter=workspace_one.owner,
status=InvitationStatus.ACCEPTED,
)
assert WorkspaceUsers.workspace_user_permissions(workspace_one, new_user)
assert not WorkspaceUsers.workspace_user_permissions(workspace_two, new_user)