Перенаправление после входа в систему для определенных ролей
Я хочу перенаправить определенных пользователей после успешного входа в систему, но я не могу заставить это работать. Вот мой код:
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?
Заранее благодарю.
3 answers
Некоторые вещи, на которые стоит обратить внимание:
Сам "запрос" должен быть массивом, а не строкой, например...
array('id_rub' => '14', 'lg' => $language->language)
И если вы хотите вызвать header() напрямую, вам понадобятся еще несколько параметров:
header('Location: ' . $url, TRUE, $http_response_code);
drupal_exit($url);
(и выход для хорошей меры... кстати, это все, что drupal_goto() действительно делает в любом случае)
Это может вам помочь.
Функция login_user_login(&$edit, $учетная запись) {
Функция login_user_login(&$edit, $учетная запись) { $urlAdministrator = 'yoururl';
$urlconcessionnaire = 'ваш адрес'
Если (in_array ('администратор', $учетная запись->роли)) {
drupal_goto($URL-администратор);
}
если (in_array ("концессионер", $учетная запись->роли)) {
drupal_goto($urlконсессионер);
}
}
Спасибо
Вы можете использовать модуль Назначения входа .