CDbAuthManager Benutzer noch aktiv

Hallo,

Ich hab folgende Frage:

Wie überprüfe ich ob ein eingeloggter Benutzer noch aktiv ist ?

Damit meine ich: Wie bringe ich Yii dazu das er bei jedem Seiten Aufruf überprüft ob der eingeloggte Benutzer in der Datenbank noch existiert und auch aktiviert ist?

Gibt es dafür ein Callback, oder eine Einstellung für die Config ?


Gruß Excid

du kannst die lastAction eines Benutzer als timestamp in der db speichern.

Eine Beispiel-Implementation findest du hier:

http://code.google.com/p/yii-user-management/source/browse/trunk/user/models/YumUser.php#52

Achso und falls du meinst, das er bei jedem Seitenaufruf neu in der DB prüfen soll, dann schalte einfach die CookieDuration herunter auf z.B. 60. Dann prüft er alle 60 sekunden neu.

Ich hab das ganze jetzt erstmal quick & dirty gelöst. ich habe einfach meine Index.php angepasst.




$app =  Yii::createWebApplication($config);

$app->setLanguage("de");

checkUserSession();

$app->run();


    function checkUserSession () {

        if(!Yii::app()->user->isGuest){

            /* user in db ? perform other checks... */

            $record=User::model()->findByAttributes(array('username'=>Yii::app()->user->name));

            if($record === null) {

                Yii::app()->user->logout();

            }

        }

    }



Ansich vielleicht nicht die schönste Lösung, aber da ich vorerst kein Interesse habe einen UserManager zuinstallieren und Cookielebensdauer von 60 Sekunden auch nicht das wahre ist.

Danke trotzdem für die Hilfe.

Hatte mich inspiriert diese Lösung zufinden.


mfg Excid