mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-16 20:49:00 -04:00
Trying to get invites to flow correctly.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
This commit is contained in:
@@ -17,14 +17,12 @@ def accept_invite(token):
|
||||
and current_user.email_address.lower() != invited_user.email_address.lower()
|
||||
):
|
||||
message = Markup(
|
||||
"""
|
||||
You’re signed in as {}.
|
||||
f"""
|
||||
You’re signed in as {current_user.email_address}.
|
||||
This invite is for another email address.
|
||||
<a href={} class="usa-link">Sign out</a>
|
||||
<a href={url_for("main.sign_out")} class="usa-link">Sign out</a>
|
||||
and click the link again to accept this invite.
|
||||
""".format(
|
||||
current_user.email_address, url_for("main.sign_out")
|
||||
)
|
||||
"""
|
||||
)
|
||||
|
||||
flash(message=message)
|
||||
|
||||
@@ -173,7 +173,9 @@ def set_up_your_profile():
|
||||
user_email = redis_client.get(f"user_email-{state}")
|
||||
user_uuid = redis_client.get(f"user_uuid-{state}")
|
||||
|
||||
if user_email is None or user_uuid is None: # invite path
|
||||
new_user = user_email is None or user_uuid is None
|
||||
|
||||
if new_user: # invite path
|
||||
access_token = sign_in._get_access_token(code)
|
||||
|
||||
debug_msg("Got the access token for login.gov")
|
||||
@@ -184,7 +186,7 @@ def set_up_your_profile():
|
||||
invite_data = redis_client.get(f"invitedata-{state}")
|
||||
invite_data = json.loads(invite_data)
|
||||
debug_msg(f"final state {invite_data}")
|
||||
invited_user_id = invite_data["user_id"]
|
||||
invited_user_id = invite_data["id"]
|
||||
invited_user_email_address = get_invited_user_email_address(invited_user_id)
|
||||
debug_msg(f"email address from the invite_date is {invited_user_email_address}")
|
||||
check_invited_user_email_address_matches_expected(
|
||||
@@ -193,7 +195,7 @@ def set_up_your_profile():
|
||||
|
||||
invited_user_accept_invite(invited_user_id)
|
||||
debug_msg(
|
||||
f"accepted invite user {invited_user_email_address} to service {invite_data['service_id']}"
|
||||
f"accepted invite user {invited_user_email_address} to service {invite_data['service']}"
|
||||
)
|
||||
# We need to avoid taking a second trip through the login.gov code because we cannot pull the
|
||||
# access token twice. So once we retrieve these values, let's park them in redis for 15 minutes
|
||||
@@ -203,7 +205,7 @@ def set_up_your_profile():
|
||||
|
||||
form = SetupUserProfileForm()
|
||||
|
||||
if form.validate_on_submit():
|
||||
if form.validate_on_submit() and not new_user:
|
||||
invite_data, user_email, user_uuid, invited_user_email_address = (
|
||||
get_invite_data_from_redis(state)
|
||||
)
|
||||
@@ -229,17 +231,15 @@ def set_up_your_profile():
|
||||
debug_msg("activated user")
|
||||
usr = User.from_id(user["id"])
|
||||
usr.add_to_service(
|
||||
invite_data["service_id"],
|
||||
invite_data["service"],
|
||||
invite_data["permissions"],
|
||||
invite_data["folder_permissions"],
|
||||
invite_data["from_user_id"],
|
||||
)
|
||||
debug_msg(
|
||||
f"Added user {usr.email_address} to service {invite_data['service_id']}"
|
||||
invite_data["from_user"],
|
||||
)
|
||||
debug_msg(f"Added user {usr.email_address} to service {invite_data['service']}")
|
||||
# notify-admin-1766
|
||||
# redirect new users to templates area of new service instead of dashboard
|
||||
service_id = invite_data["service_id"]
|
||||
service_id = invite_data["service"]
|
||||
url = url_for(".service_dashboard", service_id=service_id)
|
||||
url = f"{url}/templates"
|
||||
return redirect(url)
|
||||
|
||||
@@ -62,16 +62,7 @@ class InviteApiClient(NotifyAdminAPIClient):
|
||||
|
||||
resp_data = resp["data"]
|
||||
invite_data_key = f"invitedata-{unquote(state)}"
|
||||
remap_keys = {
|
||||
"service": "service_id",
|
||||
"from_user": "from_user_id",
|
||||
"id": "user_id",
|
||||
}
|
||||
redis_invite_data = {
|
||||
remap_keys[key] if key in remap_keys else key: value
|
||||
for key, value in resp_data.items()
|
||||
}
|
||||
redis_invite_data = json.dumps(redis_invite_data)
|
||||
redis_invite_data = json.dumps(resp_data)
|
||||
redis_client.set(invite_data_key, redis_invite_data)
|
||||
|
||||
return resp_data
|
||||
|
||||
Reference in New Issue
Block a user