diff options
-rw-r--r-- | wqflask/wqflask/oauth2/users.py | 26 | ||||
-rw-r--r-- | wqflask/wqflask/user_login.py | 31 |
2 files changed, 55 insertions, 2 deletions
diff --git a/wqflask/wqflask/oauth2/users.py b/wqflask/wqflask/oauth2/users.py index d1bf0e5b..510b629f 100644 --- a/wqflask/wqflask/oauth2/users.py +++ b/wqflask/wqflask/oauth2/users.py @@ -26,6 +26,32 @@ def user_profile(): for privilege in role["privileges"]), **kwargs) + def __migrate_user_data_error__( + error, user_details, roles, group_join_request): + flash(f"Data Migration: {error['error']}: {error['error_description']}", + "alert-warning") + return __render__( + user_details, roles, group_join_request=group_join_request) + + def __migrate_user_data_success__( + msg, user_details, roles, group_join_request): + flash(f"Data Migration: {msg['description']}", + "alert-success") + return __render__( + user_details, roles, group_join_request=group_join_request) + + def __migrate_user_data__(user_details, roles, group_join_request): + return oauth2_post( + f"oauth2/data/user/{user_details['user_id']}/migrate", + data={ + "user_id": user_details["user_id"] + }).either( + lambda err: __migrate_user_data_error__( + process_error(err), user_details, roles, + group_join_request), + lambda mig_suc_msg: __migrate_user_data_success__( + mig_suc_msg, user_details, roles, group_join_request)) + def __roles_success__(roles): if bool(usr_dets.get("group")): return __render__(usr_dets, roles) diff --git a/wqflask/wqflask/user_login.py b/wqflask/wqflask/user_login.py index ae61edb0..03f968d9 100644 --- a/wqflask/wqflask/user_login.py +++ b/wqflask/wqflask/user_login.py @@ -10,7 +10,7 @@ import requests import simplejson as json from flask import (Flask, g, render_template, url_for, request, make_response, - redirect, flash, abort) + redirect, flash, abort, current_app as app) from wqflask import app from wqflask import pbkdf2 @@ -236,7 +236,34 @@ def login(): url_for('index_page', import_collections=import_col, anon_id=anon_id))) response.set_cookie( UserSession.user_cookie_name, session_id_signed, max_age=None) - return response + ## BEGIN: Data migration from redis to auth's SQLite DB + ## ===================================== + from wqflask.wqflask.oauth2.client import oauth2_get, oauth2_post + from wqflask.wqflask.oauth2.request_utils import process_error + def __user_dets_migrate_error(error): + flash(f"Data Migration: {error['error']}: " + f"{error['error_description']}", + "alert-info") + return response + + def __user_dets_migrate_success(msg): + flash(f"Data Migration: {msg['description']}", + "alert-success") + return response + + return oauth2_post("oauth2/data/user/migrate", data={ + "email": , + "full_name": , + "password": submitted_password, + "confirm_password": submitted_password, + "client_id": app.config["OAUTH2_CLIENT_ID"], + "client_secret": app.config["OAUTH2_CLIENT_SECRET"] + }).either( + lambda err: __user_dets_migrate_error__(process_error(err)), + __user_dets_migrate_success) + # return response + ## ===================================== + ## END: Data migration from redis to auth's SQLite DB else: email_ob = send_verification_email( user_details, template_name="email/user_verification.txt") |