if (is_null($status = $statusFinder->findOneById($id))) { throw new HttpException(404, 'Oups! This status cannot be found :('); } $data = array('status' => $status); if ($request->guessBestFormat() === 'json') { return new JsonResponse($data); } return $app->render('status.php', $data); }); /** * Add a status */ $app->post('/statuses', function (Request $request) use($app, $statusFinder, $statusDM) { $status = new Status(null, $request->getParameter('message'), $request->getParameter('authorName'), new DateTime(), $request->getUserAgent()); $statusDM->persist($status); if ($request->guessBestFormat() === 'json') { return new JsonResponse("statuses/" . count($statusFinder->findAll()), 201); } $app->redirect('/statuses'); }); /** * Delete a status */ $app->delete('/statuses/(\\d+)', function (Request $request, $id) use($app, $statusFinder, $statusDM) { if (is_null($status = $statusFinder->findOneById($id))) { throw new HttpException(404, 'Oups! This status cannot be found :('); } $statusDM->remove($status); if ($request->guessBestFormat() === 'json') { return new JsonResponse(null, 204); } $app->redirect('/statuses');
$app->get('/statusesForm', function (Request $request) use($app) { return $app->render("statusesForm.php", array('user' => $_SESSION['login'], 'erreur' => '', 'message' => '')); }); $app->post('/statuses', function (Request $request) use($app, $statusMapper) { $message = htmlspecialchars($request->getParameter('message')); $user = htmlspecialchars($request->getParameter('username')); if (!isset($user) || !isset($message)) { $erreur = "Empty parameters"; $response = new Response($erreur, 400); $response->send(); return $app->render('statusesForm.php', array('user' => $user, 'message' => $message, 'error' => $erreur)); } if (!Verification::checkTweetMessage($message)) { $erreur = "The message size is larger than 140"; $response = new Response($erreur, 400); $response->send(); return $app->render('statusesForm.php', array('user' => $user, 'message' => $message, 'error' => $erreur)); } if ($_SESSION['login'] != $user) { $erreur = "You can't use another username for post a status"; $response = new Response($erreur, 400); $response->send(); return $app->render('statusesForm.php', array('user' => $user, 'message' => $message, 'error' => $erreur)); } $statusMapper->persist(new Status(null, $user, $message, date("Y-m-d H:i:s"))); $response = new Response("Status add correctly", 201); $response->send(); $app->redirect('/statuses', 201); }); $app->delete('/statuses/(\\d+)', function (Request $request, $id) use($app, $statusMapper, $statusFinder) { if (!Verification::checkInteger($id)) { $response = new Response("Error with the object ID", 400);
// Matches if the HTTP method is GET -> /statuses/id $app->get('/statuses/(\\d+)', function (Request $request, $id) use($app, $statusFinder) { if (null === ($status = $statusFinder->findOneById($id))) { throw new HttpException(404); } $data = array('status' => $status); if ($request->guessBestFormat() === 'json') { return new JsonResponse($data); } return $app->render('status.php', $data); }); // Matches if the HTTP method is POST -> /statutes $app->post('/statuses', function (Request $request) use($app, $statusFinder, $statusMapper) { $status = new Status(null, htmlspecialchars($request->getParameter('user')), htmlspecialchars($request->getParameter('message')), date("Y-m-d H:i:s")); $statusMapper->persist($status); if ($request->guessBestFormat() === 'json') { return new JsonResponse("statuses/" . count($statusFinder->findAll()), 201); } $app->redirect('/statuses'); }); // Matches if the HTTP method is POST -> /login $app->post('/login', function (Request $request) use($app, $userFinder) { $userName = $request->getParameter('userName'); $userPassword = $request->getParameter('userPassword'); if (!isset($userName) || !isset($userPassword)) { $response = new Response("Empty Username or password", 400); $response->send(); return $app->render('login.php', array('error' => "Empty Username or password", 'userName' => $userName)); } $user = $userFinder->findOneByUserName($userName); if (!password_verify($userPassword, $user->getUserPassword())) { $response = new Response("Bad password", 400);
$app->get('/logout', function (Request $request) use($app) { session_destroy(); return $app->redirect('/'); }); /* * POST /statuses */ $app->post('/statuses', function (Request $request) use($app, $statusMapper) { $format = $request->guessBestFormat(); if ("html" === $format || "json" === $format) { //$user = htmlspecialchars($request->getParameter('username')); //$message = htmlspecialchars($request->getParameter('message')); //$finder = new Model\JsonFinder(); //$finder->create($user, $message); if (isset($_SESSION['is_authenticated']) && $_SESSION['is_authenticated']) { $user = $_SESSION['user']; } else { $user = new \Model\User(null, "Anonymous", null); } $status = new \Model\Status(null, new \DateTime(), $user, $request->getParameter('message')); $statusMapper->persist($status); } $app->redirect('/statuses'); }); /* * POST /register */ $app->post('/register', function (Request $request) use($app, $userMapper) { $name = $request->getParameter('user'); $password = $request->getParameter('password'); $user = new \Model\User(null, $name, password_hash($password, PASSWORD_DEFAULT));
$app->post('/new', function (Request $request) use($app) { $extension = $request->request->get('extension'); $mimeType = $request->request->get('mime_type'); $password = $request->request->get('password'); foreach ([$extension, $mimeType, $password] as $input) { if (!is_string($input) || !strlen($input)) { $app->abort(403, 'Bad input'); } } $extension = strtolower(preg_replace('/^[.]+/', '', $extension)); $extension = preg_replace('/[.]+/', '.', $extension); if (!preg_match('/[A-Za-z0-9.]/', $extension)) { $app->abort(500, 'Invalid filename extension'); } $authorized = password_verify($password, $app['password']); if (!$authorized) { $app->abort(403, "You aren't allowed to be here, fucko"); } $file = $request->files->get('file'); if (!$file instanceof UploadedFile || !$file->isValid()) { $app->abort(500, 'Either there was no file or the upload failed'); } $app['db']->beginTransaction(); $sth = $app['db']->prepare('INSERT INTO extensions (extension, mime_type) VALUES (?, ?)'); $sth->bindValue(1, $extension); $sth->bindValue(2, $mimeType); $sth->execute(); $file->move(__DIR__ . '/repository', 'tidus_laugh.' . $extension); $app['db']->commit(); return $app->redirect('/manage', 303); });
$session = new Session($db); $app::setItem('db', $db); $app::setItem('ad', $ad); $app::setItem('session', $session); //Аутентификация по LDAP $app->post('/v1/auth/', function ($app) { //Устанавливаем время сессии $session_expire = 60; $session_expire = time() + intval($session_expire); $db = $app::getItem('db'); $ad = $app::getItem('ad'); $session = $app::getItem('session'); $input = Helper::get_input_data(); if (isset($input['login']) || isset($input['pass'])) { $user = new UserLDAP($ad, $db); $auth = $user->authentication($input['login'], $input['pass']); if ($auth === false) { $app->getResponse()->write(array('error' => $user->error()), 401); } else { //Создаем сессию $session_id = $session->create($input['login'], $session_expire); $app->getResponse()->write(array('session' => $session_id)); } } else { $app->getResponse()->write(array('error' => 'Login or pass empty'), 400); } }); $app->post('/app/users/:name', function () { echo 'i am post'; }); $app->run();
} if (isset($_SESSION['user'])) { $data['user'] = $_SESSION['user']; } else { $data['user'] = '******'; } return $app->render('status.php', $data); }); // Matches if the HTTP method is POST -> /statutes $app->post('/statuses', function (Request $request) use($app, $statusFinder, $statusMapper, $userMapper) { $data['user'] = htmlspecialchars($request->getParameter('user')); $data['message'] = htmlspecialchars($request->getParameter('message')); if (empty($data['message'])) { $_SESSION['error'] = "Empty status"; return $app->redirect('/statuses'); } $status = new Status(null, $data['user'], $data['message'], date('Y-m-d H:i:s')); $statusMapper->persist($status); if ($request->guessBestFormat() === 'json') { return new JsonResponse(json_encode('statuses/' . $status), 201); } return $app->redirect('/statuses'); }); // Matches if the HTTP method is POST -> /login $app->post('/login', function (Request $request) use($app, $userFinder) { $data['user'] = $request->getParameter('user'); $data['password'] = $request->getParameter('password'); if (Validation::validateConnection($data['user'], $data['password'])) { $data['error'] = 'Empty Username or password'; return $app->render('login.php', $data); } if (null == ($user = $userFinder->findOneByUserName($data['user']))) {