function user_default_page_user_login in User Default Page 8
Same name and namespace in other branches
- 8.2 user_default_page.module \user_default_page_user_login()
Implements hook_user_login().
File
- ./
user_default_page.module, line 81 - Contains user_default_page.module..
Code
function user_default_page_user_login($account) {
// Load all entities belongs to "user_default_page_config_entity".
$entities_load = \Drupal::entityTypeManager()
->getStorage('user_default_page_config_entity')
->loadMultiple();
// Get User Role(s).
$roles = $account
->getRoles();
$uid = $account
->id();
$login_redirect = '';
$login_message = '';
$current_weight = NULL;
// Check for redirect login path.
foreach ($entities_load as $entity) {
if (array_intersect($entity
->getUserRoles(), $roles)) {
if ($current_weight < $entity
->getWeight()) {
$current_weight = $entity
->getWeight();
$login_redirect = $entity
->getLoginRedirect();
}
$login_message = $entity
->getLoginRedirectMessage();
}
$users_array = $entity
->getUsers();
if (strpos($users_array, $uid . ',') !== FALSE) {
$login_redirect = $entity
->getLoginRedirect();
$login_message = $entity
->getLoginRedirectMessage();
}
}
if ($login_redirect) {
$current_route = \Drupal::service('current_route_match')
->getRouteName();
$ignored_routes = [
'user.reset.login',
'user.reset',
];
\Drupal::moduleHandler()
->alter('user_default_page_login_ignore_whitelist', $ignored_routes);
if (!in_array($current_route, $ignored_routes)) {
// Set Login redirect message.
if ($login_message) {
drupal_set_message(t($login_message));
}
user_default_page_redirect($login_redirect);
}
}
}