cruge / models / filters / DefaultSessionFilter.php

Diff from to

models/filters/DefaultSessionFilter.php

 <?php
 /** Filtro por defecto para controlar el otorgamiento de sesiones
 
- 	@author: Christian Salazar H. <christiansalazarh@gmail.com> @bluyell
-	@license protected/modules/cruge/LICENCE
-*/
-class DefaultSessionFilter implements ICrugeSessionFilter {
-
-	public $lastErrorDescr="";
-
-	/**
-		@returns string, descripcion del error.
-	*/
-	public function getLastErrorDescr(){
-		return $this->lastErrorDescr;
-	}
-
-	/**
-		@erturns string, nombre corto de este filtro.
-	*/
-	public function getName(){
-		return "default";
-	}
-
-	/*  invocado por CrugeWebUser cuando un usuario solicita login()
-
-		@returns ICrugeSession instancia.  nueva o reutilizada. o null si ocurrio un error o no
-		se debe dar acceso.
-	*/
-	public function startSession(ICrugeStoredUser $user,ICrugeSystem $sys){
-		$this->lastErrorDescr = "";
-
-		$model = null;
-
-		// primera regla. no admite sesiones de ningun tipo, causando la negacion a todos
-		// los usuarios DEL SISTEMA SELECCIONADO.
-		if($sys->getn('systemdown') == 1){
-			$this->lastErrorDescr = "el sistema se encuentra detenido temporalmente";
-			return null;
-		}
-
-		// no puede iniciar sesion si su cuenta no esta activada o si esta suspendida
-		// los estados estan definidos en CrugeUserManager::getUserStateOptions
-		if($user->state == CRUGEUSERSTATE_NOTACTIVATED){
-			$this->lastErrorDescr = "su cuenta necesita ser activada, revise su correo y haga click en el vinculo de activacion que se le envio";
-			return null;
-		}
-		if($user->state == CRUGEUSERSTATE_SUSPENDED){
-			$this->lastErrorDescr = "su cuenta se encuentra suspendida";
-			return null;
-		}
-
-		// busca una sesion abierta para este usuario, para reutilizarla
-		//
-		$model = Yii::app()->user->um->findSession($user);
-
-		if($model == null)
-		{
-			// no encontro un sesion reutilizable, procede a crear una nueva si el sistema
-			// se lo permite
-
-			if($sys->getn('systemnonewsessions') == 1){
-				$this->lastErrorDescr =
-					"el sistema esta inhabilitado para otorgar una nueva sesion";
-				return null;
-			}
-			// procede a crear la sesion para el usuario
-			$model = Yii::app()->user->um->createSession($user,$sys);
-		}
-		else
-		{
-			if($model->isSessionExpired()){
-				self::onSessionExpired($model);
-				return null;
-			}else{
-				// TODO: evento para la reutilizacion de una sesion
-				//
-			}
-			Yii::log("DefaultSessionFilter. Reutilizando sesion: ".$model->getPrimaryKey(),"info");
-			$model->onReusage();
-		}
-
-
-
-
-
-		return $model;
-	}
-	/*
-		evento lanzado por CrugeWebUser cuando detecta que una sesion ha expirado
-	*/
-	public function onSessionExpired(ICrugeSession $model){
-		$this->lastErrorDescr = "su sesion ha expirado. debe iniciar sesion nuevamente";
-		$model->expiresession();
-		self::onStore($model);
-		if(!empty(CrugeUtil::config()->afterSessionExpiredUrl))
-			Yii::app()->getController()->redirect(CHtml::normalizeUrl(CrugeUtil::config()->afterSessionExpiredUrl));
-	}
-
-	/*
-		implementa el almacen de la sesion creada por getSession
-
-		@returns boolean true para indicar que se continue la autenticacion, false aborta
-	*/
-	public function onStore(ICrugeSession $model){
-		return $model->store();
-	}
-
-	/*
-		evento lanzado por CrugeWebUser al momento de iniciar sesion
-	*/
-	public function onLogin(ICrugeSession $model){
-		Yii::log(__CLASS__.".onLogin","info");
-		$user = Yii::app()->user->um->getUserFromSession($model);
-		Yii::app()->user->um->recordLogon($user);
-		Yii::app()->user->um->save($user);
-		if(!empty(CrugeUtil::config()->afterLoginUrl))
-			Yii::app()->user->returnUrl	 = CrugeUtil::config()->afterLoginUrl;
-	}
-	/*
-		evento lanzado por CrugeWebUser al momento de cerrar sesion mediante
-		una llamada a Yii::app()->user->logout
-	*/
-	public function onLogout(ICrugeSession $model){
-		Yii::log(__CLASS__.".onLogout","info");
-		if(!empty(CrugeUtil::config()->afterLogoutUrl))
-			Yii::app()->getController()->redirect(CHtml::normalizeUrl(CrugeUtil::config()->afterLogoutUrl));
-	}
+@author: Christian Salazar H. <christiansalazarh@gmail.com> @bluyell
+@license protected/modules/cruge/LICENCE
+ */
+class DefaultSessionFilter implements ICrugeSessionFilter
+{
+
+    public $lastErrorDescr = "";
+
+    /**
+    @returns string, descripcion del error.
+     */
+    public function getLastErrorDescr()
+    {
+        return $this->lastErrorDescr;
+    }
+
+    /**
+    @erturns string, nombre corto de este filtro.
+     */
+    public function getName()
+    {
+        return "default";
+    }
+
+    /*  invocado por CrugeWebUser cuando un usuario solicita login()
+
+        @returns ICrugeSession instancia.  nueva o reutilizada. o null si ocurrio un error o no
+        se debe dar acceso.
+    */
+    public function startSession(ICrugeStoredUser $user, ICrugeSystem $sys)
+    {
+        $this->lastErrorDescr = "";
+
+        $model = null;
+
+        // primera regla. no admite sesiones de ningun tipo, causando la negacion a todos
+        // los usuarios DEL SISTEMA SELECCIONADO.
+        if ($sys->getn('systemdown') == 1) {
+            $this->lastErrorDescr = "el sistema se encuentra detenido temporalmente";
+            return null;
+        }
+
+        // no puede iniciar sesion si su cuenta no esta activada o si esta suspendida
+        // los estados estan definidos en CrugeUserManager::getUserStateOptions
+        if ($user->state == CRUGEUSERSTATE_NOTACTIVATED) {
+            $this->lastErrorDescr = "su cuenta necesita ser activada, revise su correo y haga click en el vinculo de activacion que se le envio";
+            return null;
+        }
+        if ($user->state == CRUGEUSERSTATE_SUSPENDED) {
+            $this->lastErrorDescr = "su cuenta se encuentra suspendida";
+            return null;
+        }
+
+        // busca una sesion abierta para este usuario, para reutilizarla
+        //
+        $model = Yii::app()->user->um->findSession($user);
+
+        if ($model == null) {
+            // no encontro un sesion reutilizable, procede a crear una nueva si el sistema
+            // se lo permite
+
+            if ($sys->getn('systemnonewsessions') == 1) {
+                $this->lastErrorDescr =
+                    "el sistema esta inhabilitado para otorgar una nueva sesion";
+                return null;
+            }
+            // procede a crear la sesion para el usuario
+            $model = Yii::app()->user->um->createSession($user, $sys);
+        } else {
+            if ($model->isSessionExpired()) {
+                self::onSessionExpired($model);
+                return null;
+            } else {
+                // TODO: evento para la reutilizacion de una sesion
+                //
+            }
+            Yii::log("DefaultSessionFilter. Reutilizando sesion: " . $model->getPrimaryKey(), "info");
+            $model->onReusage();
+        }
+
+
+        return $model;
+    }
+
+    /*
+        evento lanzado por CrugeWebUser cuando detecta que una sesion ha expirado
+    */
+    public function onSessionExpired(ICrugeSession $model)
+    {
+        $this->lastErrorDescr = "su sesion ha expirado. debe iniciar sesion nuevamente";
+        $model->expiresession();
+        self::onStore($model);
+        if (!empty(CrugeUtil::config()->afterSessionExpiredUrl)) {
+            Yii::app()->getController()->redirect(
+                CHtml::normalizeUrl(CrugeUtil::config()->afterSessionExpiredUrl)
+            );
+        }
+    }
+
+    /*
+        implementa el almacen de la sesion creada por getSession
+
+        @returns boolean true para indicar que se continue la autenticacion, false aborta
+    */
+    public function onStore(ICrugeSession $model)
+    {
+        return $model->store();
+    }
+
+    /*
+        evento lanzado por CrugeWebUser al momento de iniciar sesion
+    */
+    public function onLogin(ICrugeSession $model)
+    {
+        Yii::log(__CLASS__ . ".onLogin", "info");
+        $user = Yii::app()->user->um->getUserFromSession($model);
+        Yii::app()->user->um->recordLogon($user);
+        Yii::app()->user->um->save($user);
+        if (!empty(CrugeUtil::config()->afterLoginUrl)) {
+            Yii::app()->user->returnUrl = CrugeUtil::config()->afterLoginUrl;
+        }
+    }
+
+    /*
+        evento lanzado por CrugeWebUser al momento de cerrar sesion mediante
+        una llamada a Yii::app()->user->logout
+    */
+    public function onLogout(ICrugeSession $model)
+    {
+        Yii::log(__CLASS__ . ".onLogout", "info");
+        if (!empty(CrugeUtil::config()->afterLogoutUrl)) {
+            Yii::app()->getController()->redirect(CHtml::normalizeUrl(CrugeUtil::config()->afterLogoutUrl));
+        }
+    }
 
 
 }
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.