Битрикс. Файл .access.php

28.07.2018

Теги: CMSWeb-разработкаБитриксДиректорияНастройкаПраваДоступаРазделСайтаСтраницаСайтаФайл

В Битрикс есть два уровня разграничения прав доступа:

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

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

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

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

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

Пример

<?php
/*
 * Файл /dir/.access.php
 */
$PERM["index.php"]["2"] = "R";
$PERM["index.php"]["3"] = "D";

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

Пример

<?php
/*
 * Файл /.access.php
 */
$PERM["admin"]["*"] = "D";
$PERM["admin"]["1"] = "R";
$PERM["/"]["*"] = "R";
$PERM["/"]["1"] = "W";
<?php
/*
 * Файл Файл /admin/.access.php
 */
$PERM["index.php"]["3"] = "R";

При доступе к странице /admin/index.php пользователь, принадлежащий группе ID=3, будет иметь доступ, а пользователю, принадлежащему группе ID=2, будет в доступе отказано. При доступе к странице /index.php все посетители будут иметь доступ.

Права в рамках логики модуля

Если речь идет об обычных статичных публичных страницах, то к ним применяется только первый уровень доступа на файлы и каталоги.

Если пользователь имеет на файл как минимум право R (чтение) и если данный файл является функциональной частью того или иного модуля, то проверяется 2-ой уровень прав, задаваемый в настройках соответствующего модуля.

Например, при заходе на страницу «Список обращений» в техподдержке: администратор видит все обращения, сотрудник техподдержки — только те, за которые он ответственнен, а обычный пользователь — только свои обращения. Так работает право доступа в рамках логики модуля «Техподдержка».

Поиск: .access.php • CMS • Web-разработка • Битрикс • Директория • Права доступа • Раздел сайта • Страница сайта • Файл • Настройка

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.