示例#1
0
文件: user.php 项目: enygma/conftrack
<?php

$app->group('/user', function () use($app) {
    $app->get('/login', function ($request, $response, $args) {
        $data = [];
        $this->view->render($response, 'user/login.twig', $data);
    });
    $app->post('/login', function ($request, $response, $args) {
        $container = $this->getContainer();
        $data = $request->getParsedBody();
        $user = new \Conftrack\Model\User($container->get('db'));
        $user->find(['username' => $data['username']]);
        if ($user->id === null) {
            $this->flash->addMessage('danger', 'Account not found.');
        }
        if (!$user->isActive()) {
            $this->flash->addMessage('danger', 'User inactive!');
            $this->view->render($response, 'user/login.twig', $data);
            return false;
        }
        $subject = new \Conftrack\VerifyUser($user);
        $enforcer = \Psecio\Verify\Enforcer::make('password');
        if ($enforcer->login($subject, $data['password']) === false) {
            $this->flash->addMessage('danger', 'Invalid password!');
            $this->view->render($response, 'user/login.twig', $data);
            return false;
        }
        // Login success! Start up the session
        $this->flash->addMessage('success', 'Login successful!');
        $segment = $container->get('session')->getSegment('default');
        $segment->set('user', $user->toArray(['password']));