diff --git a/atst/domain/environment_roles.py b/atst/domain/environment_roles.py new file mode 100644 index 00000000..8b10a2db --- /dev/null +++ b/atst/domain/environment_roles.py @@ -0,0 +1,16 @@ +from atst.models.environment_role import EnvironmentRole +from atst.database import db + + +class EnvironmentRoles(object): + @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 diff --git a/atst/domain/environments.py b/atst/domain/environments.py index ce4da176..16a294fc 100644 --- a/atst/domain/environments.py +++ b/atst/domain/environments.py @@ -6,6 +6,7 @@ from atst.models.environment_role import EnvironmentRole, CSPRole from atst.models.project import Project from atst.models.permissions import Permissions from atst.domain.authz import Authorization +from atst.domain.environment_roles import EnvironmentRoles from .exceptions import NotFoundError @@ -67,7 +68,7 @@ class Environments(object): for id_and_role in ids_and_roles: new_role = id_and_role["role"] environment = Environments.get(id_and_role["id"]) - env_role = EnvironmentRole.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: diff --git a/atst/routes/workspaces.py b/atst/routes/workspaces.py index f9a52957..12a21573 100644 --- a/atst/routes/workspaces.py +++ b/atst/routes/workspaces.py @@ -16,7 +16,7 @@ from atst.domain.reports import Reports from atst.domain.workspaces import Workspaces from atst.domain.workspace_users import WorkspaceUsers from atst.domain.environments import Environments -from atst.models.environment_role import EnvironmentRole +from atst.domain.environment_roles import EnvironmentRoles from atst.forms.new_project import NewProjectForm from atst.forms.new_member import NewMemberForm from atst.forms.edit_member import EditMemberForm @@ -224,7 +224,7 @@ def view_member(workspace_id, member_id): member=member, projects=projects, form=form, - EnvironmentRole=EnvironmentRole, + EnvironmentRoles=EnvironmentRoles, ) diff --git a/templates/workspaces/members/edit.html b/templates/workspaces/members/edit.html index 31252b1e..a9139ade 100644 --- a/templates/workspaces/members/edit.html +++ b/templates/workspaces/members/edit.html @@ -64,7 +64,7 @@