drupal - проверка пользователя сессии в отдельном скрипте модуле - проверка прав
Primary tabs
посвящается КАМ-у =)
Общая идея проверки пользователя в строннем (отдельном) скрипте средствами друпала выглядит как-то так:
- 1) стартуем друпал вручную (потому что вы обращаетесь к скрипту не через index.php друпала , например прямо указывая директорию на сервере - если же черещ index, то можно сказу обращаться к API друпала) - чтобы получить доступ к API
- 2) использование готовых функций друпала для проверки роли данного пользователя
chdir('./../../../../'); // for relative path includes to work include_once "includes/bootstrap.inc"; // или просто тут прописать норм. путь drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); // стартуем друпал global $user; // после старта получаем доступ if(in_array('administrator', $user->roles)) { // эта или любая другая проверка // тут код стороннего скрипта (модуля) }
(взял отсюда)
Проверка может быть и иной, например:
// если юзер на авторизован if($user->uid == 0) { // у неавториз. пользоватьля id = 0 // тут код стороннего скрипта (модуля) // dsm("you are anonymous"); // dsm - выводит сообщение в месте для сообщений. // krumo($user); // krumo - выводит содержимое объекта $user вверху в виде структурированного дерева }
гугл-ответы: otvety.google.ru/otvety/thread?tid=37776dee9b784e4e
Если скомбинировать то что выше - типа вам нужны только авторизированные пользователи, то "примерный" код будет выглядеть как-то так (за рабочесть в разных версиях не ручаюсь):
include_once "./includes/bootstrap.inc"; // или просто тут прописать норм. путь drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); // стартуем друпал global $user; // после старта получаем доступ if ($user->uid > 0) { // если это пользователь, причём авторизировавшийсял, то... // ...то запускаем скрипт предназначенный для пользователей } else echo "а ты как здесь оказался?! давай - до свиданья!"; // типа не пускаем
- vedro-compota's blog
- Log in to post comments
- 6257 reads