Add test for removing env role in update_environment_roles
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user