Frage

möchte ich eine Erlaubnis, die in verhindern werden die Menschen von der Protokollierung. (So, alle Benutzer von Rolle X vorübergehend gesperrt werden, während ihre Profilseiten zu halten. Verfügbar)

Auszug aus dem Anmeldeprozess von Pro Drupal Development 2nd Edition:

  1. POST von Login-Formular
  2. Benutzer gesperrt ist?
  3. Benutzer wird durch Zugriffskontrolle verweigert?

Ich möchte Benutzer drei des Prozesses im Schritt stoppen. Ich habe ein Modul:

/**
 * 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
    }
}

Vielleicht verwende ich drupal_goto falsch.

War es hilfreich?

Lösung

Ich habe nicht eine Drupal-Instanz diese auf ATM zu testen, aber ich glaube, Sie wollen diese:

/**
 * 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");

    }
}

Das löscht ihre Benutzer Informationen und ersetzt sie durch den anonymen Benutzer statt.

Andere Tipps

Ich glaube, das vollbringt, was Sie versuchen zu tun.

/**
 * 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
    }
}

Dies meldet den Benutzer und zeigt eine Meldung an. Wenn ich Recht, hook_user mit $ op Login gestartet, nachdem der Benutzer sich anmeldet erinnern, so dass diese sofort sie bald wieder abmelden würde -. Im Wesentlichen macht es so können sie sich nicht anmelden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top