Дата последнего изменения: 10.11.2023
В системе Bitrix Framework поддерживается два уровня разграничения прав доступа:
Этот уровень прав проверяется в прологе, задается с помощью специального файла .access.php, содержащего PHP массив следующего формата:
$PERM[файл/каталог][ID группы пользователей] = "ID права доступа";Где:
В административной части сайта права доступа на файлы и каталоги можно назначать с помощью Менеджера файлов.
Если пользователь принадлежит нескольким группам, то берется максимальное право из всех прав заданных для этих групп.
Если для текущего файла или каталога явно не задан уровень прав, то берется уровень прав заданный для вышележащих каталогов.
Файл /dir/.access.php
<? $PERM["index.php"]["2"] = "R"; $PERM["index.php"]["3"] = "D"; ?>
При попытке открытия страницы /dir/index.php
пользователь, принадлежащий группе ID=3, будет иметь право доступа D (запрещено), пользователь из группы ID=2 будет иметь право R (чтение). Пользователь, принадлежащий обеим группам, будет иметь максимальный уровень доступа - R (чтение).
Файл /.access.php
<? $PERM["admin"]["*"] = "D"; $PERM["admin"]["1"] = "R"; $PERM["/"]["*"] = "R"; $PERM["/"]["1"] = "W"; ?>
Файл /admin/.access.php
<? $PERM["index.php"]["3"] = "R"; ?>
При доступе к странице /admin/index.php
пользователь, принадлежащий группе ID=3, будет иметь доступ, а пользователю, принадлежащему группе ID=2, будет в доступе отказано. При доступе к странице /index.php
все посетители будут иметь доступ.
Если речь идет об обычных статичных публичных страницах, то к ним применяется только первый уровень доступа на файлы и каталоги.
Если пользователь имеет на файл как минимум право R (чтение) и если данный файл является функциональной частью того или иного модуля, то проверяется 2-ой уровень прав, задаваемый в настройках соответствующего модуля. Например: При заходе на страницу Список обращений в техподдержке администратор видит все обращения, сотрудник техподдержки - только те за которые он ответственнен, а обычный пользователь - только свои обращения. Так работает право доступа в рамках логики модуля Техподдержка.
Используются две методологии разграничения прав доступа 2-го уровня (уровень прав в рамках логики модуля):
Отличие их заключается в том, что если пользователь обладает несколькими правами, то выбирается максимальное. Если же пользователь обладает несколькими ролями, то он соответственно будет обладать суммарными возможностями этих ролей.
Модули, в которых поддерживаются роли, можно увидеть в фильтре Модуль на странице Настройки > Пользователи > Уровни доступа в Административном разделе. Во всех остальных модулях и во всех остальных настройках системы используются права.
Пример:
Список ссылок по теме: