42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
from atst.database import db
|
|
from atst.models.environment import Environment
|
|
from atst.models.environment_role import EnvironmentRole, CSPRole
|
|
from atst.models.project import Project
|
|
|
|
|
|
class Environments(object):
|
|
@classmethod
|
|
def create(cls, project, name):
|
|
environment = Environment(project=project, name=name)
|
|
db.session.add(environment)
|
|
db.session.commit()
|
|
return environment
|
|
|
|
@classmethod
|
|
def create_many(cls, project, names):
|
|
for name in names:
|
|
environment = Environment(project=project, name=name)
|
|
db.session.add(environment)
|
|
db.session.commit()
|
|
|
|
@classmethod
|
|
def add_member(cls, user, environment, member, role=CSPRole.NONSENSE_ROLE):
|
|
environment_user = EnvironmentRole(
|
|
user=member, environment=environment, role=role.value
|
|
)
|
|
db.session.add(environment_user)
|
|
db.session.commit()
|
|
|
|
return environment
|
|
|
|
@classmethod
|
|
def for_user(cls, user, project):
|
|
return (
|
|
db.session.query(Environment)
|
|
.join(EnvironmentRole)
|
|
.join(Project)
|
|
.filter(EnvironmentRole.user_id == user.id)
|
|
.filter(Project.id == Environment.project_id)
|
|
.all()
|
|
)
|