Pequenas correções

- atualizando requirements
- gitignore com as extensoes de database
- garantindo admin com role associada
This commit is contained in:
2026-03-06 17:37:54 -03:00
parent bb9d7cf8a6
commit 246015563b
6 changed files with 23 additions and 15 deletions

2
.gitignore vendored
View File

@@ -260,6 +260,8 @@ poetry.toml
pyrightconfig.json
database.db
database.db-shm
database.db-wal
admin_qr.png
# End of https://www.toptal.com/developers/gitignore/api/python,flask

View File

@@ -16,6 +16,7 @@ clean:
rm -f admin_qr.png
rm -f data/admin_qr.png
rm -f /tmp/admin_qr.png
find . -type d -name "__pycache__" -prune -exec rm -rf {} +
db-reset: clean
PYTHONUNBUFFERED=1 python -B scripts/manage.py db_reset

View File

@@ -4,9 +4,9 @@ Sistema web para gestão organizacional (militantes, estrutura hierárquica, cot
## 🔧 Tecnologias
- **Backend**: Flask 2.3.3
- **Backend**: Flask 3.0.2
- **Frontend**: Bootstrap 5, HTML5, CSS3, JavaScript
- **Database**: SQLite + SQLAlchemy 2.0.21
- **Database**: SQLite + SQLAlchemy 2.0+ (>= 2.0.36)
- **Cache**: Redis 7.4.4 (opcional fora do Docker)
- **Authentication**: Flask-Login + OTP (pyotp)
- **Container**: Docker + Docker Compose
@@ -346,4 +346,4 @@ if user.has_minimum_role(Role.SECRETARIO_CELULA):
- Sessões expiram após período de inatividade
- Controle de acesso granular baseado em papéis
- Proteção contra CSRF
- Validação de entrada de dados
- Validação de entrada de dados

6
app.py
View File

@@ -5,7 +5,7 @@ import logging
import time
from pathlib import Path
from flask import Flask
from flask_bootstrap5 import Bootstrap
from flask_bootstrap import Bootstrap5
from flask_login import LoginManager
from flask_wtf.csrf import CSRFProtect
from flask_mail import Mail
@@ -72,7 +72,7 @@ def create_app():
setup_logging(app)
# Configurar Bootstrap
bootstrap = Bootstrap(app)
bootstrap = Bootstrap5(app)
# Configurar CSRF Protection (desabilitado temporariamente)
# csrf = CSRFProtect()
@@ -183,4 +183,4 @@ if __name__ == '__main__':
host='0.0.0.0',
port=5000,
debug=os.getenv('FLASK_ENV') == 'development'
)
)

View File

@@ -1,14 +1,19 @@
Flask==2.3.3
Flask-Bootstrap5==0.1.dev1
Flask==3.0.2
Flask-SQLAlchemy==3.1.1
Flask-Login==0.6.3
Flask-WTF==1.1.1
Flask-WTF==1.2.1
Flask-Mail==0.9.1
SQLAlchemy>=2.0.36
Werkzeug==2.3.7
python-dotenv==1.0.0
pyotp==2.8.0
Werkzeug==3.0.1
python-dotenv==1.0.1
pyotp==2.9.0
qrcode==7.4.2
Pillow>=10.4.0
redis==5.0.1
email-validator==2.3.0
cryptography==42.0.2
bcrypt==4.1.2
Bootstrap-Flask==2.3.3
PyJWT==2.8.0
gunicorn==21.2.0
faker==19.13.0
Faker==19.13.0
redis==5.0.1

View File

@@ -89,10 +89,10 @@ def create_admin(username=ADMIN_USERNAME, password=ADMIN_PASSWORD, role=ADMIN_RO
is_admin=True
)
admin_user.set_password(password)
db.add(admin_user)
_ensure_admin_otp(db, admin_user)
_ensure_admin_role(db, admin_user, role)
db.add(admin_user)
db.commit()
qr_path = salvar_qr_code(admin_user)