Система доступа к нодам определяет кто и что может сделать с определёнными нодами.
Для определении прав доступа для ноды используется (). Эта функция сперва проверяет, имеет ли пользователь разрешение 'administer nodes'. Такие пользователи имеют неограниченный доступ ко всем нодам. Затем вызывается хук () в модуле этой ноды (по умолчанию — ()), и возвращаемое значение, TRUE или FALSE, разрешит или запретит доступ. Например, это позволяет модулю blog всегда предоставлять доступ самому автору блога, а модулю book — всегда запрещать редактирование PHP страниц.
Если «нодовый» модуль не вмешивается в процесс ограничения доступа (возвращает NULL в ()), тогда для этого используется таблица 'node_access'. Все такие модули опрашиваются при помощи хука() и в результате собирается список идентификаторов разрешений пользователя (grant IDs). Этот список сравнивается с таблицей по соответствию grant ID. Если в таблице присутствует запись с идентифкатором ноды или идентификатор ноды в таблице равен 0, то доступ к ноде (или нодам) разрешается. Отметьте, что эта таблица, по существу, является списком разрешений; любой совпадающий строки достаточно, чтобы разрешить доступ к ноде.
Читать далее »


Апрель 11th, 2012
Опубликовано в рубрике
Метки: