add debug statements

This commit is contained in:
Kenneth Kehl
2024-05-07 14:36:21 -07:00
parent 9c40a10900
commit 1d9457f9a2
2 changed files with 34 additions and 3 deletions

View File

@@ -125,7 +125,7 @@ def set_up_your_profile():
state = request.args.get("state")
login_gov_error = request.args.get("error")
if code and state:
_handle_login_dot_gov_invite(code, state, form)
return _handle_login_dot_gov_invite(code, state, form)
elif login_gov_error:
current_app.logger.error(f"login.gov error: {login_gov_error}")
raise Exception(f"Could not login with login.gov {login_gov_error}")
@@ -153,16 +153,20 @@ def debug_msg(msg):
def _handle_login_dot_gov_invite(code, state, form):
debug_msg(f"enter _handle_login_dot_gov_invite with code {code} state {state}")
access_token = sign_in._get_access_token(code, state)
debug_msg("Got the access token for login.gov")
user_email, user_uuid = sign_in._get_user_email_and_uuid(access_token)
debug_msg(
f"Got the user_email {user_email} and user_uuid {user_uuid} from login.gov"
)
debug_msg(f"raw state {state}")
invite_data = state.encode("utf8")
debug_msg(f"utf8 encoded state {invite_data}")
invite_data = base64.b64decode(invite_data)
debug_msg(f"b64 decoded state {invite_data}")
invite_data = json.loads(invite_data)
debug_msg(f"final state {invite_data}")
invited_user_id = invite_data["invited_user_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}")
@@ -172,7 +176,7 @@ def _handle_login_dot_gov_invite(code, state, form):
session.pop("invited_user_id", None)
abort(403)
else:
invited_user_accept_invite()
invited_user_accept_invite(invited_user_id)
debug_msg(
f"invited user {invited_user_email_address} to service {invite_data['service_id']}"
)

View File

@@ -459,3 +459,30 @@ def test_handle_login_dot_gov_invite_good_email(client_request, mocker):
_handle_login_dot_gov_invite("code", invite_data, RegisterUserForm())
mock_accept.assert_called_once()
mock_user.assert_called_once_with("service", ["manage_everything"], [], "xyz")
# Taken from the API project in service_invite/rest.py
def get_user_data_url_safe(data):
data = json.dumps(data)
data = base64.b64encode(data.encode("utf8"))
return data.decode("utf8")
def get_decoded(state):
state = state.encode("utf8")
state = base64.b64decode(state)
state = json.loads(state)
return state
# Test that we can successfully decode the invited user
# data that is sent in the state param
def test_decode_state():
invite_data = {
"from_user_id": "abc",
"service_id": "bcd",
"permissions": ["manage_everything"],
"folder_permissions": [],
}
state = get_user_data_url_safe(invite_data)
assert invite_data == get_decoded(state)