- Modernized authentication with the introduction of TenantProject
- Created a base mail template - Adapt and improve document API to usage of catalogs and processors - Adapt eveai_sync to new authentication mechanism and usage of catalogs and processors
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
from flask import request, render_template, Blueprint, session, current_app, jsonify
|
||||
from flask import request, render_template, Blueprint, session, current_app, jsonify, flash, redirect
|
||||
from flask_security import roles_required, roles_accepted
|
||||
from flask_wtf.csrf import generate_csrf
|
||||
|
||||
from common.models.document import Catalog
|
||||
from common.models.user import Tenant
|
||||
from common.utils.database import Database
|
||||
from common.utils.nginx_utils import prefixed_url_for
|
||||
from .basic_forms import SessionDefaultsForm
|
||||
|
||||
basic_bp = Blueprint('basic_bp', __name__)
|
||||
@@ -9,7 +13,7 @@ basic_bp = Blueprint('basic_bp', __name__)
|
||||
|
||||
@basic_bp.before_request
|
||||
def log_before_request():
|
||||
pass
|
||||
current_app.logger.debug(f'Before request: {request.path} =====================================')
|
||||
|
||||
|
||||
@basic_bp.after_request
|
||||
@@ -35,12 +39,39 @@ def confirm_email_fail():
|
||||
@basic_bp.route('/session_defaults', methods=['GET', 'POST'])
|
||||
@roles_accepted('Super User', 'Tenant Admin')
|
||||
def session_defaults():
|
||||
form = SessionDefaultsForm()
|
||||
try:
|
||||
# Get tenant session
|
||||
tenant_id = session.get('tenant').get('id')
|
||||
tenant_db = Database(tenant_id)
|
||||
tenant_session = tenant_db.get_session()
|
||||
|
||||
if form.validate_on_submit():
|
||||
session['default_language'] = form.default_language.data
|
||||
try:
|
||||
form = SessionDefaultsForm()
|
||||
|
||||
return render_template('basic/session_defaults.html', form=form)
|
||||
if form.validate_on_submit():
|
||||
session['default_language'] = form.default_language.data
|
||||
if form.catalog.data:
|
||||
catalog_id = int(form.catalog.data)
|
||||
catalog = tenant_session.query(Catalog).get(catalog_id)
|
||||
if catalog:
|
||||
session['catalog_id'] = catalog.id
|
||||
session['catalog_name'] = catalog.name
|
||||
else:
|
||||
session.pop('catalog_id', None)
|
||||
session.pop('catalog_name', None)
|
||||
|
||||
flash('Session defaults updated successfully', 'success')
|
||||
return redirect(prefixed_url_for('basic_bp.index'))
|
||||
|
||||
return render_template('basic/session_defaults.html', form=form)
|
||||
|
||||
finally:
|
||||
tenant_session.close()
|
||||
|
||||
except Exception as e:
|
||||
current_app.logger.error(f"Error in session_defaults: {str(e)}")
|
||||
flash('Error accessing catalog data. Please ensure your session is valid.', 'danger')
|
||||
return redirect(prefixed_url_for('security_bp.login'))
|
||||
|
||||
|
||||
@basic_bp.route('/set_user_timezone', methods=['POST'])
|
||||
|
||||
Reference in New Issue
Block a user