mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-05 19:03:30 -05:00
add debug statements
This commit is contained in:
@@ -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']}"
|
||||
)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user