Fix bugs and write a test
This commit is contained in:
@@ -2,7 +2,7 @@ from sqlalchemy.orm.exc import NoResultFound
|
||||
|
||||
from atst.database import db
|
||||
from atst.models.environment import Environment
|
||||
from atst.models.environment_role import EnvironmentRole, CSPRole
|
||||
from atst.models.environment_role import EnvironmentRole
|
||||
from atst.models.project import Project
|
||||
from atst.models.permissions import Permissions
|
||||
from atst.domain.authz import Authorization
|
||||
@@ -27,9 +27,9 @@ class Environments(object):
|
||||
db.session.commit()
|
||||
|
||||
@classmethod
|
||||
def add_member(cls, user, environment, member, role=CSPRole.NONSENSE_ROLE):
|
||||
def add_member(cls, user, environment, member, role=None):
|
||||
environment_user = EnvironmentRole(
|
||||
user=member, environment=environment, role=role.value
|
||||
user=member, environment=environment, role=role
|
||||
)
|
||||
db.session.add(environment_user)
|
||||
db.session.commit()
|
||||
@@ -57,9 +57,9 @@ class Environments(object):
|
||||
return env
|
||||
|
||||
@classmethod
|
||||
def update_environment_role(cls, ids_and_roles, workspace_user):
|
||||
def update_environment_role(cls, user, ids_and_roles, workspace_user):
|
||||
Authorization.check_workspace_permission(
|
||||
workspace_user.user,
|
||||
user,
|
||||
workspace_user.workspace,
|
||||
Permissions.ADD_AND_ASSIGN_CSP_ROLES,
|
||||
"assign environment roles",
|
||||
|
@@ -51,9 +51,9 @@ class Projects(object):
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def get_all(cls, workspace_user, workspace):
|
||||
def get_all(cls, user, workspace_user, workspace):
|
||||
Authorization.check_workspace_permission(
|
||||
workspace_user.user,
|
||||
user,
|
||||
workspace,
|
||||
Permissions.VIEW_APPLICATION_IN_WORKSPACE,
|
||||
"view project in workspace",
|
||||
|
@@ -26,18 +26,6 @@ class EnvironmentRole(Base, mixins.TimestampsMixin):
|
||||
user_id = Column(UUID(as_uuid=True), ForeignKey("users.id"), nullable=False)
|
||||
user = relationship("User", backref="environment_roles")
|
||||
|
||||
@classmethod
|
||||
def get(cls, user_id, environment_id):
|
||||
existing_env_role = (
|
||||
db.session.query(EnvironmentRole)
|
||||
.filter(
|
||||
EnvironmentRole.user_id == user_id,
|
||||
EnvironmentRole.environment_id == environment_id,
|
||||
)
|
||||
.one_or_none()
|
||||
)
|
||||
return existing_env_role
|
||||
|
||||
|
||||
Index(
|
||||
"environments_role_user_environment",
|
||||
|
@@ -216,7 +216,7 @@ def view_member(workspace_id, member_id):
|
||||
"edit this workspace user",
|
||||
)
|
||||
member = WorkspaceUsers.get(workspace_id, member_id)
|
||||
projects = Projects.get_all(member, workspace)
|
||||
projects = Projects.get_all(g.current_user, member, workspace)
|
||||
form = EditMemberForm(workspace_role=member.role, environment_role="")
|
||||
return render_template(
|
||||
"workspaces/members/edit.html",
|
||||
@@ -259,7 +259,7 @@ def update_member(workspace_id, member_id):
|
||||
)
|
||||
new_role_name = member.role_displayname
|
||||
|
||||
Environments.update_environment_role(ids_and_roles, member)
|
||||
Environments.update_environment_role(g.current_user, ids_and_roles, member)
|
||||
|
||||
return redirect(
|
||||
url_for(
|
||||
|
Reference in New Issue
Block a user