Как выполнить запрос назначения на странице пользователя - PullRequest
0 голосов
/ 26 июня 2009

Я пытаюсь перенаправить любой зарегистрированный пользователь пытается получить доступ к /user.

В моем модуле следующий код для перенаправления после входа в систему:

function ccmm_user($op, &$edit, &$account, &$category = NULL)
{
    switch($op){
        case 'login':
            $_REQUEST['destination'] = 'admin/';
            break;
    }
}

Это работает. Затем я пытаюсь с case 'view': , но это бесполезно.

Ответы [ 4 ]

1 голос
/ 27 июня 2009

Похоже, вы хотите, чтобы пользователь никогда не заходил на страницу / user, будь то при входе в систему или даже заходя туда вручную.

В этом случае вы должны выполнить простую проверку в функции hook_init, например:

function ccmm_init() {
  if ( $_REQUEST['q'] == '/user' ) {
    drupal_goto('/admin'); // Or where ever you want to send them
  }
}

Конечно, есть много проверок, которые вы должны сделать, и вы, возможно, захотите изучить использование модуля Global Redirect , не беспокойтесь, его размер составляет всего 8 КБ, поэтому стоит добавить еще одну. Модуль не является такой проблемой в этом случае.

0 голосов
/ 28 июня 2009

Лучшим способом может быть использование hook_menu_alter в вашем модуле, чтобы просто удалить пункт меню для /user/%user_uid_optional или переместить его на другой URL.

Таким образом, вы будете обрабатывать не только логины (как вы это делаете в настоящее время), но ЛЮБОЙ доступ к / user / (предостережение: включая права администратора). Или вы можете использовать тот же хук, чтобы изменить проверку доступа и предоставить ее только пользователям с более высокими разрешениями, например administer users

0 голосов
/ 26 июня 2009

Если вы не знакомы с модулем Login Toboggan , вам следует.

0 голосов
/ 26 июня 2009

Вы можете попробовать Модуль входа в систему вместо написания собственного кода.

...