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:

  1. poner de formulario de acceso
  2. está bloqueado Usuario?
  3. 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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top