Роли и разрешения
В BookStack возможности пользователя определяются ролями, которые ему присвоены, и соответствующими разрешениями. Пользователю может быть назначено несколько ролей, в этом случае разрешения суммируются, и пользователь получает любую способность, если хотя бы одна из ролей предоставляет эту возможность.
Управление ролями
Роли могут быть созданы и отредактированы администратором путем перехода в раздел «Настройки > Роли» в интерфейсе BookStack. В новом экземпляре BookStack предоставляется набор стандартных ролей для распространенных случаев использования. При изменении роли вы сможете изменить системные разрешения, которые предоставляют общие системные возможности. Дополнительно, вы увидите набор «Разрешений активов», которые определяют способности членов этой роли по отношению к содержимому в системе. Эти разрешения могут быть перекрыты разрешениями на уровне контента. Многие из разрешений активов имеют опцию «Собственное». Она предоставляет членам этой роли возможность действовать только тогда, когда они являются владельцами элемента в системе.
Назначение ролей
Роли могут быть назначены пользователю администратором через редактирование профиля пользователя в разделе «Настройки > Пользователи» интерфейса BookStack. Здесь нескольким ролям могут быть назначены одному пользователю, и в этом случае разрешения суммируются, и пользователь получит любую способность, если хотя бы одна из ролей предоставляет эту возможность.
Следует учитывать, что некоторые механизмы в BookStack могут изменять роли пользователя. Сюда входят:
-
Опция «Роль пользователя по умолчанию после регистрации» в настройках регистрации.
-
Синхронизация групп LDAP.
-
Синхронизация групп SAML2.
Разрешения на уровне контента
Разрешения могут быть перекрыты на уровне полки, книги, главы или страницы, если это необходимо. Это можно сделать с помощью действия «Разрешения» при просмотре такого контента любым пользователем, обладающим разрешением роли «Управлять всеми/своими разрешениями».
В представлении разрешений вы можете использовать выпадающее меню «Переопределить разрешения для роли», чтобы выбрать роль для установки разрешений. После сохранения эти индивидуальные разрешения заменят разрешения по умолчанию, предоставленные ролями для сконфигурированного элемента контента.
Доступна опция «Все остальные», которая позволяет изменять или контролировать разрешения для любых ролей, которые специально не перекрываются. По умолчанию для этого элемента будет выбрано «Наследовать значения по умолчанию», что означает, что будут использоваться нормальные разрешения ролей, если они не перекрыты. Снятие отметки с этого флажка позволит использовать указанные разрешения вместо унаследованных.
Разрешения на уровне контента в BookStack обладают следующим поведением:
-
Индивидуальные разрешения, применяемые к книгам или главам, автоматически распространяются на все дочерние элементы, содержащиеся в них, если у этих элементов нет собственных индивидуальных разрешений.
-
Индивидуальные разрешения, применяемые к полкам, не распространяются автоматически из-за отношения «многие ко многим» к книгам, но их можно скопировать на все дочерние книги единым действием, если это необходимо.
-
Стандартная роль администратора всегда сохраняет все разрешения для полного контроля, и эта роль не будет конфигурируема в представлениях разрешений.
Когда активны индивидуальные разрешения на уровне контента, влияющие на просматриваемый элемент, вы увидите индикатор в разделе боковой панели сведений. Если у вас есть разрешение на редактирование активных разрешений на уровне контента, этот индикатор действует как ссылка, которая перенаправит вас в соответствующее представление разрешений, даже если они применяются к родительской главе или книге.
Продвинутая логика разрешений
Учитывая разнообразие опций разрешений в BookStack, сценарии и логика могут стать весьма сложными, поскольку они объединяются и накладываются друг на друга. Чтобы упростить понимание взаимодействия разрешений, ниже приведены основные правила, которым следует BookStack. В приведенном ниже тексте «разрешения контента» относятся к тем, которые установлены непосредственно на полки, книги, главы и страницы.
Существуют три основных уровня разрешений, каждый из которых обладает разным уровнем специфичности.
От наименее специфичных к наиболее специфичным:
-
Разрешения ролей (редактируются через интерфейс «Роли»).
-
Разрешения «Все остальные» на уровне контента (редактируются через представление «Разрешения» для элемента).
-
Специфичные для роли разрешения на уровне контента (также редактируются через представление «Разрешения» для элемента).
Исходя из этих уровней:
-
Наиболее специфичное применение разрешений (как указано выше) имеет приоритет и может отменить менее специфичные разрешения.
-
Родительские специфичные для роли разрешения контента, которые могут наследоваться (активирована опция «Все остальные»), считаются фактически применимыми к элементу, на который они наследуются, если на более низком уровне нет собственного правила разрешений для этой конкретной роли.
-
Где существуют как предоставление, так и отказ в одинаковой степени специфичности, мы склоняемся к предоставлению.

