Allora in OOP teoricamente dovresti passare le classi che ti servono per aggregazione.

Non so se hai un sistema centralizzato per la gestione delle richieste: tipo MVC o simili

solitamente:
Codice PHP:
// sessioni sempre disponibili
$s = new Session();
// utente generico di default che cambia se viene effettuato un login
$u = new User();
// database
$pdo = new Database();
//vista
$view = new View'layout' );
// access list
$acl = new acl$pdo );

$fc = new frontController$acl );
// qui puoi fare il controllo se l'utente ha il permesso di vedere la pagina
// utilizzando la classe acl
$fc->run$pdo$view$user );

echo 
$view->render(); 
se invece usi un router/dispatcher il controllo dei permessi lo fai sul dispatcher.

Quando viene effettuato il login, la classe "user" viene popolata con i dati dell'utente. Questi dati vengono utilizzati per fare il controllo dei permessi.