From 246015563b9e55fceac1279cc2af9fff865d2d07 Mon Sep 17 00:00:00 2001 From: Mateus Tavares Date: Fri, 6 Mar 2026 17:37:54 -0300 Subject: [PATCH] =?UTF-8?q?Pequenas=20corre=C3=A7=C3=B5es=20-=20atualizand?= =?UTF-8?q?o=20requirements=20-=20gitignore=20com=20as=20extensoes=20de=20?= =?UTF-8?q?database=20-=20garantindo=20admin=20com=20role=20associada?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ Makefile | 1 + README.md | 6 +++--- app.py | 6 +++--- requirements.txt | 21 +++++++++++++-------- scripts/create_admin.py | 2 +- 6 files changed, 23 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index d7ed51a..e7f0f7f 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/Makefile b/Makefile index fa34057..f4d6597 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/README.md b/README.md index 0c9145c..f9d0a62 100644 --- a/README.md +++ b/README.md @@ -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 \ No newline at end of file +- Validação de entrada de dados diff --git a/app.py b/app.py index 90a318a..3f44a34 100644 --- a/app.py +++ b/app.py @@ -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' - ) \ No newline at end of file + ) diff --git a/requirements.txt b/requirements.txt index a4f6caa..1f1e85b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -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 diff --git a/scripts/create_admin.py b/scripts/create_admin.py index d7c0d47..45831f4 100644 --- a/scripts/create_admin.py +++ b/scripts/create_admin.py @@ -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)