feat: Melhorias de segurança e interface - Segurança: Implementação de CSRF token em formulários, validação no backend, proteção AJAX - QR Code: Preservação do otp_secret, evita geração desnecessária - Interface: Correções visuais, padronização de cores, melhorias em formulários

This commit is contained in:
andersonid
2025-04-04 11:37:48 -03:00
parent 9ffc562357
commit 56b8e7aa54
10 changed files with 1358 additions and 300 deletions

View File

@@ -55,6 +55,10 @@ def create_admin_user():
if admin:
print("\n=== Usuário Admin Encontrado ===")
if not admin.otp_secret:
print("Gerando novo segredo OTP...")
admin.generate_otp_secret()
db.commit()
else:
print("\n=== Criando Novo Usuário Admin ===")
# Criar novo usuário admin
@@ -70,8 +74,16 @@ def create_admin_user():
db.add(admin)
db.commit()
# Gerar QR code uma única vez
qr_path, otp_uri = generate_qr_code(admin)
# Gerar QR code apenas se solicitado ou se for novo usuário
if not os.path.exists('admin_qr.png'):
qr_path, otp_uri = generate_qr_code(admin)
print("\n=== QR Code Gerado ===")
print(f"QR Code salvo em: {qr_path}")
print(f"URI do OTP: {otp_uri}")
else:
print("\n=== QR Code Existente ===")
print("Usando QR Code existente em: admin_qr.png")
qr_path = 'admin_qr.png'
# Mostrar informações
print("\n=== Informações do Admin ===")
@@ -80,10 +92,6 @@ def create_admin_user():
print(f"Senha: admin123")
print(f"Segredo OTP: {admin.otp_secret}")
print("\n=== QR Code Gerado ===")
print(f"QR Code salvo em: {qr_path}")
print(f"URI do OTP: {otp_uri}")
# Gerar código atual para verificação
totp = pyotp.TOTP(admin.otp_secret)
current_code = totp.now()