Иногда при создании сайтов возникает потребность в реализации таких правил контроля доступа, которые не отвечают ни одному из критериев. К примеру, Вам нужно создать разрешения для отдельных нод одного типа материала, или же разрешение на просмотр определенного материала нужно предоставить отдельным пользователям, у которых одинаковая роль. Чтобы реализовать подобный функционал, используют ACL API.
Итак, устанавливаем следующие модули:
ACL - модуль, который обеспечит нас апишкой для создания списков контроля доступами. У него отсутствует пользовательский интерфейс и используется он исключительно для потребностей других модулей.
Content Access - позволяет управлять разрешениями относительно типов материала.
pассмотрим несколько основных функций, используемых для роботы с ACL. Чтобы создать новый список контроля доступами, применяется такая функция:
acl_create_acl($module, $name = NULL, $number = NULL)
Как видим, функция принимает три аргумента - имя модуля, имя создаваемого АCL и его номер. Возвращает она идентификатор созданного списка контроля доступами. Добавить материал к этому списку можно с помощью поданной ниже функции:
acl_node_add_acl($nid, $acl_id, $view, $update, $delete, $priority = 0)
Принцип ее работы следующий: для необходимого материала $nid мы присваиваем или запрещаем нужные доступы (просмотр, редактирование, удаление), воспользовавшись ранее созданным ACL ($acl_id). Для того, чтобы добавить пользователя к созданному списку, выполняем следующее:
acl_add_user($acl_id, $uid)
где $uid - идентификатор пользователя.










