Also remove enviornment access (stub)
This commit is contained in:
parent
3026771a38
commit
35150dfa10
@ -85,3 +85,7 @@ class Environments(object):
|
|||||||
db.session.add(env_role)
|
db.session.add(env_role)
|
||||||
|
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def revoke_access(cls, user, environment, target_user):
|
||||||
|
pass
|
||||||
|
@ -146,4 +146,7 @@ class Workspaces(object):
|
|||||||
# user, workspace, Permissions.REQUEST_NEW_CSP_ROLE, "revoke workspace access"
|
# user, workspace, Permissions.REQUEST_NEW_CSP_ROLE, "revoke workspace access"
|
||||||
# )
|
# )
|
||||||
target_workspace_role.status = WorkspaceRoleStatus.DISABLED
|
target_workspace_role.status = WorkspaceRoleStatus.DISABLED
|
||||||
|
for environment in workspace.all_environments:
|
||||||
|
# TODO: Implement Environments.revoke_access
|
||||||
|
Environments.revoke_access(user, environment, target_workspace_role.user)
|
||||||
return WorkspacesQuery.add_and_commit(target_workspace_role)
|
return WorkspacesQuery.add_and_commit(target_workspace_role)
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
from sqlalchemy import Column, ForeignKey, String
|
from sqlalchemy import Column, ForeignKey, String
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy.orm import relationship
|
||||||
|
from itertools import chain
|
||||||
|
|
||||||
from atst.models import Base
|
from atst.models import Base
|
||||||
from atst.models.types import Id
|
from atst.models.types import Id
|
||||||
@ -44,6 +45,10 @@ class Workspace(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
|
|||||||
def displayname(self):
|
def displayname(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
@property
|
||||||
|
def all_environments(self):
|
||||||
|
return list(chain.from_iterable(p.environments for p in self.projects))
|
||||||
|
|
||||||
def auditable_workspace_id(self):
|
def auditable_workspace_id(self):
|
||||||
return self.id
|
return self.id
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@ import datetime
|
|||||||
from atst.domain.environments import Environments
|
from atst.domain.environments import Environments
|
||||||
from atst.domain.workspaces import Workspaces
|
from atst.domain.workspaces import Workspaces
|
||||||
from atst.domain.projects import Projects
|
from atst.domain.projects import Projects
|
||||||
from atst.domain.workspace_roles import WorkspaceRoles
|
|
||||||
from atst.models.workspace_role import Status
|
from atst.models.workspace_role import Status
|
||||||
from atst.models.role import Role
|
from atst.models.role import Role
|
||||||
from atst.models.invitation import Status as InvitationStatus
|
from atst.models.invitation import Status as InvitationStatus
|
||||||
@ -16,7 +15,9 @@ from tests.factories import (
|
|||||||
EnvironmentFactory,
|
EnvironmentFactory,
|
||||||
EnvironmentRoleFactory,
|
EnvironmentRoleFactory,
|
||||||
ProjectFactory,
|
ProjectFactory,
|
||||||
|
WorkspaceFactory,
|
||||||
)
|
)
|
||||||
|
from atst.domain.workspace_roles import WorkspaceRoles
|
||||||
|
|
||||||
|
|
||||||
def test_has_no_ws_role_history(session):
|
def test_has_no_ws_role_history(session):
|
||||||
@ -234,3 +235,36 @@ def test_can_resend_invitation_if_expired():
|
|||||||
invitations=[InvitationFactory.create(status=InvitationStatus.REJECTED_EXPIRED)]
|
invitations=[InvitationFactory.create(status=InvitationStatus.REJECTED_EXPIRED)]
|
||||||
)
|
)
|
||||||
assert workspace_role.can_resend_invitation
|
assert workspace_role.can_resend_invitation
|
||||||
|
|
||||||
|
|
||||||
|
def test_can_list_all_environments():
|
||||||
|
workspace = WorkspaceFactory.create(
|
||||||
|
projects=[
|
||||||
|
{
|
||||||
|
"name": "project1",
|
||||||
|
"environments": [
|
||||||
|
{"name": "dev"},
|
||||||
|
{"name": "staging"},
|
||||||
|
{"name": "prod"},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "project2",
|
||||||
|
"environments": [
|
||||||
|
{"name": "dev"},
|
||||||
|
{"name": "staging"},
|
||||||
|
{"name": "prod"},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "project3",
|
||||||
|
"environments": [
|
||||||
|
{"name": "dev"},
|
||||||
|
{"name": "staging"},
|
||||||
|
{"name": "prod"},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
assert len(workspace.all_environments) == 9
|
||||||
|
Loading…
x
Reference in New Issue
Block a user