Skip to content

Per-user enable/disable (suspend) с сохранением subId/uuid и ссылки подписки #89

Description

@Postlog

Приоритет: high · Размер: L · Бэклог-ранг: 7/20

Проблема

users (0001-init.sql:42-47) содержит только id/name/sub_id/created_at — нет колонки enabled; grep не находит концепта suspend/disable/active. Единственный рычаг отключения доступа — DeleteUser (service.go:253), разрушающий строку; пересоздание минтит новый sub_id (genID на service.go:184) → новый URL, который каждый клиент должен переимпортировать. Обратимо приостановить и восстановить доступ на той же ссылке невозможно.

Почему важно

Обратимый suspend (неоплата, абьюз, диагностика) с сохранением ссылки — базовая возможность подписочного сервера, полностью отсутствует. Высокая операторская ценность.

Предлагаемое решение

Флаг enabled на users (новая NNNN-миграция), тоггл в админке, путь провижининга, флипающий 3x-ui-клиента Enable (или снимающий/добавляющий привязки) с сохранением uuid/subId.

Затронутые файлы

  • internal/service/provisioning/service.go, internal/handlers/users_get/handler.go, migrations/0001-init.sql, internal/handlers/web/static/app.js

Из аудита кодовой базы subgen (10 подсистем → adversarial-верификация, 71 находка). Бэклог-ранг указан для приоритизации.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions