Implement activation checks across various commands and queries
- Introduced `IRequiresActivation` interface to enforce activation requirements for multiple commands and queries, ensuring that only activated users can create, edit, or access configurations, news, and applications. - Updated the `RequireActivationBehavior` to handle activation checks uniformly, returning appropriate errors for unauthenticated or inactive users. - Enhanced error handling by adding `NotActivated` error to provide clear feedback for users attempting to access restricted features. - Updated documentation to reflect the new activation requirements and their implications on user access and functionality.
This commit is contained in:
@@ -73,8 +73,12 @@
|
||||
Понижение роли — грандфазеринг (лишние конфиги не отзываются, новые блокируются до входа в квоту).
|
||||
- **`limitIp`** выставляется автоматически по `MaxIpLimit` роли при создании клиента (`Create`/`Rotate`);
|
||||
панель не даёт настраивать его per-конфиг и не трогает уже созданных клиентов при смене роли/квоты.
|
||||
- **Активация**: новый пользователь `IsActivated=false`, роль `user`; конфиги создаёт только
|
||||
активированный. `ActivationRequest` одобряет админ на сайте или в Telegram — одними командами.
|
||||
- **Активация**: новый пользователь `IsActivated=false`, роль `user`; неактивированному недоступны
|
||||
конфиги (создание/просмотр/редактирование/ротация/отзыв/ссылка/подписка), новости и каталог
|
||||
приложений — единая проверка `RequireActivationBehavior` по маркеру `IRequiresActivation` (не
|
||||
разбросанные `if` в хендлерах). На фронте до активации доступны только дашборд (форма запроса
|
||||
активации) и настройки аккаунта. `ActivationRequest` одобряет админ на сайте или в Telegram —
|
||||
одними командами.
|
||||
- **Инбаунды по ролям** (`Inbound.AllowedRoles`, M:N): создание конфига проверяет активацию + квоту роли
|
||||
(в транзакции — гонки параллельных созданий) + `AllowedRoles` + включённость ноды.
|
||||
- **Блокировка** (`AppUser.IsBlocked`): вход запрещён + все конфиги `Disabled` в 3x-ui; в `AuditLog`.
|
||||
|
||||
Reference in New Issue
Block a user