Drupal6: وصول المستخدم إلى تسجيل الدخول إلى Deny

StackOverflow https://stackoverflow.com/questions/1374600

  •  21-09-2019
  •  | 
  •  

سؤال

أريد إذنًا من شأنه أن يمنع الأشخاص من تسجيل الدخول. (لذلك ، يمكن حظر جميع مستخدمي الدور X مؤقتًا ، مع إبقاء صفحات ملفاتهم الشخصية متاحة.)

مقتطف من عملية تسجيل الدخول من Pro Drupal Development Edition:

  1. النشر من نموذج تسجيل الدخول
  2. تم حظر المستخدم؟
  3. يتم رفض المستخدم عن طريق التحكم في الوصول؟

أريد إيقاف المستخدمين في الخطوة الثالثة من العملية. لدي وحدة:

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

ربما أستخدم Drupal_Goto خطأ.

هل كانت مفيدة؟

المحلول

ليس لدي مثيل دروبال لاختبار هذا على أجهزة الصراف الآلي ، لكنني أعتقد أنك تريد هذا:

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

    }
}

يحذف معلومات المستخدم الخاصة بهم ويحل محلها بالمستخدم المجهول بدلاً من ذلك.

نصائح أخرى

أعتقد أن هذا ينجز ما تحاول القيام به.

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

هذا يسجل المستخدم ويعرض رسالة. إذا كنت أتذكر بشكل صحيح ، فإن Hook_User مع حرائق تسجيل الدخول $ OP بعد تسجيل الدخول ، لذلك سيؤدي ذلك على الفور إلى تسجيلها مرة أخرى مباشرة - مما يجعله بشكل أساسي حتى لا يتمكنوا من تسجيل الدخول.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top