создал тестовый модуль с двумя функциями. должен закрывать чтение/просмотр/удаление для материала в блоге для всех кроме автора.
при инсталляции модуля идет обновление прав. и на странице admin/content/node-settings выдается текст о том, что есть проблемы с правами для материалов и кнопка на ребилд (бесконечный цикл так сказать).
вопросы:
- откуда берется такое сообщение?
- в чем ошибка в коде?
- если ли более эффективные решения, чем использование node_grants, access_record и т.д по установке прав на view/edit/delete ?
вот код модуля:
$grants = array();
$grants['modr_author'] = array($account->uid);
return $grants;
}
function ex_node_access_records($node) {
if ($node->type == 'blog'){
$grants[] = array(
'realm' => 'modr_author',
'gid' => $node->uid,
'grant_view' => TRUE,
'grant_update' => TRUE,
'grant_delete' => TRUE,
'priority' => 0,
);
return $grants;
}
}
Комментарии
Более эффективных методов нет. А чем вас этот метод не нравиться? Я неоднократно задавал вопросы на этом форуме и на drupal.org обьяснить работу этих хуков, но никто не откликался.
Поэтому я методом научного тыка и двух часов экспериментировния узнал что всё элементарно.
понятно, что все элементарно. но ошибка-то в чем? она находится явно в этом куске кода, потому если отключить модуль - в "post settings" ничего не пишет. со включенным модулей - проблемы.
вы можете привести свой пример элементарного использования этих двух хуков в модуле, чтобы при установке не выдавалось сообщение в "post settings" об ошибке доступа? (хотя мой куда ж более элементарен
)
Так нет у вас в коде ошибки, если было бы я начал бы с этого.
тогда почему в "post settings" всегда висит сообщение о "node access status" и после многочисленных ребилда прав не исчезает? это ведь ненормально.
скрин (файл не аттачится)
www.nordic-land.com/trash/scrn.jpg
Ошибки выделяются красным. А то что на скрине не ошибка.
т.е оно постоянно будет висеть и это вроде как фича node_access?
Угу...