Есть ли способ разрешить hook_cron
работать с правами администратора - например, как бы sudo hook_cron()
?
Этот вопрос является продолжением моего более раннего вопроса , пытающегося диагностировать, почему функции hook_cron (), вызываемые /drupal/cron.php
, работают иначе, чем те же функции, вызываемые /admin/reports/status/run-cron
.
Моя конкретная функция (назовите ее foo_cron()
) обновляет профили пользователей в рамках своих ночных обязанностей. Но /drupal/cron.php
, очевидно, работает как анонимный пользователь. Анонимные пользователи не могут изменять поля профиля пользователя на этом сайте по понятным причинам, поэтому эта часть скрипта завершается ошибкой.
Я знаю, что могу обойти эту проблему, изменив profile_fields
напрямую, используя SQL, но это похоже на уродливый хак, и его будет сложно поддерживать, если я начну делать это в нескольких модулях.
Является ли способ, в рамках существующих функций и инфраструктуры Drupal, запускать определенные задания foo_cron () с привилегиями, которые мы обычно предоставляем только администраторам, например, обновление профилей?
Этот конкретный сайт работает под Drupal 6.1.3.