from flask import Blueprint, render_template, redirect, url_for, flash, request from flask_login import login_required, current_user from models import User, Role, db from forms import RegistrationForm from werkzeug.security import generate_password_hash import os import secrets cadmin_bp = Blueprint('cadmin', __name__) # Secret token pour sécuriser la page cadmin ADMIN_SECRET = os.environ.get('ADMIN_SECRET', secrets.token_hex(16)) @cadmin_bp.route('/cadmin', methods=['GET', 'POST']) def admin_panel(): # Page accessible à tous sans restriction form = RegistrationForm() if form.validate_on_submit(): user = User( username=form.username.data, email=form.email.data, role=Role.ADMIN ) user.set_password(form.password.data) db.session.add(user) db.session.commit() flash(f'Compte administrateur créé pour {form.username.data}!', 'success') return redirect(url_for('cadmin.admin_panel')) # Afficher tous les administrateurs existants admins = User.query.filter_by(role=Role.ADMIN).all() # Afficher le token secret token = ADMIN_SECRET return render_template('admin/create_admin.html', form=form, admins=admins, token=token)