Session: User

login example using the user component

$app->middleware('is', function($role){
    if(!$this->user->is($role)){
        $this->redirect('/login');
    }
});

/**
 * @is Admin
 */
$app->get('/admin', function(){
    return $this->render('dashboard',['username'=>$this->user->username]);
});

$app->get('/login', function(){
    return $this->render('login');
});

$app->post('/login', function(){
    $user = $this->db->user->fetchOne([
        'username' => $this->body->login,
        'password' => $this->body->password,
    ]);
    if($user){
        $this->user->login($user['id'], [
            'username' => $user['username'],
            'role' => $user['role'],
            'permissions' => $user['permissions'],
        ]);
        return $this->redirect('/admin');
    }
    return $this->render('login');
});

$this->get('/logout', function(){
    $this->user->logout();
    $this->redirect('/login');
});