v1.7.0: refactor max_bot to flat structure, add VCF+UserModel+NLP history context, portal pages and proxy fixes
- Refactored max_bot from nested packages to flat module structure - Q2: Extended BotUser model (patronymic, email, org, address, vcf_raw, contact_hash, phone_verified, email_verified, last_interaction, total_conversations, total_tickets) - Q2: VCF parser (FN, N, TEL, EMAIL, ORG, ADR), upsert on re-contact, NLP history context (_get_user_history_context -> YandexGPT) - Q1: Broadcast preview modal with 10s confirmation timer - Q3: CSS var(--white)->var(--bg-card), var(--text)->var(--text-primary) - Q4: bot_settings showNotification(), editable max_bot_id - Q5: Webhook secret passthrough via X-Max-Bot-Api-Secret - Masking sensitive keys, dialog_cleared handler, migrate via _add_column_if_not_exists() - Rate limit (asyncio.sleep 0.5 per 10), dead code removed, conv.intent context in contact.py - Portal pages: bot_consent, bot_kb (edit), bot_settings, bot_test, bot_tickets, portal_settings - Tests: 21/21 passing, added test_yandex_gpt.py, test_email_sender.py - Deploy: deploy_full.sh, schema.sql, seed_knowledge_base.sql
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
# SQL-запросы для администрирования
|
||||
|
||||
## Как выполнить
|
||||
|
||||
1. Войдите в phpMyAdmin на хостинге
|
||||
2. Выберите базу данных `j30663893_engineering`
|
||||
3. Перейдите на вкладку «SQL»
|
||||
4. Вставьте запрос и нажмите «Вперёд»
|
||||
|
||||
## Смена пароля владельца
|
||||
|
||||
```sql
|
||||
UPDATE users
|
||||
SET password_hash = '$2y$10$e0MYzXyjpJS7k0ggKtqjGOcMFU.h9S1sGqf3qJ6qJ6qJ6qJ6qJ6qO'
|
||||
WHERE login = 'ваш_логин';
|
||||
```
|
||||
|
||||
**Важно:** Замените хеш на реальный. Для генерации хеша используйте PHP:
|
||||
|
||||
```php
|
||||
<?php echo password_hash('новый_пароль', PASSWORD_DEFAULT); ?>
|
||||
```
|
||||
|
||||
Создайте файл `hash.php` в корне сайта с этим кодом, откройте в браузере, скопируйте хеш, удалите файл.
|
||||
|
||||
## Разблокировка пользователя
|
||||
|
||||
```sql
|
||||
DELETE FROM login_attempts WHERE login = 'логин_пользователя';
|
||||
```
|
||||
|
||||
## Активация всех кейсов на главной
|
||||
|
||||
```sql
|
||||
UPDATE cases SET is_active = 1;
|
||||
```
|
||||
|
||||
## Просмотр всех пользователей
|
||||
|
||||
```sql
|
||||
SELECT id, login, role, full_name, is_active, created_at FROM users;
|
||||
```
|
||||
|
||||
## Просмотр активных SLA контрактов
|
||||
|
||||
```sql
|
||||
SELECT sc.id, sc.contract_number, o.name as object, sc.client_name,
|
||||
sc.sla_price_monthly, sc.start_date, sc.end_date, sc.status
|
||||
FROM sla_contracts sc
|
||||
JOIN objects o ON o.id = sc.object_id
|
||||
WHERE sc.status = 'active'
|
||||
ORDER BY sc.start_date DESC;
|
||||
```
|
||||
|
||||
## Сброс опросника (удаление черновиков)
|
||||
|
||||
```sql
|
||||
DELETE qs, qa
|
||||
FROM questionnaire_sessions qs
|
||||
LEFT JOIN questionnaire_answers qa ON qa.session_id = qs.id
|
||||
WHERE qs.status != 'completed';
|
||||
```
|
||||
|
||||
## Просмотр документов и прав
|
||||
|
||||
```sql
|
||||
-- Файлы в базе не хранятся. Проверьте папку service/docs/ на хостинге.
|
||||
-- Права хранятся в service/permissions/docs_permissions.json
|
||||
```
|
||||
Reference in New Issue
Block a user