container = $container; } /** * @param int $id_utilisateur * @param Lettre $lettre * @return mixed */ public function encodePotageAccess($id_utilisateur, Lettre $lettre) { /** * Si l'utilisateur n'est pas associé à un user, token => null * il faudra alors l'inviter à se créer un compte user, * après quoi il accèdera à sa page today, qui lui affichera alors les offres liée à ses groupes. * Et cela même s'il n'avait pas encore de compte user quand la lettre a été envoyée ! * * @var User $user */ $user = $this->container->get('doctrine') ->getRepository('PotageBundle:User') ->findOneByUtilisateur($id_utilisateur); //dump($user); if ($user !== null) { // TODO ici une recette secrète, hors dépôt GIT !!! $token = $user->getId() .'_'. $user->getTokenKey() .'_'. $lettre->getId() .'_'. $lettre->getReference(); return base64_encode($token); } else { return null; } } /** * @param $token * @return array */ public function decodePotageAccess($token) { $data = explode('_', base64_decode($token)); return array( 'user_id' => $data[0], 'token_key' => $data[1], 'lettre_id' => $data[2], 'lettre_ref' => $data[3], ); } }