From fec4687c02f6e0b69b3f9434331e4081ef947ad7 Mon Sep 17 00:00:00 2001 From: Montana Date: Wed, 24 Apr 2019 09:09:29 -0400 Subject: [PATCH] Check for member in application function, not user function --- atst/domain/environment_roles.py | 2 +- atst/domain/environments.py | 2 +- atst/models/application.py | 3 +++ atst/models/user.py | 3 --- tests/models/test_application.py | 14 ++++++++++++++ tests/models/test_user.py | 13 ------------- 6 files changed, 19 insertions(+), 18 deletions(-) diff --git a/atst/domain/environment_roles.py b/atst/domain/environment_roles.py index a34aa233..366b61b2 100644 --- a/atst/domain/environment_roles.py +++ b/atst/domain/environment_roles.py @@ -7,7 +7,7 @@ from atst.models import EnvironmentRole class EnvironmentRoles(object): @classmethod def create(cls, user, environment, role): - if user.is_app_member(environment.application): + if environment.application.has_member(user): env_role = EnvironmentRole(user=user, environment=environment, role=role) if not user.cloud_id: user.cloud_id = app.csp.cloud.create_user(user) diff --git a/atst/domain/environments.py b/atst/domain/environments.py index 51a29321..f604808f 100644 --- a/atst/domain/environments.py +++ b/atst/domain/environments.py @@ -68,7 +68,7 @@ class Environments(object): def update_env_role(cls, environment, user, new_role): updated = False - if user.is_app_member(environment.application): + if environment.application.has_member(user): if new_role is None: updated = EnvironmentRoles.delete(user.id, environment.id) else: diff --git a/atst/models/application.py b/atst/models/application.py index 8512c570..43c667c3 100644 --- a/atst/models/application.py +++ b/atst/models/application.py @@ -52,6 +52,9 @@ class Application( def displayname(self): return self.name + def has_member(self, user): + return user in self.users + def __repr__(self): # pragma: no cover return "".format( self.name, self.description, self.portfolio.name, self.id diff --git a/atst/models/user.py b/atst/models/user.py index 3f980453..83f34326 100644 --- a/atst/models/user.py +++ b/atst/models/user.py @@ -80,9 +80,6 @@ class User( def displayname(self): return self.full_name - def is_app_member(self, application): - return self in application.users - def __repr__(self): return "".format( self.full_name, self.dod_id, self.email, self.has_portfolios, self.id diff --git a/tests/models/test_application.py b/tests/models/test_application.py index d90e4cd6..ae73f4a6 100644 --- a/tests/models/test_application.py +++ b/tests/models/test_application.py @@ -4,6 +4,7 @@ from tests.factories import ( ApplicationFactory, ApplicationRoleFactory, EnvironmentFactory, + UserFactory, ) @@ -38,3 +39,16 @@ def test_audit_event_for_application_deletion(session): ) assert update_event.changed_state.get("deleted") assert update_event.changed_state["deleted"] == [False, True] + + +def test_has_app_member(): + user = UserFactory.create() + app = ApplicationFactory.create() + ApplicationRoleFactory.create(user=user, application=app) + assert app.has_member(user) + + +def test_does_not_have_app_member(): + user = UserFactory.create() + app = ApplicationFactory.create() + assert not app.has_member(user) diff --git a/tests/models/test_user.py b/tests/models/test_user.py index 438c53e6..2a3ae51e 100644 --- a/tests/models/test_user.py +++ b/tests/models/test_user.py @@ -26,19 +26,6 @@ def test_cannot_update_dod_id(session): session.commit() -def test_is_app_member(): - user = UserFactory.create() - app = ApplicationFactory.create() - ApplicationRoleFactory.create(user=user, application=app) - assert user.is_app_member(app) - - -def test_is_not_app_member(): - user = UserFactory.create() - app = ApplicationFactory.create() - assert not user.is_app_member(app) - - def test_deleted_application_roles_are_ignored(session): user = UserFactory.create() app = ApplicationFactory.create()