當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Sesion::setIp方法代碼示例

本文整理匯總了PHP中Sesion::setIp方法的典型用法代碼示例。如果您正苦於以下問題:PHP Sesion::setIp方法的具體用法?PHP Sesion::setIp怎麽用?PHP Sesion::setIp使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Sesion的用法示例。


在下文中一共展示了Sesion::setIp方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: Iniciar

 /**
  *
  * Valida las credenciales de un usuario y regresa un url a donde se debe de redireccionar. 
  * Este m?todo no necesita de ning?n tipo de autenticaci?n. 
  * Si se detecta un tipo de usuario inferior a admin y no se ha llamado 
  * antes a api/sucursal/revisar_sucursal se regresar? un 403 Authorization 
  * Required y la sesi?n no se iniciar?.
  * Si el usuario que esta intentando iniciar sesion, esta descativado...
  * 403 Authorization Required supongo
  *
  * @param password string La contrasena del usuario.
  * @param usuario string El id de usuario a intentar iniciar sesion.
  * @param request_token bool Si se envia, y es verdadero, el seguimiento de esta sesi�n se har� mediante un token, de lo contrario se har� mediante cookies.
  * @return usuario_grupo int El grupo al que este usuario pertenece.
  * @return siguiente_url string La url a donde se debe de redirigir.
  * @return login_succesful	 bool Si la validaci�n del usuario es correcta.
  * @return auth_token string El token si es que fue solicitado.
  **/
 public static function Iniciar($password, $usuario, $request_token = null)
 {
     //user is not logged in, look for him
     $user = UsuarioDAO::findUser($usuario, $password);
     if (is_null($user)) {
         Logger::warn("===== Credenciales invalidas para usuario {$usuario} ====== ");
         return array("login_succesful" => false, "reason" => "Credenciales Invalidas");
     }
     //verificamos si la instancia esta activa
     if (INSTANCE_ACCESS === "0") {
         return array("login_succesful" => false, "reason" => "Acceso denegado, su instancia esta desactivada");
     }
     //ok user is ok, buscar su usuario en los tokens actuales
     $sesiones_actuales = SesionDAO::search(new Sesion(array("id_usuario" => $user->getIdUsuario())));
     if (sizeof($sesiones_actuales) > 0) {
         foreach ($sesiones_actuales as $s) {
             try {
                 SesionDAO::delete($s);
             } catch (Exception $e) {
                 //Logger::error($e->getMessage());
                 throw new InvalidDatabaseOperationException($e);
             }
         }
     }
     //si tiene un token actualmente que es valido, regenerar el token actualizar la fecha y darle el nuevo token
     $nueva_sesion = new Sesion();
     $nueva_sesion->setIdUsuario($user->getIdUsuario());
     $nueva_sesion->setAuthToken(self::GenerarAuthToken());
     $nueva_sesion->setFechaDeVencimiento(time() + 3600);
     if (isset($_SERVER["HTTP_USER_AGENT"])) {
         $nueva_sesion->setClientUserAgent($_SERVER["HTTP_USER_AGENT"]);
     } else {
         $nueva_sesion->setClientUserAgent("CLI");
     }
     if (isset($_SERVER["REMOTE_ADDR"])) {
         $nueva_sesion->setIp($_SERVER["REMOTE_ADDR"]);
     } else {
         $nueva_sesion->setIp("CLI");
     }
     try {
         SesionDAO::save($nueva_sesion);
     } catch (Exception $e) {
         throw new InvalidDatabaseOperationException($e);
     }
     self::login($nueva_sesion->getAuthToken(), $nueva_sesion->getIdUsuario(), $user->getIdRol());
     self::$_current_user = $user;
     self::$_is_logged_in = true;
     switch ($user->getIdRol()) {
         case 0:
         case 1:
         case 2:
         case 3:
         case 4:
             $next_url = "g/";
             break;
         case 5:
             $next_url = "c/";
             break;
     }
     $r = array("auth_token" => $nueva_sesion->getAuthToken(), "login_succesful" => true, "usuario_grupo" => $user->getIdRol(), "siguiente_url" => $next_url);
     if ($user->getIdRol() == 5) {
         $r["detalles_usuario"] = ClientesController::Detalle($user->getIdUsuario());
     }
     return $r;
 }
開發者ID:kailIII,項目名稱:pos-erp,代碼行數:83,代碼來源:Sesion.controller.php


注:本文中的Sesion::setIp方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。