अपनी मॉड्यूल फ़ाइल में एक मॉड्यूल बनाएं और निम्नलिखित कोड पेस्ट करें:
<?php
/**
* Implementation of hook_boot().
*
* Ask for user credentials and try to authenticate.
*/
function foo_boot() {
require_once DRUPAL_ROOT . '/includes/password.inc';
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
$query = "SELECT pass FROM {users} WHERE name = :name";
$result = db_query($query, array(':name' => $_SERVER['PHP_AUTH_USER']));
$account = new stdClass();
foreach ($result as $row) {
$account->pass = $row->pass;
}
if (isset($account->pass)) {
if (user_check_password($_SERVER['PHP_AUTH_PW'], $account)) {
return;
}
}
}
header('WWW-Authenticate: Basic realm="Development"');
header('HTTP/1.0 401 Unauthorized');
exit;
}
यह HTTP प्रमाणीकरण का उपयोग करता है और एक वैध उपयोगकर्ता नाम और पासवर्ड के लिए Drupal डेटाबेस की जाँच करता है।
अगर आपको PHP CLI, Drush या cron में कोई समस्या है, तो आप हुक में निम्नलिखित कोड जोड़ सकते हैं:
// Allow cron through
if (basename($_SERVER['PHP_SELF']) == 'cron.php') {
return;
}
// Allow PHP CLI/Drush through
if (isset($_SERVER['argc'])) {
if (php_sapi_name() == 'cli' || (is_numeric($_SERVER['argc']) && $_SERVER['argc'] > 0)) {
return;
}
}