Вопрос по node_grants и правам

Главные вкладки

Аватар пользователя hrafn hrafn 19 октября 2009 в 0:30

создал тестовый модуль с двумя функциями. должен закрывать чтение/просмотр/удаление для материала в блоге для всех кроме автора.
при инсталляции модуля идет обновление прав. и на странице admin/content/node-settings выдается текст о том, что есть проблемы с правами для материалов и кнопка на ребилд (бесконечный цикл так сказать).

вопросы:
- откуда берется такое сообщение?
- в чем ошибка в коде?
- если ли более эффективные решения, чем использование node_grants, access_record и т.д по установке прав на view/edit/delete ?

вот код модуля:

function ex_node_grants($account, $op) {
   $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;
   }
}

Комментарии

Аватар пользователя Guide Guide 19 октября 2009 в 7:22

Более эффективных методов нет. А чем вас этот метод не нравиться? Я неоднократно задавал вопросы на этом форуме и на drupal.org обьяснить работу этих хуков, но никто не откликался. Smile Поэтому я методом научного тыка и двух часов экспериментировния узнал что всё элементарно.

Аватар пользователя hrafn hrafn 19 октября 2009 в 12:13

понятно, что все элементарно. но ошибка-то в чем? она находится явно в этом куске кода, потому если отключить модуль - в "post settings" ничего не пишет. со включенным модулей - проблемы.

вы можете привести свой пример элементарного использования этих двух хуков в модуле, чтобы при установке не выдавалось сообщение в "post settings" об ошибке доступа? (хотя мой куда ж более элементарен Smile )