domingo, 17 de mayo de 2020

Video 14: Como actualizar el estado del usuario y la fecha de ultimo login

Instrucciones

1. Modificamos la tabla para que según el estado del usuario en la base de datos muestre si esta activo o inactivo, agregando la siguiente decisión  en php

if($value['estado']!="1"){
             echo'<td><button class="btn btn-danger btnprueba btn-xs">Inactivo</button></td>';
          }else{
             echo'<td><button class="btn btn-success btnprueba btn-xs">Activo</button></td>';
          }


2. Se modifica el archivo usuarios.controlador.php de manera que nos pregunte si el usuario esta activo antes de permitirle acceder al sistema, quedando de la siguiente manera


if($respuesta['estado']==1){
$_SESSION['iniciarSesion']="ok";
$_SESSION['nombre']=$respuesta['nombre'];
$_SESSION['usuario']=$respuesta['usuario'];
$_SESSION['foto']=$respuesta['foto'];
$_SESSION['perfil']=$respuesta['perfil'];

echo '<script>
window.location="inicio";
</script>';
}else{
echo("<div class='alert alert-danger'>Usuario inactivo, contacte al administrador del sistema</div>");
}



   3. e agrega la clase btnActivar a los botones de activo e inactivo y los atributos estadousuario y idUsuario, quedando de la siguiente manera


 if($value['estado']!="1"){
             echo'<td><button class="btn btn-danger btnprueba btn-xs btnActivar" idUsuario="'.$value["id"].'" estadoUsuario="1">Inactivo</button></td>';
          }else{
             echo'<td><button class="btn btn-success btnprueba btn-xs btnActivar" idUsuario="'.$value["id"].'" estadoUsuario="0">Activo</button></td>';
          }


4. En el archivo usuarios.js agregamos el siguiente código para que se ejecute cuando presionen uno de los botones

$(".btnActivar").click(function(){
      var idUsuario = $(this).attr("idUsuario");
      var estadoUsuario = $(this).attr("estadoUsuario");
      var datos = new FormData();
      datos.append("activarId",idUsuario);
      datos.append("activarUsuario",estadoUsuario);

      $.ajax({
        url:"ajax/usuarios.ajax.php",
        method: "POST",
        data: datos,
        cache:false,
        contentType:false,
        processData:false,
        success:function(respuesta){

        }
      })
    })


5. Se agrega al archivo usuarios.ajax.php e código para cambiar el estado del usuario en el método ajaxActivarUsuario

dentro de la clase Ajaxusuarios se agrega 

/*=============================================
ACTIVAR USUARIO
=============================================*/

public $activarUsuario;
public $activarId;

public function ajaxActivarUsuario(){
$tabla = "usuarios";
$item1 = "estado";
$valor1 =$this -> activarUsuario;
$item2 = "id";
$valor2 =$this -> activarId;
$respuesta = ModeloUsuarios::mdlActualizarUsuario($tabla,$item1,$valor1,$item2,$valor2);

}

   Fuera de la clase Ajaxusuarios se agrega 

/*=============================================
ACTIVAR USUARIO
=============================================*/

if(isset($_POST['activarUsuario'])){
$activarUsuario = new AjaxUsuarios();
$activarUsuario -> activarUsuario=$_POST['activarUsuario'];
$activarUsuario -> activarId=$_POST['activarId'];
$activarUsuario ->ajaxActivarUsuario();
}

6. Se agrega el método mdlActualizarUsuario en el archivo usuarios.modelo.php

static public function mdlActualizarUsuario($tabla,$item1,$valor1,$item2,$valor2){
$stmt = conexion::conectar()->prepare("UPDATE $tabla SET $item1 = :$item1 WHERE $item2 = :$item2");
$stmt -> bindParam(":".$item1,$valor1,PDO::PARAM_STR);
$stmt -> bindParam(":".$item2,$valor2,PDO::PARAM_STR);
if($stmt->execute()){
return "ok";
}else{
return "error";
}
$stmt ->close();
$stmt = null;

}

7. En el archivo usuarios.controlador en la  función ctrIngreso modificamos el código de manera que envíe la fecha de login a la base de datos quedando así

//Fecha de login
date_default_timezone_set("America/Bogota");
$fecha = date("y-m-d");
$hora = date("H:i:s");
$fechaActual = $fecha." ".$hora;
$item1 = "ultimo_login";
$valor1 = $fechaActual;
$item2 = "id";
$valor2 = $respuesta['id'];
$actualizarLogin = ModeloUsuarios::mdlActualizarUsuario($tabla,$item1,$valor1,$item2,$valor2);
if($actualizarLogin=="ok"){
echo '<script>
window.location="inicio";
</script>';
}

 8.  En el archivo usuarios.php modificamos la linea donde imprimimos el ultimo login, dejándolo así


<td>'.$value['ultimo_login'].'</td>

   

No hay comentarios:

Publicar un comentario