/** * @Route("/", name="homepage") */ public function indexAction(Request $request) { $user = new User(); $alert = null; $form = $this->createFormBuilder($user)->add('username', TextType::class)->add('password', PasswordType::class)->add('login', SubmitType::class, array('label' => 'Login'))->add('create', SubmitType::class, array('label' => 'Create'))->getForm(); $form->handleRequest($request); $session = new Session(); $cookie_token = $session->get('package_user_token'); if ($form->isSubmitted() && $form->isValid() || $cookie_token) { // ... perform some action, such as saving the task to the database $sm = $this->getDoctrine(); $user = $sm->getRepository('AppBundle:User')->findOneByUsername($user->getUsername()); if ($form->get('create')->isClicked() == 'create') { if ($user == null) { $user = new User(); $user->setUsername($form->get('username')->getData()); $passw = $form->get('password')->getData(); $user->setPassword($passw); $date = new \DateTime(); $token = $passw + $date->getTimestamp(); $user->setToken($token); $session->set('package_user_token', $token); $sm->getManager()->persist($user); $sm->getManager()->flush(); return $this->redirect($this->generateUrl('packages_index')); } else { $alert = "This username already exists."; } } else { if ($form->get('login')->isClicked() == 'login' || $cookie_token) { if ($cookie_token) { $user = $sm->getRepository('AppBundle:User')->findOneByToken($cookie_token); } if ($user != null) { $passwForm = md5($form->get('password')->getData()); if (strcmp($passwForm, $user->getPassword()) === 0) { $token = $user->getToken(); $session->set('package_user_token', $token); return $this->redirect($this->generateUrl('packages_index')); } else { $alert = "Password doesn't match."; } } else { $alert = "This username doesn't exists."; } } } } return $this->render('default/index.html.twig', array('form' => $form->createView(), 'alert' => $alert)); }
public function createAuthTokenFromCode(AuthCodeInterface $authCode) { $code = $this->base64url_encode($this->random_string(17)); $oauth = $this->container->getParameter("rest.config")["authentication"]["oauth"]; $parameter = $oauth["persistence"]; $auth_token_entity = $parameter["auth_token_entity"]; /** @var AuthTokenInterface $entity */ $entity = new $auth_token_entity(); $entity->setAuthToken($code); $entity->setScopes($authCode->getScopes()); $entity->setConsumer($authCode->getConsumer()); $entity->setUser($authCode->getUser()); $dt = new \DateTime(); $entity->setValidTill($dt->getTimestamp() + $oauth["token_lifetime"]); $manager = $this->getDoctrine()->getManager(); $manager->persist($entity); $manager->remove($authCode); $manager->flush(); return $entity; }
public function onKernelRequest(GetResponseEvent $event) { if ($event->isMasterRequest()) { $request = $event->getRequest(); $routePath = $request->getRequestUri(); if (strpos($routePath, 'api')) { $userId = $request->query->get('resources')['id']; if ($userId) { $user = $this->em->getRepository('UserBundle:User')->findOneById($userId); $lastUse = new Online(); $lastUse = $this->em->createQueryBuilder()->select('u')->from('AppBundle:Online', 'u')->orderBy('u.time', 'DESC')->where('u.user = :userId')->setParameter('userId', $userId)->setMaxResults(1)->getQuery()->getOneOrNullResult(); $date = new \DateTime(); $now = new \DateTime(); $date = $lastUse->getTime(); $diff = $now->getTimestamp() - $date->getTimestamp(); $now = (string) $now->format('Y-m-d'); $date = (string) $date->format('Y-m-d'); if ($now == $date) { $todayUse = $lastUse->getTodayUse(); if ($diff > 3600) { $diff = 0; } $todayUse = $todayUse + $diff; $lastUse->setUser($user); $lastUse->setTime(new \DateTime()); $lastUse->setTodayUse($todayUse); $this->em->persist($lastUse); $this->em->flush(); } else { $online = new Online(); $online->setUser($user); $online->setTime(new \DateTime()); $online->setTodayUse('0'); $this->em->persist($online); $this->em->flush(); } } } } }
/** * @Route("/removePackage/{package_id}") */ public function removePackageAction($package_id) { $session = new Session(); $cookie_token = $session->get('package_user_token'); $sm = $this->getDoctrine()->getManager(); $user = $sm->getRepository('AppBundle:User')->findOneByToken($cookie_token); $package = $user->getPackageById($package_id); if ($package != null) { $date = new \DateTime(); $package->setDateRecieved($date->getTimestamp()); $sm->remove($package); $sm->flush(); } return $this->redirect($this->generateUrl('packages_index')); }