Add logging for user updates and superuser status changes in CRUD and admin handlers. Fix user attribute indexing in database operations. Enhance user creation logging in user service.
This commit is contained in:
@@ -269,6 +269,8 @@ class UserCRUD(BaseCRUD):
|
|||||||
@track_db_operation("UPDATE", "users")
|
@track_db_operation("UPDATE", "users")
|
||||||
async def update(self, user: User) -> User:
|
async def update(self, user: User) -> User:
|
||||||
"""Обновление пользователя"""
|
"""Обновление пользователя"""
|
||||||
|
if self.logger:
|
||||||
|
self.logger.info(f"👤 Обновление пользователя: {user.telegram_id} (is_superuser: {user.is_superuser})")
|
||||||
async with self.get_connection() as conn:
|
async with self.get_connection() as conn:
|
||||||
await conn.execute("""
|
await conn.execute("""
|
||||||
UPDATE users SET
|
UPDATE users SET
|
||||||
@@ -284,6 +286,8 @@ class UserCRUD(BaseCRUD):
|
|||||||
user.ban_reason, user.telegram_id
|
user.ban_reason, user.telegram_id
|
||||||
))
|
))
|
||||||
await conn.commit()
|
await conn.commit()
|
||||||
|
if self.logger:
|
||||||
|
self.logger.info(f"✅ Пользователь обновлен: {user.telegram_id}")
|
||||||
return user
|
return user
|
||||||
|
|
||||||
@track_db_operation("DELETE", "users")
|
@track_db_operation("DELETE", "users")
|
||||||
@@ -386,11 +390,11 @@ class UserCRUD(BaseCRUD):
|
|||||||
chat_id=row[5],
|
chat_id=row[5],
|
||||||
profile_link=row[6],
|
profile_link=row[6],
|
||||||
is_active=bool(row[7]),
|
is_active=bool(row[7]),
|
||||||
is_superuser=bool(row[12]), # Исправлено: is_superuser находится на позиции 12
|
is_superuser=bool(row[8]), # Исправлено: is_superuser находится на позиции 8
|
||||||
created_at=self._parse_datetime(row[8]),
|
created_at=self._parse_datetime(row[9]),
|
||||||
updated_at=self._parse_datetime(row[9]),
|
updated_at=self._parse_datetime(row[10]),
|
||||||
banned_until=self._parse_datetime(row[10]),
|
banned_until=self._parse_datetime(row[11]),
|
||||||
ban_reason=row[11]
|
ban_reason=row[12]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -441,9 +441,12 @@ async def confirm_superuser_callback(callback: CallbackQuery, database: Database
|
|||||||
async def remove_superuser_callback(callback: CallbackQuery, database: DatabaseService = None, validator = None):
|
async def remove_superuser_callback(callback: CallbackQuery, database: DatabaseService = None, validator = None):
|
||||||
"""Обработчик снятия прав суперпользователя"""
|
"""Обработчик снятия прав суперпользователя"""
|
||||||
|
|
||||||
|
logger.info(f"🔧 Обработка снятия прав суперпользователя: {callback.data}")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Извлекаем ID пользователя
|
# Извлекаем ID пользователя
|
||||||
user_id_str = callback.data.split("_")[-1]
|
user_id_str = callback.data.split("_")[-1]
|
||||||
|
logger.info(f"🔧 Извлечен user_id: {user_id_str}")
|
||||||
|
|
||||||
# Валидируем callback data
|
# Валидируем callback data
|
||||||
if validator:
|
if validator:
|
||||||
@@ -474,12 +477,16 @@ async def remove_superuser_callback(callback: CallbackQuery, database: DatabaseS
|
|||||||
# Получаем пользователя
|
# Получаем пользователя
|
||||||
user = await database.get_user(user_id)
|
user = await database.get_user(user_id)
|
||||||
if not user:
|
if not user:
|
||||||
|
logger.warning(f"⚠️ Пользователь с ID {user_id} не найден")
|
||||||
await callback.answer("❌ Пользователь не найден", show_alert=True)
|
await callback.answer("❌ Пользователь не найден", show_alert=True)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
logger.info(f"🔧 Найден пользователь: {user.display_name}, текущий статус суперпользователя: {user.is_superuser}")
|
||||||
|
|
||||||
# Снимаем права суперпользователя
|
# Снимаем права суперпользователя
|
||||||
user.is_superuser = False
|
user.is_superuser = False
|
||||||
await database.update_user(user)
|
await database.update_user(user)
|
||||||
|
logger.info(f"✅ Права суперпользователя сняты для пользователя {user.display_name}")
|
||||||
|
|
||||||
await callback.message.edit_text(
|
await callback.message.edit_text(
|
||||||
f"❌ <b>Права сняты!</b>\n\n"
|
f"❌ <b>Права сняты!</b>\n\n"
|
||||||
|
|||||||
@@ -77,10 +77,12 @@ class UserService:
|
|||||||
chat_id=chat_id,
|
chat_id=chat_id,
|
||||||
profile_link=self.utils.generate_anonymous_id(),
|
profile_link=self.utils.generate_anonymous_id(),
|
||||||
is_active=True,
|
is_active=True,
|
||||||
|
is_superuser=False, # Явно устанавливаем False для новых пользователей
|
||||||
created_at=datetime.now(),
|
created_at=datetime.now(),
|
||||||
updated_at=datetime.now()
|
updated_at=datetime.now()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
logger.info(f"👤 Создание нового пользователя {telegram_user.id} с is_superuser={user.is_superuser}")
|
||||||
return await self.database.create_user(user)
|
return await self.database.create_user(user)
|
||||||
|
|
||||||
@log_function_call(log_params=True, log_result=True)
|
@log_function_call(log_params=True, log_result=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user