Change Environment.creator relation from ApplicationRole to User

This commit is contained in:
richard-dds
2019-09-10 14:16:38 -04:00
parent e65c1d69b6
commit f6cb6f2a31
13 changed files with 50 additions and 21 deletions

View File

@@ -19,13 +19,13 @@ class Applications(BaseDomainClass):
resource_name = "application"
@classmethod
def create(cls, portfolio, name, description, environment_names):
def create(cls, user, portfolio, name, description, environment_names):
application = Application(
portfolio=portfolio, name=name, description=description
)
db.session.add(application)
Environments.create_many(application, environment_names)
Environments.create_many(user, application, environment_names)
db.session.commit()
return application

View File

@@ -11,17 +11,17 @@ from .exceptions import NotFoundError
class Environments(object):
@classmethod
def create(cls, application, name):
environment = Environment(application=application, name=name)
def create(cls, user, application, name):
environment = Environment(application=application, name=name, creator=user)
db.session.add(environment)
db.session.commit()
return environment
@classmethod
def create_many(cls, application, names):
def create_many(cls, user, application, names):
environments = []
for name in names:
environment = Environments.create(application, name)
environment = Environments.create(user, application, name)
environments.append(environment)
db.session.add_all(environments)

View File

@@ -18,8 +18,11 @@ class Environment(
application_id = Column(ForeignKey("applications.id"), nullable=False)
application = relationship("Application")
creator_role_id = Column(ForeignKey("application_roles.id"), nullable=False)
creator = relationship("ApplicationRole")
# User user.id as the foreign key here beacuse the Environment creator may
# not have an application role. We may need to revisit this if we receive any
# requirements around tracking an environment's custodian.
creator_id = Column(ForeignKey("users.id"), nullable=False)
creator = relationship("User")
cloud_id = Column(String)
root_user_info = Column(JSONB)

View File

@@ -1,4 +1,4 @@
from flask import redirect, render_template, request as http_request, url_for
from flask import redirect, render_template, request as http_request, url_for, g
from . import applications_bp
from atst.domain.applications import Applications
@@ -24,6 +24,7 @@ def create(portfolio_id):
if form.validate():
application_data = form.data
Applications.create(
g.current_user,
portfolio,
application_data["name"],
application_data["description"],

View File

@@ -230,7 +230,9 @@ def new_environment(application_id):
env_form = EditEnvironmentForm(formdata=http_request.form)
if env_form.validate():
Environments.create(application=application, name=env_form.name.data)
Environments.create(
g.current_user, application=application, name=env_form.name.data
)
flash("environment_added", environment_name=env_form.data["name"])