Права доступа и приглашения
Зачем это нужно
Документация — не всегда публичная. Архитектурные решения, планы,
роадмепы, внутренние процессы — вещь чувствительная. При этом внутри
компании доступ нужно давать гибко: джунам только читать, сеньорам
редактировать, подрядчикам — видеть один проект и не видеть другие.
В Nextdocs есть четырёхуровневая модель прав, которая закрывает
большинство сценариев без перегруза.
Четыре роли
Роль | Что может |
|---|---|
Owner | Всё что Admin + удалить проект целиком. Единственная роль, которая не может быть отозвана. Проект создаёт автоматически owner'ом его создатель. |
Admin | Приглашать других, менять роли, редактировать любой контент, привязывать / отвязывать репозитории, удалять страницы. Не может удалить сам проект. |
Editor | Редактировать страницы, создавать новые, комментировать, упоминать. Не видит админских панелей. Не может менять права. |
Reader | Только чтение. Может оставлять комментарии и упоминания (это не считается «редактированием»). Не видит кнопки добавления / удаления страниц. |
Приглашение нового участника
На странице проекта в меню шестерёнки → Share / Manage access.
Открывается модальное окно:
Поле «Invite by email or name» — начните вводить email либо имя /
логин. Если у пользователя уже есть аккаунт в Nextdocs и у вас
есть хоть один общий проект — он подтянется в автокомплит.Если его нет — введите полный email и нажмите «Invite». Он
получит письмо со ссылкой для регистрации.Выберите роль: Reader / Editor / Admin.
Клик Invite.
Приглашённый:
Если уже зарегистрирован — получит уведомление в колокольчике
«Вас добавили в проект X».Если нет аккаунта — получит email со ссылкой «Создать аккаунт и
перейти в проект».
Публичные проекты
Проекты с visibility: public:
Читать могут все — даже не залогиненные. Страницы открываются
по прямой ссылке без авторизации.Редактировать могут только участники — для правок всё равно
нужно быть Editor / Admin / Owner.Индексируются Google (см. отдельный пункт про SEO ниже).
Публичность полезна для open source документации, публичных спек,
маркетингового контента.
Уровни прав
Права выдаются на три уровня:
Project-level — «Alice is Editor of project Foo». Она видит
все страницы проекта, может редактировать все.Page-level — «Bob is Reader of page /design/architecture».
Видит только эту страницу (и подпункты, если они тоже в scope
его прав).Repository-level — «Carol is Reader of repo nextdocs/api».
Может привязать эту репу к своим проектам и искать по её коду, но
не может просматривать проекты, использующие эту репу.
В обычной жизни 99% прав выдаются на project-level. Page-level
пригождается для confidential-страниц внутри общего проекта.
Управление правами
На странице проекта в Share-модалке:
Список участников с указанием роли.
Кнопка рядом с ролью — изменить на другую.
Кнопка «Remove» — убрать доступ полностью. Этот человек
перестаёт видеть проект, ему может прийти уведомление «ваш доступ
был отозван» (opt-out'но).
Ссылка-приглашение
Альтернатива emailу — ссылка-приглашение в Share-модалке:
Copy invite link → скопировалась короткая ссылка с токеном.
Кому-то даёте её (Slack, мессенджер). Перешедший залогинивается
(или регистрируется) — и автоматически получает заданную роль.Revoke link — инвалидирует токен, ссылка перестаёт работать
(те, кто уже использовал, остаются в проекте).
Удобно для приглашения пачки людей одним действием.
Lock / freeze проекта
Для проектов, которые стали «архивом» (продукт закрыт, команда
расформирована, но документация ценна), Owner может включить
Lock project:
Все Editor / Admin теряют право редактирования (остаётся чтение).
Новые приглашения заблокированы.
Снять lock может только Owner.
Это мягкий механизм — не удаление, а «заморозка».
Что видят разные роли
Reader:
Дерево страниц, редактор в read-only режиме, комментарии.
Вкладки History, Outline — видны.
Кнопки создания / удаления страниц — не видны.
Share-модалка открывается, но без права редактирования
участников.
Editor:
Всё что Reader + кнопки «+» в дереве, удаление страниц,
редактирование контента.Share-модалка открывается, но может добавить только
Reader-ов и Editor-ов (не Admin).
Admin:
Всё что Editor + смена ролей участников, привязка репозиториев,
создание тегов, перенос проекта в архив.
Owner:
Всё что Admin + удаление проекта, переключение visibility public
↔ private, передача owner-прав другому человеку.
Приглашения через SSO / домен
Для корпоративных клиентов: если настроена интеграция с SSO
провайдером, любой сотрудник компании автоматически может
запрашивать доступ через «Request access» (кнопка на странице
403). Админам проекта приходит уведомление, они одним кликом
подтверждают.
Ограничения
Audit log прав (кто когда кому выдал) — отдельной страницей
пока нет. Факт выдачи / отзыва виден в Activity feed.Группы пользователей (например «все инженеры» в одном
клике) — в планах. Сейчас — только per-user.Expiry для приглашений — пока нет. Приглашение — постоянное,
пока Owner / Admin не отзовёт вручную.Page-level права выдаются вручную по одной странице. Для большого
количества страниц подряд удобнее создать суб-проект.
Типовые сценарии
Новый член команды. Admin заходит в Share-модалку, вводит его
email, выбирает Editor, Invite. Человек получает инвайт-письмо,
через 2 минуты уже в проекте.
Вылетающий сотрудник. Admin в Share-модалке → Remove. Сотрудник
теряет доступ в момент клика. Никакой очистки кеша — всё что он
успел загрузить в браузер, станет 403 при следующем запросе.
Внешний контрактор получает доступ к одному разделу. Admin
находит конкретную страницу, на её шестерёнке → Share → приглашает
контрактора как Reader. Выдаётся page-level права, в проект целиком
он не попадает.
Публикация release notes. Project → Visibility: public. Всех
посторонних можно оставить без приглашения — они откроют по ссылке
без аккаунта. Делитесь в блоге / твиттере.