本文整理汇总了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;
}