$view->setTemplatesDirectory('./../templates'); $view->parserOptions = array('debug' => true, 'cache' => dirname(__FILE__) . '/cache'); $view->parserExtensions = array(new \Twig_Extension_Debug(), new \Slim\Views\TwigExtension()); $app->container->singleton('v', function () { return new Respect\Validation\Validator(); }); /** * @param string $role * @param $entityManager * * @return Closure */ $authenticate = function ($role = 'USER', $entityManager) { return function () use($role, $entityManager) { $app = \Slim\Slim::getInstance(); if (isset($_SESSION['username'])) { $userRepository = $entityManager->getRepository('Sarcoma\\Users\\Users'); $user = $userRepository->findOneBy(array('username' => $_SESSION['username'])); if (!\Sarcoma\Users\Users::auth($user->getRole(), $role)) { $app->flash('message', 'Login required'); $app->redirect($app->urlFor('login')); } } else { $app->flash('message', 'Login required'); $app->redirect($app->urlFor('login')); } }; }; require_once '../app/routes/routes.php'; require_once '../app/functions/cookies.php'; $app->run();
$user->setActivationToken(true); $entityManager->persist($user); $entityManager->flush(); $app->flash('message', 'User activated'); $app->redirect($app->urlFor('message')); } } $app->flash('message', 'Could not activate account'); $app->redirect($app->urlFor('message')); })->name('activate'); $app->post('/create-user/', function () use($app, $view, $entityManager) { $username = trim($_POST['username']); $email = trim($_POST['email']); $password = trim($_POST['password']); if (functions\CSRF::check($_POST['csrf'])) { $user = new Users(); $error = $user->validate($username, $email, $password); if (empty($error)) { $user->setUsername($username); $user->setEmail($email); $user->setPasswordHash($password); $user->setRole(); $user->setActivationToken(); $entityManager->persist($user); $entityManager->flush(); $createUser = $user->getId() ? true : false; if ($createUser) { $link = 'http://localhost' . $app->urlFor('activate', array('token' => $user->getActivationToken(), 'hash' => $user->hashUsername($user->getUsername()))); $message = new Email('#262729', 18); $message->setBodyColor('#eeeeee'); $message->setTableColor('#e8e8e8');