Send email to user when App Role is created

This commit is contained in:
leigh-mil 2020-02-13 11:17:09 -05:00
parent c3c9f23e53
commit 207c34e536
3 changed files with 51 additions and 2 deletions

View File

@ -111,6 +111,18 @@ def do_create_user(csp: CloudProviderInterface, application_role_ids=None):
db.session.add(app_role)
db.session.commit()
username = payload.user_principal_name
send_mail(
recipients=[user.email],
subject=translate("email.app_role_created.subject"),
body=translate(
"email.app_role_created.body",
{"url": app.config.get("AZURE_LOGIN_URL"), "username": username},
),
)
app.logger.info(
f"Application role created notification email sent. User id: {user.id}"
)
def do_create_environment(csp: CloudProviderInterface, environment_id=None):

View File

@ -153,12 +153,46 @@ def test_create_user_job(session, csp, app):
cloud_id=None,
)
session.begin_nested()
do_create_user(csp, [app_role.id])
session.refresh(app_role)
session.rollback()
assert app_role.cloud_id
def test_create_user_sends_email(monkeypatch, csp):
mock = Mock()
monkeypatch.setattr("atst.jobs.send_mail", mock)
portfolio = PortfolioFactory.create(
csp_data={
"tenant_id": str(uuid4()),
"domain_name": "rebelalliance.onmicrosoft.com",
}
)
application_1 = ApplicationFactory.create(portfolio=portfolio, cloud_id="321")
application_2 = ApplicationFactory.create(portfolio=portfolio, cloud_id="123")
user = UserFactory.create()
app_role_1 = ApplicationRoleFactory.create(
user=user,
application=application_1,
status=ApplicationRoleStatus.ACTIVE,
cloud_id=None,
)
app_role_2 = ApplicationRoleFactory.create(
user=user,
application=application_2,
status=ApplicationRoleStatus.ACTIVE,
cloud_id=None,
)
do_create_user(csp, [app_role_1.id, app_role_2.id])
assert mock.call_count == 1
def test_dispatch_create_environment(session, monkeypatch):
# Given that I have a portfolio with an active CLIN and two environments,
# one of which is deleted

View File

@ -83,7 +83,10 @@ errors:
not_found_sub: This page does not exist.
email:
application_invite: "{inviter_name} has invited you to a JEDI cloud application"
portfolio_invite: "{inviter_name} has invited you to a JEDI cloud portfolio"
app_role_created:
subject: Application Role Created
body: "Your application role has been created.\nVisit {url}, and use your username, {username}, to log in."
portfolio_invite: "{inviter_name} has invited you to a JEDI cloud portfolio."
portfolio_ready:
subject: Portfolio Provisioned
body: "Your portfolio has been provisioned.\nVisit {password_reset_address}, and use your username, {username}, to create a password."