<?php
namespace edcBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use edcBundle\Entity\usuarios;
use Symfony\Component\HttpFoundation\Request;
class LoginController extends Controller
{
public function indexAction($name)
{
// return $this->render('edcBundle:Default:index.html.twig', array('name' => $name));
}
// ******************************************
public function loginAction(Request $request)
{
if($request->getMethod()=="POST")
{
$email = $request->get("correo");
$password = $request->get("pass");
//echo "correo=".$correo."<br>pass=".$pass;exit;
$user = $this->getDoctrine()->getRepository('edcBundle:usuarios')->findOneBy(array("correo"=>$email,"pass"=>$password));
if($user)
{
$session = $request->getSession();
$session->set("id", $user->getId());
$session->set("nombre", $user->getNombre());
//echo $session->get("nombre");exit;
return $this->redirect($this->generateUrl('listarPeliculas'));
}else
{
$this->get('session')->getFlashBag()->add(
'mensaje',
'Los datos ingresados para loguearte no son válidos'
);
return $this->redirect($this->generateUrl('login'));
}
}
return $this->render('edcBundle:Login:login.html.twig');
}
// *********************************************
public function logoutAction(Request $request)
{
$session = $request->getSession();
$session->clear();
$this->get('session')->getFlashBag()->add(
'mensaje',
'Se ha cerrado sessión exitosamente, gracias por visitarnos'
);
return $this->redirect($this->generateUrl('login'));
}
}
login.html.twig:
{% extends 'edcBundle::viewEDC.html.twig' %}
{% block body %}
{% for flashMessage in app.session.flashbag.get('mensaje') %}
<span class="alert-success">
{{ flashMessage }}
<hr />
</span>
{% endfor %}
<h1>Ingrese sus datos</h1>
<form class="form-horizontal" role="form" method="post" action="{{path('login')}}">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">E-Mail</label>
<div class="col-sm-10">
<input type="email" name="correo" class="form-control" id="inputEmail3" placeholder="E-Mail" />
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">Password</label>
<div class="col-sm-10">
<input type="password" name="pass" class="form-control" id="inputPassword3" placeholder="Password" />
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">Entrar</button>
</div>
</div>
</form>
{% endblock %}
En nuestro Controller añadir este código a los que deban estado logueado:
public function listarCineastasAction(Request $request)
{
// check si está logado
$session = $request->getSession();
if(!$session->has("id")) {
$this->get('session')->getFlashBag()->add(
'mensaje',
'Debe estar logueado para ver este contenido'
);
return $this->redirect($this->generateUrl('login'));
}
...
}

No hay comentarios:
Publicar un comentario