Send email to user when App Role is created
This commit is contained in:
parent
c3c9f23e53
commit
207c34e536
12
atst/jobs.py
12
atst/jobs.py
@ -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):
|
||||
|
@ -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
|
||||
|
@ -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."
|
||||
|
Loading…
x
Reference in New Issue
Block a user