diff --git a/handlers/admin/users/users_keys.py b/handlers/admin/users/users_keys.py index be7302fd..adbda4bd 100644 --- a/handlers/admin/users/users_keys.py +++ b/handlers/admin/users/users_keys.py @@ -38,7 +38,10 @@ from handlers.keys.operations import ( update_subscription, ) from handlers.utils import generate_random_email, handle_error +from hooks.hook_buttons import insert_hook_buttons +from hooks.processors import process_admin_key_edit_menu from logger import logger +from aiogram.utils.keyboard import InlineKeyboardBuilder from ..panel.keyboard import AdminPanelCallback, build_admin_back_btn, build_admin_back_kb from .keyboard import ( @@ -119,9 +122,18 @@ async def handle_key_edit( ) if not update or not getattr(callback_data, "edit", False): + kb_markup = build_key_edit_kb(key_obj.__dict__, email) + kb_builder = InlineKeyboardBuilder.from_markup(kb_markup) + hook_buttons = await process_admin_key_edit_menu( + email=email, + session=session, + client_id=key_obj.client_id, + tg_id=key_obj.tg_id, + ) + kb_builder = insert_hook_buttons(kb_builder, hook_buttons) await callback_query.message.edit_text( text=text, - reply_markup=build_key_edit_kb(key_obj.__dict__, email), + reply_markup=kb_builder.as_markup(), ) else: await callback_query.message.edit_text( diff --git a/hooks/processors.py b/hooks/processors.py index fd2ace81..6db106e0 100644 --- a/hooks/processors.py +++ b/hooks/processors.py @@ -453,6 +453,29 @@ async def process_view_key_menu( return [] +async def process_admin_key_edit_menu( + email: str, + session: Any, + **kwargs, +) -> list: + """ + Обрабатывает хук admin_key_edit_menu. + + Возвращает список кнопок для добавления в меню редактирования ключа в админке. + """ + try: + results = await run_hooks( + "admin_key_edit_menu", + email=email, + session=session, + **kwargs, + ) + return results if results else [] + except Exception as e: + logger.warning(f"[ADMIN_KEY_EDIT_MENU] Ошибка при обработке хука: {e}") + return [] + + async def process_after_hwid_reset( chat_id: int, session: Any,