cleanup, add test for workspace user permissions
This commit is contained in:
parent
ead84834d0
commit
4c03a403f7
@ -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
|
||||||
|
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user