Cytat
// i potem w każdej odpowiedniej podstronie można go sprawdzać
if ( !$user->isLogged() ){
die('trza się zalogować');
}
Niekoniecznie, bo skoro tworzysz instancję klasy User we front controllerze, to można tam też uruchomić proces autoryzacji i jej obsługę. Chyba, że Tobie chodzi o warstwę widoku.

@beceme - Wszystko zależy od tego, czy User to obiekt pasywny, czy aktywny. Jeśli jest pasywny, to powinien być zarządzany przez inną klasę (np. userManager, Authorization itp. - nazwa nie jest tu tak ważna).
<?php
$auth=new Authorization();
$user=new User($context->username, $context->userpass);
$auth->login($user);
//lub
$auth=new Authorization($context->username, $context->userpass);
$auth->login();
$user=$auth->getUser();
[php]
Jeśli User jest aktywna, to może zawierać metody autoryzacji.
[php]
$user=new User($context->username, $context->userpass);
$user->login();
?>
Osobiście skłaniam się ku pierwszemu rozwiązaniu, choć w jakimś małym CMS'ie obsługiwanym przez jedną osobę nie trzeba rozbudowywać autoryzacji, więc drugie rozwiązanie wystarczyłoby w zupełności. Musisz patrzeć na system pod kątem relacji w jakie wchodzą jego obiekty. Np. patrząc logicznie, to klasa User powinna być tylko zestawem danych na temat użytkownika, a więc odzwierciedleniem wiersza z tabeli bazy danych (albo z pliku). Tym samym powinna zawierać metody do operowania tymi danymi, natomiast nie powinna zawierać metod, które wpływają na cały system. Taką metodą jest np. metoda User::login() - użytkownik rejestruje się sam, co jest nielogiczne. Kończąc - masz rację - inna klasa, której celem jest autoryzacja użytkowników jest bardziej zorientowana obiektowo.
Pozdrawiam.