(20241204) Mail OAuth URL modified.

This commit is contained in:
2024-12-04 13:08:40 +05:30
parent e51a6de5fc
commit f15a638251
3 changed files with 19 additions and 11 deletions
+4 -1
View File
@@ -136,7 +136,10 @@ async def handle_gmail_callback() -> render_template:
# to us when the authorization was initiated. We don't mind any e-mail id being used, but we need them to be the
# same at both ends:
user_profile = await current_app.gmail_client.get_user_profile(tokens = tokens)
tokens.email = user_profile.data["emailAddress"] if user_profile.success else None
if user_profile.success:
tokens.email = user_profile.data["emailAddress"]
tokens.displayName = user_profile.data["displayName"]
tokens.displayPictureUrl = user_profile.data["displayPictureUrl"]
# Here's where we do the checking of the e-mails,
# if they don't match, we reject the authorization:
+1 -1
View File
@@ -115,7 +115,7 @@ def init(blueprint_setup_state):
# ---------------------------------------------------------------------------------------------------------------------
@mail_oauth_bp.route("/auth/oauth/url/request", methods = ["GET"])
@mail_oauth_bp.route("/oauth", methods = ["GET"])
@set_api_version(api_version = "1.0.0")
@read_input(sanitize_headers = False, sanitize_data = False)
@get_session_info(key = "X-Session-Token", session_coro = "get_session")
+14 -9
View File
@@ -237,19 +237,24 @@ class MailOAuthModel(BaseModel):
# Tell MariaDB that the token was saved:
if mongo_json is not None:
token_notes = {
"email": token["email"],
"displayName": token["displayName"],
"displayPictureUrl": token["displayPictureUrl"],
}
db_json = await self.call_procedure(
db_conn = db_conn,
proc_name = "entity_integration_save",
proc_args = (
mongo_json["user"]["entityId"], # ............................................. 'p_entity_id'
mongo_json["client"], # ....................................................... 'p_provider'
"Auth Granted", # ............................................................. 'p_current_status'
"Set Token", # ................................................................ 'p_last_action'
None, # ....................................................................... 'p_display_name'
None, # ....................................................................... 'p_display_picture'
account_identifier, # ......................................................... 'p_token_id'
json.to_string(python_data = {"email": token["email"]}, no_space = True), # ... 'p_notes'
mongo_json["user"]["userId"] # ................................................ 'p_created_by'
mongo_json["user"]["entityId"], # ............................... 'p_entity_id'
mongo_json["client"], # ......................................... 'p_provider'
"Auth Granted", # ............................................... 'p_current_status'
"Set Token", # .................................................. 'p_last_action'
token["displayName"], # ......................................... 'p_display_name'
token["displayPictureUrl"], # ................................... 'p_display_picture'
account_identifier, # ........................................... 'p_token_id'
json.to_string(python_data = token_notes, no_space = True), # ... 'p_notes'
mongo_json["user"]["userId"] # .................................. 'p_created_by'
),
session_token = session_token
)