1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
<?php
namespace App\DemoBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
use Symfony\Component\Security\Core\SecurityContext;
class SecurityController extends Controller
{
/**
* Afficher les utilisateurs
* @Route("/", name="user_list")
* @Template()
*/
public function indexAction()
{
$users = $this->getUsers();
return array('users' => $users);
}
/**
* Editer un utilisateur
*
* @param $id
*
* @return Response
* @throws AccessDeniedException
* @Route("/user/edit/{id}", name="user_edit")
*/
public function editAction($id)
{
$users = $this->getUsers();
if (isset($users[$id])) {
$user = $users[$id];
}
if (!$this->get('security.context')->isGranted('USER_EDIT', $user)) {
throw new AccessDeniedException();
}
return new Response('edit user : ' . $user->getUsername());
}
/**
* Identifier un utilisateur
*
* @param Request $request
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function loginAction(Request $request)
{
$session = $request->getSession();
// get the login error if there is one
if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
$error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
} else {
$error = $session->get(SecurityContext::AUTHENTICATION_ERROR);
$session->remove(SecurityContext::AUTHENTICATION_ERROR);
}
return $this->render(
'AppDemoBundle:Security:login.html.twig',
array(
// last username entered by the user
'last_username' => $session->get(SecurityContext::LAST_USERNAME),
'error' => $error,
)
);
}
/**
* Recuperer la liste des utilisateurs
*
* @return array
*/
protected function getUsers()
{
$users = array();
$users[] = new \Symfony\Component\Security\Core\User\User('admin', '', array('ROLE_ADMIN'));
$users[] = new \Symfony\Component\Security\Core\User\User('superadmin', '', array('ROLE_SUPER_ADMIN'));
$users[] = new \Symfony\Component\Security\Core\User\User('user', '', array('ROLE_REDACTEUR'));
$users[] = new \Symfony\Component\Security\Core\User\User('userB', '', array('ROLE_REDACTEUR'));
return $users;
}
} |
Partager