Login ainda nao funciona mas esta quase
This commit is contained in:
78
create_admin.py
Normal file
78
create_admin.py
Normal file
@@ -0,0 +1,78 @@
|
||||
from functions.database import Usuario, Base, engine, get_db_connection
|
||||
import qrcode
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
def create_admin_user():
|
||||
try:
|
||||
# Criar as tabelas se não existirem
|
||||
Base.metadata.create_all(engine)
|
||||
|
||||
# Obter conexão com o banco
|
||||
db_session = get_db_connection()
|
||||
|
||||
# Verificar se já existe um admin
|
||||
admin = db_session.query(Usuario).filter_by(username="admin").first()
|
||||
|
||||
if not admin:
|
||||
# Criar usuário admin
|
||||
admin = Usuario(
|
||||
username="admin",
|
||||
password="admin123",
|
||||
is_admin=True
|
||||
)
|
||||
admin.email = "admin@example.com"
|
||||
|
||||
db_session.add(admin)
|
||||
db_session.commit()
|
||||
|
||||
print("\n=== Usuário Admin Criado com Sucesso ===")
|
||||
else:
|
||||
print("\n=== Usuário Admin Encontrado ===")
|
||||
|
||||
print(f"Username: admin")
|
||||
print(f"Senha: admin123")
|
||||
print(f"Segredo OTP: {admin.otp_secret}")
|
||||
|
||||
# Gerar QR Code
|
||||
qr = qrcode.QRCode(version=1, box_size=10, border=5)
|
||||
qr.add_data(admin.get_otp_uri())
|
||||
qr.make(fit=True)
|
||||
|
||||
# Encontrar o diretório raiz do projeto (onde está o app.py)
|
||||
current_dir = Path(__file__).resolve().parent
|
||||
project_root = current_dir.parent # Volta um nível para a raiz do projeto
|
||||
static_dir = project_root / 'static'
|
||||
|
||||
# Criar diretório static se não existir
|
||||
os.makedirs(static_dir, exist_ok=True)
|
||||
|
||||
# Caminho completo para o arquivo QR code
|
||||
qr_path = static_dir / 'admin_qr.png'
|
||||
|
||||
# Salvar QR Code como imagem
|
||||
img = qr.make_image(fill_color="black", back_color="white")
|
||||
img.save(str(qr_path))
|
||||
|
||||
print(f"\nQR Code salvo em: {qr_path}")
|
||||
print(f"Diretório atual: {os.getcwd()}")
|
||||
print(f"O arquivo existe? {os.path.exists(qr_path)}")
|
||||
|
||||
print("\nPasso a passo para configurar o OTP:")
|
||||
print("1. Instale um aplicativo autenticador no seu celular")
|
||||
print(" (Google Authenticator, Microsoft Authenticator, etc)")
|
||||
print("2. Abra o aplicativo")
|
||||
print("3. Selecione a opção para adicionar uma nova conta")
|
||||
print("4. Escaneie o QR Code gerado")
|
||||
print("\nOU, se preferir configuração manual:")
|
||||
print(f"1. Use o segredo: {admin.otp_secret}")
|
||||
print("2. Nome da conta: admin")
|
||||
print("3. Tipo: Baseado em tempo (TOTP)")
|
||||
|
||||
except Exception as e:
|
||||
print(f"\nErro durante a execução: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
if __name__ == "__main__":
|
||||
create_admin_user()
|
||||
Reference in New Issue
Block a user