Add and list environment members

This commit is contained in:
richard-dds 2018-09-06 13:53:19 -04:00
parent e5a0d69844
commit 3edbfa3129
3 changed files with 31 additions and 0 deletions

View File

@ -1,5 +1,6 @@
from atst.database import db
from atst.models.environment import Environment
from atst.models.environment_role import EnvironmentRole, CSPRole
class Environments(object):
@ -16,3 +17,13 @@ class Environments(object):
environment = Environment(project=project, name=name)
db.session.add(environment)
db.session.commit()
@classmethod
def add_member(cls, user, environment, member):
environment_user = EnvironmentRole(
user=member, environment=environment, role=CSPRole.NONSENSE_ROLE.value
)
db.session.add(environment_user)
db.session.commit()
return environment

View File

@ -14,3 +14,7 @@ class Environment(Base, TimestampsMixin):
project_id = Column(ForeignKey("projects.id"))
project = relationship("Project")
@property
def users(self):
return [r.user for r in self.roles]

View File

@ -0,0 +1,16 @@
from atst.domain.environments import Environments
from atst.domain.workspaces import Workspaces
from atst.domain.projects import Projects
from tests.factories import RequestFactory, UserFactory
def test_add_user_to_environment():
owner = UserFactory.create()
developer = UserFactory.from_atat_role("developer")
workspace = Workspaces.create(RequestFactory.create(creator=owner))
project = Projects.create(workspace, "my test project", "It's mine.", ["dev", "staging", "prod"])
dev_environment = project.environments[0]
dev_environment = Environments.add_member(owner, dev_environment, developer)
assert developer in dev_environment.users