Add test for removing env role in update_environment_roles

This commit is contained in:
richard-dds
2018-10-17 16:03:38 -04:00
parent c138df2b0f
commit 0f6fee9909
5 changed files with 74 additions and 5 deletions

View File

@@ -58,10 +58,10 @@ class Environments(object):
return env
@classmethod
def update_environment_role(cls, user, ids_and_roles, workspace_user):
def update_environment_roles(cls, user, workspace, workspace_user, ids_and_roles):
Authorization.check_workspace_permission(
user,
workspace_user.workspace,
workspace,
Permissions.ADD_AND_ASSIGN_CSP_ROLES,
"assign environment roles",
)
@@ -73,7 +73,9 @@ class Environments(object):
if new_role is None:
EnvironmentRoles.delete(workspace_user.user.id, environment.id)
else:
env_role = EnvironmentRoles.get(workspace_user.user_id, id_and_role["id"])
env_role = EnvironmentRoles.get(
workspace_user.user.id, id_and_role["id"]
)
if env_role:
env_role.role = new_role
else:

View File

@@ -2,6 +2,7 @@ from atst.database import db
from atst.domain.authz import Authorization
from atst.domain.environments import Environments
from atst.domain.exceptions import NotFoundError
from atst.domain.environment_roles import EnvironmentRoles
from atst.models.permissions import Permissions
from atst.models.project import Project
from atst.models.environment import Environment

View File

@@ -56,6 +56,18 @@ class WorkspaceUser(object):
.count()
)
@property
def environment_roles(self):
return (
db.session.query(EnvironmentRole)
.join(EnvironmentRole.environment)
.join(Environment.project)
.join(Project.workspace)
.filter(Project.workspace_id == self.workspace_id)
.filter(EnvironmentRole.user_id == self.user_id)
.all()
)
@property
def has_environment_roles(self):
return self.num_environment_roles > 0

View File

@@ -297,7 +297,9 @@ def update_member(workspace_id, member_id):
)
new_role_name = member.role_displayname
Environments.update_environment_role(g.current_user, ids_and_roles, member)
Environments.update_environment_roles(
g.current_user, workspace, member, ids_and_roles
)
return redirect(
url_for(