11  /  330

Права доступа

Просмотров: 9666 (Статистика ведётся с 06.02.2017)

В системе Bitrix Framework поддерживается два уровня разграничения прав доступа:

  • Доступ на файлы и каталоги.
  • Права в рамках логики модуля.

Доступ на файлы и каталоги

Этот уровень прав проверяется в прологе, задается с помощью специального файла .access.php, содержащего PHP массив следующего формата:

$PERM[файл/каталог][ID группы пользователей] = "ID права доступа";
Где:
  • файл/каталог - имя файла или каталога для которых назначаются права доступа;
  • ID группы пользователей - ID группы пользователей на которую распространяется данное право (допустимо также использование символа - *, что означает - для всех групп);
  • ID права доступа - на сегодняшний день поддерживаются следующие значения (в порядке возрастания):
    • D - запрещён (при обращении к файлу доступ будет всегда запрещён);
    • R - чтение (при обращении к файлу доступ будет разрешен);
    • U - документооборот (файл может быть отредактирован в режиме документооборота);
    • W - запись (файл может быть отредактирован непосредственно);
    • X - полный доступ (подразумевает право на "запись" и модификацию прав доступа).

В административной части сайта права доступа на файлы и каталоги можно назначать с помощью Менеджера файлов.

Если пользователь принадлежит нескольким группам, то берется максимальное право из всех прав доступа заданных для этих групп.

Если для текущего файла или каталога явно не задан уровень прав, то берется уровень прав заданный для вышележащих каталогов.

Пример 1

Файл /dir/.access.php

<?
   $PERM["index.php"]["2"] = "R";
   $PERM["index.php"]["3"] = "D";
?>

При попытке открытия страницы /dir/index.php пользователь, принадлежащий группе ID=3, будет иметь право доступа D (запрещено), пользователь из группы ID=2 будет иметь право R (чтение). Пользователь, принадлежащий обеим группам, будет иметь максимальный уровень доступа - R (чтение).

Пример 2

Файл /.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-го уровня (уровень прав в рамках логики модуля):

  • права;
  • роли.

Отличие их заключается в том, что если пользователь обладает несколькими правами, то выбирается максимальное. Если же пользователь обладает несколькими ролями, то он соответственно будет обладать суммарными возможностями этих ролей.

Модули, в которых поддерживаются роли, можно увидеть в фильтре Модуль на странице Настройки > Пользователи > Уровни доступа в Административном разделе. Во всех остальных модулях и во всех остальных настройках системы используются права.

Пример:

  • Права. Если вы принадлежите группам для которых в модуле Статистика заданы права Полный административный доступ и например, Просмотр статистики без финансовых показателей, то вы будете обладать максимальным правом - Полный административный доступ.
  • Роли. Если вы принадлежите к группам для которых в модуле Техподдержка заданы роли Клиент техподдержки и Демо-доступ, то вы одновременно будете обладать возможностями этих двух ролей. Т.е. вы сможете видеть все обращения в режиме демо-доступа и одновременно с этим можете создавать свои обращения как клиент техподдержки.

Список ссылок по теме:

34
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии