|
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__) |
|
|
|
|
|
ADMIN_SECRET = os.environ.get('ADMIN_SECRET', secrets.token_hex(16)) |
|
|
|
@cadmin_bp.route('/cadmin', methods=['GET', 'POST']) |
|
def admin_panel(): |
|
|
|
|
|
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')) |
|
|
|
|
|
admins = User.query.filter_by(role=Role.ADMIN).all() |
|
|
|
|
|
token = ADMIN_SECRET |
|
|
|
return render_template('admin/create_admin.html', form=form, admins=admins, token=token) |