problemes avec fosUserBundle::setExpiresAt() et fosUserBundle::setCredentialsExpireAt()
yop les gens.
j'ai petit problème dans ma plantation... (hum... trève de plaisanteries ^^) :
dans mon appli, quand je crée un user (extension de fosUserBundle), je peux pas le logger parce qu'il m'indique automatiquement les champs expiresAt et credentialsExpireAt à la même date que celle de la création... et ca fait ch*** ^^
en gros, j'ai ca comme code :
Code:
1 2 3 4 5 6 7 8 9
|
// formulaire
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('username')
->add('email')
;
} |
Code:
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
| //controller
public function createAction()
{
$entity = new AwUser();
$request = $this->getRequest();
$form = $this->createForm(new AwUserType(), $entity);
$form->bindRequest($request);
$enabled = $this->container->getParameter('default.awuser.signup.enabled');
$algorithm = $this->container->getParameter('default.awuser.signup.algorithm');
$locked = $this->container->getParameter('default.awuser.signup.locked');
$expired = $this->container->getParameter('default.awuser.signup.expired');
$credentialsExpired = $this->container->getParameter('default.awuser.signup.credentialsExpired');
$password = substr(str_shuffle(str_repeat('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',6)),0,6);
$entity->setEnabled($enabled);
$entity->setAlgorithm($algorithm);
$entity->setLocked($locked);
$entity->setExpired($expired);
$entity->setCredentialsExpired($credentialsExpired);
$entity->setPassword($password);
$entity->setExpiresAt(null);
$entity->setCredentialsExpireAt(null);
if ($form->isValid()) {
$em = $this->getDoctrine()->getEntityManager();
$em->persist($entity);
$em->flush();
return $this->redirect($this->generateUrl('profile_show', array('id' => $entity->getId())));
}
return $this->render('MachinModelBundle:AwUser:new.html.twig', array(
'entity' => $entity,
'form' => $form->createView()
));
} |
en notant que j'ai un peu modifié le modele de fos pour qu'il accepte null comme argument à la place d'un datetime (là où la db indique que ca peut etre null)
Code:
1 2 3 4 5 6 7
| # dans config.yml
parameters:
default.awuser.signup.enabled: true
default.awuser.signup.algorithm: sha512
default.awuser.signup.locked: false
default.awuser.signup.expired: false
default.awuser.signup.credentialsExpired: false |
et voilà ce qu'il en résulte à la création :
Citation:
Envoyé par use créé
Username greg
Usernamecanonical greg
Email
gaszwarc@gmail.com
Emailcanonical
gaszwarc@gmail.com
Enabled 1
Algorithm sha512
Salt 7d1i8zcot68skw444c0ssgco4c88gw8
Password FUAnAv
Createdat 2011-08-04 16:09:13
Updatedat 2011-08-04 16:09:13
Lastlogin 2011-08-04 16:23:27
Locked
Expired
Expiresat 2011-08-04 16:23:27
Confirmationtoken 5laryepljuw4048wk4wc8gkok0skogo8wkow4ocgc088os4osk
Passwordrequestedat 2011-08-04 16:23:27
Roles Array
Credentialsexpired
Credentialsexpireat 2011-08-04 16:23:27
Id 8
=> j'aurais aimé qu'il me dise 0 plutôt que rien pour Locked, Expired et Credentialsexpired et rien plutôt que la date de création pour Expiresat et Credentialsexpireat
si quelqu'un peut m'éclairer, ca m'aiderait vachement.
merci.
gasmichou