Feat: Founding Partner login with autocreation of User, User Role Link, Company, User Company Link as necessary and autologin with new user - for approved Founding Partners only, otherwise redirected to login page.
This commit is contained in:
@@ -15,6 +15,7 @@ Contact Page Controller.
|
||||
from business_objects.api import API
|
||||
from business_objects.dog.company import Company
|
||||
from datastores.datastore_dog import DataStore_Dog
|
||||
from datastores.datastore_user import DataStore_User
|
||||
from forms.dog.company import Filters_Company
|
||||
from helpers.helper_app import Helper_App
|
||||
from models.model_view_user_company import Model_View_User_Company
|
||||
@@ -97,7 +98,7 @@ def save_company():
|
||||
for company in companies:
|
||||
objs_company.append(Company.from_json(company))
|
||||
Helper_App.console_log(f'objs_company={objs_company}')
|
||||
errors = DataStore_Dog.save_companies(data.get('comment', 'No comment'), objs_company)
|
||||
errors = DataStore_User.save_companies(data.get('comment', 'No comment'), objs_company)
|
||||
|
||||
if (len(errors) > 0):
|
||||
return jsonify({
|
||||
|
||||
@@ -110,52 +110,12 @@ def login_callback():
|
||||
# Helper_App.console_log('login_callback')
|
||||
try:
|
||||
# Helper_App.console_log(f'Redceived state: {request.args.get("state")}')
|
||||
error_state = request.args.get(Model_View_User.FLAG_ERROR_OAUTH)
|
||||
has_error = error_state is not None
|
||||
if has_error:
|
||||
error_description = request.args.get(Model_View_User.FLAG_ERROR_DESCRIPTION_OAUTH)
|
||||
error_text = f'Error: {error_state}: {error_description}'
|
||||
Helper_App.console_log(error_text)
|
||||
return redirect(f"{current_app.config['URL_HOST']}{hash_callback}") # login()
|
||||
token = None
|
||||
try:
|
||||
token = oauth.auth0.authorize_access_token()
|
||||
except Exception as e:
|
||||
Helper_App.console_log(f"Error: {str(e)}")
|
||||
session[current_app.config['ID_TOKEN_USER']] = token
|
||||
user = User.from_json_auth0(token)
|
||||
Helper_App.console_log(f'user: {user}')
|
||||
filters = Parameters_User.from_user(user)
|
||||
datastore_user = DataStore_User()
|
||||
users, errors = datastore_user.get_many_user(filters, user)
|
||||
try:
|
||||
user = users[0]
|
||||
Helper_App.console_log('User logged in')
|
||||
Helper_App.console_log(f'user ({str(type(user))}): {user}')
|
||||
Helper_App.console_log(f'user key: {Model_View_Base.FLAG_USER}')
|
||||
user_json = user.to_json()
|
||||
Helper_App.console_log(f'User JSON: {user_json}')
|
||||
session[Model_View_Base.FLAG_USER] = user_json
|
||||
Helper_App.console_log(f'user stored on session')
|
||||
except:
|
||||
# Helper_App.console_log(f'User not found: {filters}\nDatabase query error: {errors}')
|
||||
user = User.from_json_auth0(token)
|
||||
errors = datastore_user.save_new_founding_partner(user)
|
||||
|
||||
filters = Parameters_User.from_user(user)
|
||||
datastore_user = DataStore_User()
|
||||
users, errors = datastore_user.get_many_user(filters, user)
|
||||
try:
|
||||
user = users[0]
|
||||
Helper_App.console_log('User logged in')
|
||||
Helper_App.console_log(f'user ({str(type(user))}): {user}')
|
||||
Helper_App.console_log(f'user key: {Model_View_Base.FLAG_USER}')
|
||||
user_json = user.to_json()
|
||||
Helper_App.console_log(f'User JSON: {user_json}')
|
||||
session[Model_View_Base.FLAG_USER] = user_json
|
||||
Helper_App.console_log(f'user stored on session')
|
||||
except:
|
||||
Helper_App.console_log(f'User not found: {filters}\nDatabase query error: {errors}')
|
||||
|
||||
try:
|
||||
hash_callback = token.get('hash_callback')
|
||||
@@ -168,6 +128,55 @@ def login_callback():
|
||||
except:
|
||||
Helper_App.console_log("get hash callback failed")
|
||||
|
||||
error_state = request.args.get(Model_View_User.FLAG_ERROR_OAUTH)
|
||||
has_error = error_state is not None
|
||||
if has_error:
|
||||
error_description = request.args.get(Model_View_User.FLAG_ERROR_DESCRIPTION_OAUTH)
|
||||
error_text = f'Error: {error_state}: {error_description}'
|
||||
Helper_App.console_log(error_text)
|
||||
return redirect(f"{current_app.config['URL_HOST']}{hash_callback}") # login()
|
||||
|
||||
user = User.from_json_auth0(token)
|
||||
Helper_App.console_log(f'user: {user}')
|
||||
filters = Parameters_User.from_user(user)
|
||||
datastore_user = DataStore_User()
|
||||
users, errors = datastore_user.get_many_user(filters, user)
|
||||
try:
|
||||
if (len(errors) > 0): raise ValueError(f'Database errors: {errors}')
|
||||
user = users[0]
|
||||
Helper_App.console_log('User logged in')
|
||||
Helper_App.console_log(f'user ({str(type(user))}): {user}')
|
||||
Helper_App.console_log(f'user key: {Model_View_Base.FLAG_USER}')
|
||||
user_json = user.to_json()
|
||||
Helper_App.console_log(f'User JSON: {user_json}')
|
||||
session[Model_View_Base.FLAG_USER] = user_json
|
||||
Helper_App.console_log(f'user stored on session')
|
||||
except:
|
||||
# Helper_App.console_log(f'User not found: {filters}\nDatabase query error: {errors}')
|
||||
Helper_App.console_log(f'User not found. Creating new founding partner')
|
||||
user = User.from_json_auth0(token)
|
||||
errors = datastore_user.save_new_founding_partner(user)
|
||||
try:
|
||||
if (len(errors) > 0): raise ValueError(f'Database errors: {errors}')
|
||||
|
||||
filters = Parameters_User.from_user(user)
|
||||
datastore_user = DataStore_User()
|
||||
users, errors = datastore_user.get_many_user(filters, user)
|
||||
if (len(errors) > 0): raise ValueError(f'Database errors: {errors}')
|
||||
try:
|
||||
user = users[0]
|
||||
Helper_App.console_log('User logged in')
|
||||
Helper_App.console_log(f'user ({str(type(user))}): {user}')
|
||||
Helper_App.console_log(f'user key: {Model_View_Base.FLAG_USER}')
|
||||
user_json = user.to_json()
|
||||
Helper_App.console_log(f'User JSON: {user_json}')
|
||||
session[Model_View_Base.FLAG_USER] = user_json
|
||||
Helper_App.console_log(f'user stored on session')
|
||||
except:
|
||||
Helper_App.console_log(f'User not found: {filters}\nDatabase query error: {errors}')
|
||||
except:
|
||||
Helper_App.console_log(f'User not found: {filters}\nDatabase query error: {errors}')
|
||||
|
||||
Helper_App.console_log(f'user session: {session.get(Model_View_Base.FLAG_USER, "(Key not found)")}')
|
||||
return redirect(f"{current_app.config['URL_HOST']}{hash_callback}")
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user