Drupal6: el acceso de usuarios a negar Login
Pregunta
Quiero un permiso que va a evitar que la gente de iniciar sesión. (Por lo tanto, todos los usuarios de la función X pueden ser bloqueadas temporalmente, manteniendo sus páginas de perfil disponibles.)
Extracto del proceso de inicio de sesión de Pro Drupal Desarrollo 2ª Edición:
- poner de formulario de acceso
- está bloqueado Usuario?
- El usuario es negada por el control de acceso?
Quiero dejar de usuarios en el tercer paso del proceso. Tengo un módulo:
/**
* Implementation of hook_perm().
*/
function odp_perm() {
return array('log in');
}
/**
* Implementation of hook_user
* lock out without the 'log in' permission
*/
function odp_user($op, &$edit, &$account, $category = NULL) {
if ($op == 'login' && ! user_access('log in')) {
drupal_set_message("You do not have access to log in.", "error");
drupal_goto('logout'); //doesn't work
drupal_goto('content/party-tonight'); //also doesn't work
}
}
Tal vez estoy usando drupal_goto mal.
Solución
No tengo una instancia de Drupal para probar esto en cajeros automáticos, pero creo que usted quiere esto:
/**
* Implementation of hook_user
* lock out without the 'log in' permission
*/
function odp_user($op, &$edit, &$account, $category = NULL) {
if ($op == 'login' && ! user_access('log in')) {
global $user;
$user = drupal_anonymous_user();
drupal_set_message("You don't have permission to log in");
}
}
Esto elimina la información del usuario y lo reemplaza con el usuario anónimo en su lugar.
Otros consejos
Creo que esto logra lo que estás tratando de hacer.
/**
* Implementation of hook_user
* lock out without the 'log in' permission
*/
function odp_user($op, &$edit, &$account, $category = NULL) {
if ($op == 'login' && ! user_access('log in')) {
drupal_set_message("You don't have permission to log in");
//prevent login
header("Location: http://www.example.com/?q=logout");
// header("Location: http://www.example.com/logout"); if using clean URLs
}
}
Esto registra el usuario y muestra un mensaje. Si no recuerdo mal, hook_user con fuegos $ op inicio de sesión después que el usuario inicia una sesión, por lo que este sería inmediatamente ingrese justo atrás -. Esencialmente, hace que por lo que no puede iniciar sesión en