| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Drupal > Хуки, права доступа |
| Автор: m0ro 30.7.2009, 06:45 |
| Здравствуйте. Имею следующую ситуацию. Есть некий модуль, создающий и работающий со своим типом данных. Также он реализует через хук hook_access права доступа на данный контент, немного отличающиеся от стандартных прав для нод (create, delete и т.п.), например "Watch some info". Данные права в нем описаны в хуке hook_perm и хранятся стандартно - в таблице permission. Задача. Не вмешиваясь в код оригинального модуля, вмешиваться программно из другого модуля в управление данными нестандартными правами для нод, раздавая их динамически в зависимости от текущих условий и пользователя. Пытался использовать hook_access из своего модуля, но выяснилось, что он вызывается только, если мой модуль создаёт свои типы данных. При попытке, например, блокировать доступ в хуке hook_nodeapi с параметром $op == 'view' (или 'load') имею проблемы - блокируется вся страница, на которой выводятся тизеры нод. Мне же надо работать только с моментами, когда пользователь пытается конкретную ноду просмотреть полностью либо отредактировать, либо - релизовать действия, описанные вышеупомянутыми "нестандартными" правами. В итоге, ищу: либо альтернативу hook_access, либо корректную реализацию данной вещи через другие какие-то хуки (ну, или хоть сами хуки, какие можно применить для этих целей). На данном этапе остановился на прямом вмешательстве в реализацию хука hook_access оригинального модуля. |