Forum / routes /cadmin.py
kuro223's picture
o9
91073d4
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)