access v0.1.0 [core]


Единый владелец ADMIN_IDS и операций над правами (сидинг, таргеты).

versiondatecommitфайлов
0.1.02026-09-1791610a9fc1555

README

# access

Единый владелец ID администраторов и операций над правами (сидинг, таргеты). Все модули спрашивают «кто админ и у кого какое право» только здесь.

Тип: Модуль. Категория: `core`. Зависимостей нет.

## Описание

- Держит список TG-администраторов и отдаёт его через API. Файл прав принадлежит ядру: чтение — живое, без кешей, запись — атомарно через сервис.
- При старте делает сидинг: выдаёт админам из `ADMIN_IDS` положенные права и вычищает мусор (ключи `telegram:*`, которых нет в списке). Ручные правки файла прав при живом боте сид перезапишет.
- Считает получателей рассылок: кому слать уведомление с конкретным правом, включая флаг «без звука».
- Умеет добавлять/убирать админа: правит `.env` и сразу просидирует права.

## Возможности

- `access.admin_ids {}` → TG id администраторов, единственный источник списка
- `access.is_admin {uid}` → входит ли пользователь в `ADMIN_IDS`
- `access.get_right {uid, key}` → живое значение права
- `access.toggle_right {key: 'ns:id', right}` → переключить право, вернуть новое значение
- `access.notify_targets {right}` → получатели рассылки с этим правом `(chat_id, no_sound)`
- `access.seed {}` → прогнать сидинг вручную (синхронизация с `ADMIN_IDS` + чистка чужих `telegram:*`)
- `access.add_admin {uid}` → добавить TG-админа (дописать в `.env` + сид)
- `access.remove_admin {uid}` → убрать TG-админа (из `.env` и из прав)

## Конфигурация (`config.schema.json`)

- Обязательных нет.
- Опциональные:
  - `ADMIN_IDS` = `123456789,987654321` — TG id администраторов через запятую

Манифест

{
  "name": "access",
  "version": "0.1.0",
  "category": "core",
  "description": "Единый владелец ADMIN_IDS и операций над правами (сидинг, таргеты).",
  "requires": [],
  "rights": [],
  "api_methods": [],
  "web_routes": [],
  "commit": "91610a9fc1556c139f02139ef0fd9a4504251dcf",
  "updated": "2026-09-17 12:26:56 +0300",
  "integrity": "sha256:f2cf9a4564fa20a9a2f3389e6b288865cf942fcb93d9be23db2d71af7cdc9951",
  "files": "[5 файлов — см. вкладки ниже]",
  "note": "",
  "wdesc": "",
  "wbody": "",
  "_extra": {
    "api": "",
    "events_emitted": "[]",
    "events_subscribed": "[]",
    "config_schema": "config.schema.json",
    "env_example": ".env.example"
  }
}

Файлы и исходники

Дерево файлов

  • · корень
    • 2.4 КБ
    • 0.1 КБ
    • 8.0 КБ
    • 1.8 КБ
    • 2.2 КБ

Предпросмотр

Выберите файл в дереве выше — код откроется здесь.