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
- 6767 reads