Skip to content

Commit 65ca559

Browse files
committed
Merge pull request desymfony#117 from ajessu/issue_44
[Fix #44] Se codifica el password del usuario
2 parents f796cb5 + 1e3f82a commit 65ca559

File tree

4 files changed

+42
-7
lines changed

4 files changed

+42
-7
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,16 @@ Si quieres crear más usuarios de prueba, puedes hacerlo en la sección
113113
*registro*. Para acceder a la aplicación como un usuario registrado, pincha el
114114
enlace *accede aquí* dentro de la sección *registro*.
115115

116+
Las credenciales por defecto para acceder al *frontend como usuario* son:
117+
118+
* **usuario**: usuario**X**@desymfony.com
119+
* **password**: usuario**X**
120+
121+
Donde la **X** es un cualquier numero del 1 al 100, dependiendo del usuario
122+
123+
**Nota**: Estos usuarios solo funcionan si has usado el comando
124+
`doctrine:fixtures:load`, para cargar datos de prueba.
125+
116126
#### Parte de administración o *backend* ####
117127

118128
La parte de administración de la aplicación se accede desde

app/config/security.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,13 @@ security:
2121
providers: [in_memory, user_db]
2222
in_memory:
2323
users:
24-
desymfony: { password: desymfony, roles: 'ROLE_ADMIN' }
25-
admin: { password: admin, roles: 'ROLE_ADMIN' }
24+
desymfony: { password: 1d83b83cb4341ceb904d97bcd3987d23ded89b5b, roles: 'ROLE_ADMIN' }
25+
admin: { password: d033e22ae348aeb5660fc2140aec35850c4da997, roles: 'ROLE_ADMIN' }
2626
user_db:
2727
entity: { class: Desymfony\DesymfonyBundle\Entity\Usuario, property: email }
2828
encoders:
29-
Symfony\Component\Security\Core\User\User: plaintext
30-
Desymfony\DesymfonyBundle\Entity\Usuario: plaintext
29+
Symfony\Component\Security\Core\User\User:
30+
algorithm: sha1
31+
iterations: 1
32+
encode_as_base64: false
33+
Desymfony\DesymfonyBundle\Entity\Usuario: sha512

src/Desymfony/DesymfonyBundle/Controller/UsuarioController.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,16 @@ public function registroAction()
4949
$session = $this->get('request')->getSession();
5050
$session->setFlash('notice', 'Gracias por registrarte en Desymfony 2011');
5151

52-
// Guardamos el objeto en base de datos
52+
// Obtenemos el usuario
5353
$usuario = $form->getData();
54+
55+
// Codificamos el password
56+
$factory = $this->get('security.encoder_factory');
57+
$codificador = $factory->getEncoder($usuario);
58+
$password = $codificador->encodePassword($usuario->getPassword(), $usuario->getSalt());
59+
$usuario->setPassword($password);
60+
61+
// Guardamos el objeto en base de datos
5462
$em = $this->get('doctrine')->getEntityManager();
5563
$em->persist($usuario);
5664
$em->flush();

src/Desymfony/DesymfonyBundle/DataFixtures/ORM/LoadInicial.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,24 @@
33

44
use Doctrine\Common\DataFixtures\AbstractFixture;
55
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
6+
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
7+
use Symfony\Component\DependencyInjection\ContainerInterface;
68

79
use Desymfony\DesymfonyBundle\Entity\Usuario,
810
Desymfony\DesymfonyBundle\Entity\Ponencia,
911
Desymfony\DesymfonyBundle\Entity\Ponente;
1012

11-
class LoadInicial extends AbstractFixture implements OrderedFixtureInterface
13+
class LoadInicial extends AbstractFixture implements OrderedFixtureInterface, ContainerAwareInterface
1214
{
15+
1316
protected $manager;
17+
private $container;
18+
19+
public function setContainer(ContainerInterface $container = null)
20+
{
21+
$this->container = $container;
22+
}
23+
1424
public function load($manager)
1525
{
1626
$this->manager = $manager;
@@ -156,6 +166,7 @@ public function load($manager)
156166
$manager->flush();
157167

158168
// -- Cargar datos de USUARIOS ----------------------------------------
169+
$factory = $this->container->get('security.encoder_factory');
159170
foreach (range(1, 100) as $i) {
160171
$usuario = new Usuario();
161172

@@ -168,7 +179,10 @@ public function load($manager)
168179
$usuario->setDireccion('Calle '.$i);
169180
$usuario->setTelefono('600'.substr(rand(), 0, 6));
170181
$usuario->setEmail('usuario'.$i.'@desymfony.com');
171-
$usuario->setPassword('usuario'.$i);
182+
183+
$codificador = $factory->getEncoder($usuario);
184+
$password = $codificador->encodePassword('usuario'.$i, $usuario->getSalt());
185+
$usuario->setPassword($password);
172186

173187
$manager->persist($usuario);
174188
}

0 commit comments

Comments
 (0)