diff --git a/scripts/manage_security.py b/scripts/manage_security.py index cfeadcf..59f7ee2 100644 --- a/scripts/manage_security.py +++ b/scripts/manage_security.py @@ -1,6 +1,40 @@ import sys import os from pathlib import Path + +_current_file = Path(__file__).resolve() +_script_dir = _current_file.parent +_app_dir = _script_dir.parent + +print(f"DEBUG: Script path: {_current_file}") +print(f"DEBUG: App dir: {_app_dir}") +print(f"DEBUG: Current working dir: {os.getcwd()}") + +if str(_app_dir) in sys.path: + sys.path.remove(str(_app_dir)) +sys.path.insert(0, str(_app_dir)) + +os.chdir(str(_app_dir)) + +print(f"DEBUG: sys.path[0]: {sys.path[0]}") +print(f"DEBUG: New working dir: {os.getcwd()}") + +_test_imports = [ + "database", + "database.db_config", + "database.models", + "services", + "security", +] + +print("\nDEBUG: Vérification des imports...") +for module in _test_imports: + try: + __import__(module) + print(f" ✅ {module}") + except ImportError as e: + print(f" ❌ {module}: {e}") + import asyncio import argparse import logging @@ -8,18 +42,17 @@ from datetime import datetime from sqlalchemy import select -from database.db_config import async_session_factory -from database.models.user import User -from database.models.api_key import SwaggerUser, ApiKey -from services.api_key import ApiKeyService -from security.auth import hash_password - -_script_dir = Path(__file__).resolve().parent -_app_dir = _script_dir.parent - -sys.path.insert(0, str(_app_dir)) -os.chdir(str(_app_dir)) - +try: + from database.db_config import async_session_factory + from database.models.user import User + from database.models.api_key import SwaggerUser, ApiKey + from services.api_key import ApiKeyService + from security.auth import hash_password +except ImportError as e: + print(f"\n❌ ERREUR D'IMPORT: {e}") + print(f" Vérifiez que vous êtes dans /app") + print(f" Commande correcte: cd /app && python scripts/manage_security.py ...") + sys.exit(1) logging.basicConfig(level=logging.INFO, format="%(levelname)s - %(message)s") logger = logging.getLogger(__name__) @@ -230,12 +263,12 @@ async def main(): formatter_class=argparse.RawDescriptionHelpFormatter, epilog=""" Exemples: - python scripts/manage_security.py swagger add admin MyP@ssw0rd - python scripts/manage_security.py swagger list - python scripts/manage_security.py apikey create "Mon App" --days 365 --rate-limit 100 - python scripts/manage_security.py apikey create "SDK-ReadOnly" --endpoints "/clients" "/clients/*" "/devis" "/devis/*" - python scripts/manage_security.py apikey list - python scripts/manage_security.py apikey verify sdk_live_xxxxx + python scripts/manage_security.py swagger add admin MyP@ssw0rd + python scripts/manage_security.py swagger list + python scripts/manage_security.py apikey create "Mon App" --days 365 --rate-limit 100 + python scripts/manage_security.py apikey create "SDK-ReadOnly" --endpoints "/clients" "/clients/*" "/devis" "/devis/*" + python scripts/manage_security.py apikey list + python scripts/manage_security.py apikey verify sdk_live_xxxxx """, ) subparsers = parser.add_subparsers(dest="command", help="Commandes")