Mam w sieci serwer Apache z Drupalemkorzeń. Mam również trochę treści innych niż Drupal w podkatalogach katalogu głównego. Chciałbym, aby zawartość nie-Drupal była niedostępna, chyba że użytkownik najpierw zalogował się do Drupala.
Natknąłem się na mod_auth_mysql (wprowadź tutaj opis linku), ale nie do końca tego chcę. Wymaga, aby użytkownik zalogował się dwa razy (raz do Drupala i raz dla treści innej niż Drupal).
Wyobrażam sobie, że rozwiązaniem mogłoby być uruchomienie skryptu .htaccess w celu ustalenia, czy użytkownik jest zalogowany. Skrypt ten musiałby być podłączony do systemu Drupal.
Czy można użyć .htaccess do uruchomienia skryptu w celu ustalenia, czy należy przyznać dostęp?
Czy jest lepsze rozwiązanie?
Odpowiedzi:
1 dla odpowiedzi № 1Zaimplementowałem to, częściowo ładując Drupala (poprzez DRUPAL_BOOTSTRAP_SESSION), a następnie sprawdzając globalny $ user.
<?php
$base_url = "http://".$_SERVER["HTTP_HOST"];
$drupal_path = "../../";
$cdir = getcwd();
chdir($drupal_path);
require_once "includes/bootstrap.inc";
drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);
chdir($cdir);
global $user;
$access_granted = in_array("authenticated user", $user->roles);
if (!$access_granted):
//Show page
else:
//Show access denied
endif;
?>