74 lines
2.1 KiB
Python
74 lines
2.1 KiB
Python
from flask import request, render_template, Blueprint, session, current_app, jsonify
|
|
from flask_security import roles_required, roles_accepted
|
|
from flask_wtf.csrf import generate_csrf
|
|
|
|
from .basic_forms import SessionDefaultsForm
|
|
|
|
basic_bp = Blueprint('basic_bp', __name__)
|
|
|
|
|
|
@basic_bp.before_request
|
|
def log_before_request():
|
|
current_app.logger.debug(f"Before request (basic_bp): {request.method} {request.url}")
|
|
|
|
|
|
@basic_bp.after_request
|
|
def log_after_request(response):
|
|
current_app.logger.debug(f"After request (basic_bp): {request.method} {request.url} - Status: {response.status}")
|
|
return response
|
|
|
|
|
|
@basic_bp.route('/', methods=['GET', ])
|
|
def index():
|
|
return render_template('index.html')
|
|
|
|
|
|
@basic_bp.route('/confirm_email_ok', methods=['GET', ])
|
|
def confirm_email_ok():
|
|
return render_template('basic/confirm_email_ok.html')
|
|
|
|
|
|
@basic_bp.route('/confirm_email_fail', methods=['GET', ])
|
|
def confirm_email_fail():
|
|
return render_template('basic/confirm_email_fail.html')
|
|
|
|
|
|
@basic_bp.route('/session_defaults', methods=['GET', 'POST'])
|
|
@roles_accepted('Super User', 'Tenant Admin')
|
|
def session_defaults():
|
|
form = SessionDefaultsForm()
|
|
|
|
if form.validate_on_submit():
|
|
session['default_language'] = form.default_language.data
|
|
|
|
return render_template('basic/session_defaults.html', form=form)
|
|
|
|
|
|
@basic_bp.route('/set_user_timezone', methods=['POST'])
|
|
def set_user_timezone():
|
|
data = request.get_json()
|
|
timezone = data.get('timezone')
|
|
|
|
if timezone:
|
|
session['admin_user_timezone'] = timezone
|
|
return jsonify({'status': 'success', 'timezone': timezone}), 200
|
|
else:
|
|
return jsonify({'status': 'error', 'message': 'Timezone not provided'}), 400
|
|
|
|
|
|
@basic_bp.route('/health', methods=['GET'])
|
|
def health():
|
|
return jsonify({'status': 'ok'}), 200
|
|
|
|
|
|
@basic_bp.route('/check_csrf', methods=['GET'])
|
|
def check_csrf():
|
|
csrf_token = generate_csrf()
|
|
return jsonify({
|
|
'csrf_token_in_session': session.get('csrf_token'),
|
|
'generated_csrf_token': csrf_token,
|
|
'session_id': session.sid if hasattr(session, 'sid') else None,
|
|
'session_data': dict(session)
|
|
})
|
|
|