Check for member in application function, not user function

This commit is contained in:
Montana 2019-04-24 09:09:29 -04:00
parent 6822680bc8
commit fec4687c02
6 changed files with 19 additions and 18 deletions

View File

@ -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)

View File

@ -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:

View File

@ -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 "<Application(name='{}', description='{}', portfolio='{}', id='{}')>".format(
self.name, self.description, self.portfolio.name, self.id

View File

@ -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 "<User(name='{}', dod_id='{}', email='{}', has_portfolios='{}', id='{}')>".format(
self.full_name, self.dod_id, self.email, self.has_portfolios, self.id

View File

@ -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)

View File

@ -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()