update admin create user
Browse files- modules/admin/admin_ui.py +1 -1
- modules/database/mongo_db.py +5 -0
- modules/database/sql_db.py +13 -6
modules/admin/admin_ui.py
CHANGED
|
@@ -14,7 +14,7 @@ from ..database.sql_db import (
|
|
| 14 |
get_user_total_time
|
| 15 |
)
|
| 16 |
|
| 17 |
-
from ..database.morphosintax_mongo_db import get_student_morphosyntax_analysis
|
| 18 |
from ..auth.auth import hash_password # Agregar esta importación al inicio
|
| 19 |
|
| 20 |
#######################################################################################
|
|
|
|
| 14 |
get_user_total_time
|
| 15 |
)
|
| 16 |
|
| 17 |
+
#from ..database.morphosintax_mongo_db import get_student_morphosyntax_analysis
|
| 18 |
from ..auth.auth import hash_password # Agregar esta importación al inicio
|
| 19 |
|
| 20 |
#######################################################################################
|
modules/database/mongo_db.py
CHANGED
|
@@ -3,6 +3,7 @@ import logging
|
|
| 3 |
|
| 4 |
logger = logging.getLogger(__name__)
|
| 5 |
|
|
|
|
| 6 |
def get_collection(collection_name):
|
| 7 |
try:
|
| 8 |
db = get_mongodb()
|
|
@@ -18,6 +19,7 @@ def get_collection(collection_name):
|
|
| 18 |
logger.error(f"Error al obtener colección {collection_name}: {str(e)}")
|
| 19 |
return None
|
| 20 |
|
|
|
|
| 21 |
def insert_document(collection_name, document):
|
| 22 |
collection = get_collection(collection_name)
|
| 23 |
try:
|
|
@@ -28,6 +30,7 @@ def insert_document(collection_name, document):
|
|
| 28 |
logger.error(f"Error al insertar documento en {collection_name}: {str(e)}")
|
| 29 |
return None
|
| 30 |
|
|
|
|
| 31 |
def find_documents(collection_name, query, sort=None, limit=None):
|
| 32 |
collection = get_collection(collection_name)
|
| 33 |
try:
|
|
@@ -41,6 +44,7 @@ def find_documents(collection_name, query, sort=None, limit=None):
|
|
| 41 |
logger.error(f"Error al buscar documentos en {collection_name}: {str(e)}")
|
| 42 |
return []
|
| 43 |
|
|
|
|
| 44 |
def update_document(collection_name, query, update):
|
| 45 |
collection = get_collection(collection_name)
|
| 46 |
try:
|
|
@@ -51,6 +55,7 @@ def update_document(collection_name, query, update):
|
|
| 51 |
logger.error(f"Error al actualizar documento en {collection_name}: {str(e)}")
|
| 52 |
return 0
|
| 53 |
|
|
|
|
| 54 |
def delete_document(collection_name, query):
|
| 55 |
collection = get_collection(collection_name)
|
| 56 |
try:
|
|
|
|
| 3 |
|
| 4 |
logger = logging.getLogger(__name__)
|
| 5 |
|
| 6 |
+
############################################################
|
| 7 |
def get_collection(collection_name):
|
| 8 |
try:
|
| 9 |
db = get_mongodb()
|
|
|
|
| 19 |
logger.error(f"Error al obtener colección {collection_name}: {str(e)}")
|
| 20 |
return None
|
| 21 |
|
| 22 |
+
############################################################
|
| 23 |
def insert_document(collection_name, document):
|
| 24 |
collection = get_collection(collection_name)
|
| 25 |
try:
|
|
|
|
| 30 |
logger.error(f"Error al insertar documento en {collection_name}: {str(e)}")
|
| 31 |
return None
|
| 32 |
|
| 33 |
+
############################################################
|
| 34 |
def find_documents(collection_name, query, sort=None, limit=None):
|
| 35 |
collection = get_collection(collection_name)
|
| 36 |
try:
|
|
|
|
| 44 |
logger.error(f"Error al buscar documentos en {collection_name}: {str(e)}")
|
| 45 |
return []
|
| 46 |
|
| 47 |
+
############################################################
|
| 48 |
def update_document(collection_name, query, update):
|
| 49 |
collection = get_collection(collection_name)
|
| 50 |
try:
|
|
|
|
| 55 |
logger.error(f"Error al actualizar documento en {collection_name}: {str(e)}")
|
| 56 |
return 0
|
| 57 |
|
| 58 |
+
############################################################
|
| 59 |
def delete_document(collection_name, query):
|
| 60 |
collection = get_collection(collection_name)
|
| 61 |
try:
|
modules/database/sql_db.py
CHANGED
|
@@ -4,6 +4,7 @@ from .database_init import get_container
|
|
| 4 |
from datetime import datetime, timezone
|
| 5 |
import logging
|
| 6 |
import bcrypt
|
|
|
|
| 7 |
import uuid
|
| 8 |
|
| 9 |
logger = logging.getLogger(__name__)
|
|
@@ -47,13 +48,16 @@ def create_user(username, password, role, additional_info=None):
|
|
| 47 |
'id': username,
|
| 48 |
'password': password,
|
| 49 |
'role': role,
|
| 50 |
-
'timestamp': datetime.now(timezone.utc),
|
| 51 |
'additional_info': additional_info or {},
|
| 52 |
-
'partitionKey': username
|
| 53 |
}
|
| 54 |
|
| 55 |
-
#
|
| 56 |
-
|
|
|
|
|
|
|
|
|
|
| 57 |
logger.info(f"Usuario {role} creado: {username}")
|
| 58 |
return True
|
| 59 |
|
|
@@ -87,12 +91,15 @@ def record_login(username):
|
|
| 87 |
"id": session_id,
|
| 88 |
"type": "session",
|
| 89 |
"username": username,
|
| 90 |
-
"loginTime": datetime.now(timezone.utc),
|
| 91 |
"additional_info": {},
|
| 92 |
"partitionKey": username
|
| 93 |
}
|
| 94 |
|
| 95 |
-
|
|
|
|
|
|
|
|
|
|
| 96 |
logger.info(f"Sesión {session_id} registrada para {username}")
|
| 97 |
return session_id
|
| 98 |
except Exception as e:
|
|
|
|
| 4 |
from datetime import datetime, timezone
|
| 5 |
import logging
|
| 6 |
import bcrypt
|
| 7 |
+
import bson import json_util
|
| 8 |
import uuid
|
| 9 |
|
| 10 |
logger = logging.getLogger(__name__)
|
|
|
|
| 48 |
'id': username,
|
| 49 |
'password': password,
|
| 50 |
'role': role,
|
| 51 |
+
'timestamp': datetime.now(timezone.utc), # ← Se mantiene como datetime
|
| 52 |
'additional_info': additional_info or {},
|
| 53 |
+
'partitionKey': username
|
| 54 |
}
|
| 55 |
|
| 56 |
+
# Convertir usando json_util antes de enviar a Cosmos DB
|
| 57 |
+
user_data_json = json.loads(json_util.dumps(user_data))
|
| 58 |
+
|
| 59 |
+
# Crear item con los datos convertidos
|
| 60 |
+
container.create_item(body=user_data_json)
|
| 61 |
logger.info(f"Usuario {role} creado: {username}")
|
| 62 |
return True
|
| 63 |
|
|
|
|
| 91 |
"id": session_id,
|
| 92 |
"type": "session",
|
| 93 |
"username": username,
|
| 94 |
+
"loginTime": datetime.now(timezone.utc), # ← Se mantiene como datetime
|
| 95 |
"additional_info": {},
|
| 96 |
"partitionKey": username
|
| 97 |
}
|
| 98 |
|
| 99 |
+
# Convertir usando json_util
|
| 100 |
+
session_json = json.loads(json_util.dumps(session_doc))
|
| 101 |
+
|
| 102 |
+
result = container.create_item(body=session_json)
|
| 103 |
logger.info(f"Sesión {session_id} registrada para {username}")
|
| 104 |
return session_id
|
| 105 |
except Exception as e:
|