diff --git a/handlers/legal_advisor.py b/handlers/legal_advisor.py
index af94ca6..a4b52a1 100644
--- a/handlers/legal_advisor.py
+++ b/handlers/legal_advisor.py
@@ -106,6 +106,14 @@ async def determine_user_role(user_id: int) -> str:
@router.message(F.text.casefold().startswith(("/юрист", "/jurist")))
async def cmd_legal_advisor(message: Message, state: FSMContext, bot: Bot):
role = await determine_user_role(message.from_user.id)
+ if role not in ("admin", "lawyer"):
+ await message.answer(
+ "🔒 Модуль юридической аналитики находится в режиме калибровки Советом Дома.\n\n"
+ "Доступ открывается индивидуально администратором (@ktybdsq).\n"
+ "Если вам требуется консультация по протечкам, тарифам или судебным спорам — напишите председателю Совета Дома.",
+ parse_mode='HTML'
+ )
+ return
# Проверяем, не задал ли пользователь вопрос прямо в команде: /юрист Какой срок ответа?
parts = (message.text or "").split(maxsplit=1)
@@ -125,7 +133,6 @@ async def cmd_legal_advisor(message: Message, state: FSMContext, bot: Bot):
role_desc = {
"admin": "👑 Режим Стратегического Аналитика (Администратор)",
"lawyer": "⚖️ Режим Судебного Юриста (Совет дома / Активист)",
- "resident": "🏡 Соседский Юридический Помощник"
}.get(role, "🏡 Юридический Помощник")
text = (
@@ -141,10 +148,18 @@ async def cmd_legal_advisor(message: Message, state: FSMContext, bot: Bot):
async def cb_legal_advisor(callback: CallbackQuery, state: FSMContext):
await callback.answer()
role = await determine_user_role(callback.from_user.id)
+ if role not in ("admin", "lawyer"):
+ await callback.message.answer(
+ "🔒 Модуль юридической аналитики находится в режиме калибровки Советом Дома.\n\n"
+ "Доступ открывается индивидуально администратором (@ktybdsq).\n"
+ "Если вам требуется консультация по протечкам, тарифам или судебным спорам — напишите председателю Совета Дома.",
+ parse_mode='HTML'
+ )
+ return
+
role_desc = {
"admin": "👑 Режим Стратегического Аналитика (Администратор)",
"lawyer": "⚖️ Режим Судебного Юриста (Совет дома / Активист)",
- "resident": "🏡 Соседский Юридический Помощник"
}.get(role, "🏡 Юридический Помощник")
text = (
@@ -162,6 +177,15 @@ async def cb_legal_advisor(callback: CallbackQuery, state: FSMContext):
async def process_text_legal_question(message: Message, state: FSMContext, bot: Bot):
user_id = message.from_user.id
role = await determine_user_role(user_id)
+ if role not in ("admin", "lawyer"):
+ await message.answer(
+ "🔒 Модуль юридической аналитики находится в режиме калибровки Советом Дома.\n\n"
+ "Доступ открывается индивидуально администратором (@ktybdsq).",
+ parse_mode='HTML'
+ )
+ await state.clear()
+ return
+
question = message.text
status_msg = await message.answer(
@@ -197,18 +221,26 @@ async def process_text_legal_question(message: Message, state: FSMContext, bot:
)
else:
# В личном диалоге отвечаем напрямую
- header = f"⚖️ Юридический совет ({result.get('latency_sec')} сек):"
+ header = f"⚖️ Юридический ответ ({result.get('latency_sec')} сек):"
await send_split_message(message, header, result["text"])
await state.clear()
-# === ОБРАБОТКА ГОЛОСОВЫХ ВОПРОСОВ (НА ТИВНОЕ МУЛЬТИМОДАЛЬНОЕ РАСПОЗНАВАНИЕ) ===
+# === ОБРАБОТКА ГОЛОСОВЫХ ВОПРОСОВ (НАТИВНОЕ МУЛЬТИМОДАЛЬНОЕ РАСПОЗНАВАНИЕ) ===
@router.message(LegalQuestionState.waiting_for_question, F.voice)
@router.message(F.voice & F.chat.type == "private")
async def process_voice_legal_question(message: Message, state: FSMContext, bot: Bot):
user_id = message.from_user.id
role = await determine_user_role(user_id)
+ if role not in ("admin", "lawyer"):
+ await message.answer(
+ "🔒 Модуль юридической аналитики находится в режиме калибровки Советом Дома.\n\n"
+ "Доступ открывается индивидуально администратором (@ktybdsq).",
+ parse_mode='HTML'
+ )
+ await state.clear()
+ return
status_msg = await message.answer(
"🎙 Слушаю голосовое сообщение и сопоставляю с законами РФ...",