Перенаправление после входа в систему для определенных ролей


Я хочу перенаправить определенных пользователей после успешного входа в систему, но я не могу заставить это работать. Вот мой код:

function concessionaire_login_user_login(&$edit, $account) {
foreach ($account->roles as $role){
    if($role == "administrator"){   
    } else if ($role=="concessionnaire"){
        global $language;
        unset($_REQUEST['destination']);
        unset($_REQUEST['edit']['destination']);
        $url = "http://www.my-site.com/myfile.php";
        $options = array(
        'query' => 'id_rub=14&lg='.$language->language
        );
        drupal_goto($url,$options)

    }
}

}

Я пробовал также с header('location: $url'), но это тоже не работает. Модуль Login_destination был моим первым предположением, но я не могу использовать переменные..

Также возможно ли перенаправление на внешний URL-адрес и одновременная передача параметров POST?

Заранее благодарю.

 1
Author: rcampistron, 2011-12-15

3 answers

Некоторые вещи, на которые стоит обратить внимание:

Сам "запрос" должен быть массивом, а не строкой, например...

array('id_rub' => '14', 'lg' => $language->language)  

И если вы хотите вызвать header() напрямую, вам понадобятся еще несколько параметров:

header('Location: ' . $url, TRUE, $http_response_code);
drupal_exit($url);

(и выход для хорошей меры... кстати, это все, что drupal_goto() действительно делает в любом случае)

 1
Author: Jimajamma, 2011-12-15 17:11:31

Это может вам помочь.

Функция login_user_login(&$edit, $учетная запись) {

Функция login_user_login(&$edit, $учетная запись) {
 $urlAdministrator = 'yoururl';

$urlconcessionnaire = 'ваш адрес'

Если (in_array ('администратор', $учетная запись->роли)) {
drupal_goto($URL-администратор);
}
если (in_array ("концессионер", $учетная запись->роли)) {
drupal_goto($urlконсессионер);
}
}

Спасибо

 0
Author: , 2014-02-25 11:01:39

Вы можете использовать модуль Назначения входа .

 -1
Author: Marco, 2011-12-15 15:54:08