|
@@ -6,13 +6,17 @@ use App\Auth\LocalAdmin;
|
|
|
use App\Auth\OidcClient;
|
|
use App\Auth\OidcClient;
|
|
|
use App\Auth\SessionGuard;
|
|
use App\Auth\SessionGuard;
|
|
|
use App\Controllers\AuthController;
|
|
use App\Controllers\AuthController;
|
|
|
|
|
+use App\Controllers\SprintController;
|
|
|
|
|
+use App\Controllers\WorkerController;
|
|
|
use App\Db\Connection;
|
|
use App\Db\Connection;
|
|
|
use App\Db\Migrator;
|
|
use App\Db\Migrator;
|
|
|
use App\Http\Request;
|
|
use App\Http\Request;
|
|
|
use App\Http\Response;
|
|
use App\Http\Response;
|
|
|
use App\Http\Router;
|
|
use App\Http\Router;
|
|
|
use App\Http\View;
|
|
use App\Http\View;
|
|
|
|
|
+use App\Repositories\SprintRepository;
|
|
|
use App\Repositories\UserRepository;
|
|
use App\Repositories\UserRepository;
|
|
|
|
|
+use App\Repositories\WorkerRepository;
|
|
|
use App\Services\AuditLogger;
|
|
use App\Services\AuditLogger;
|
|
|
|
|
|
|
|
// Buffer output so a stray warning/notice can't send headers before
|
|
// Buffer output so a stray warning/notice can't send headers before
|
|
@@ -69,32 +73,39 @@ try {
|
|
|
// ---------------------------------------------------------------------------
|
|
// ---------------------------------------------------------------------------
|
|
|
// Shared services
|
|
// Shared services
|
|
|
// ---------------------------------------------------------------------------
|
|
// ---------------------------------------------------------------------------
|
|
|
-$view = new View(APP_ROOT . '/views');
|
|
|
|
|
-$users = new UserRepository($pdo);
|
|
|
|
|
-$audit = new AuditLogger($pdo);
|
|
|
|
|
-$auth = new AuthController($pdo, $users, $audit, $view);
|
|
|
|
|
|
|
+$view = new View(APP_ROOT . '/views');
|
|
|
|
|
+$users = new UserRepository($pdo);
|
|
|
|
|
+$workers = new WorkerRepository($pdo);
|
|
|
|
|
+$sprints = new SprintRepository($pdo);
|
|
|
|
|
+$audit = new AuditLogger($pdo);
|
|
|
|
|
+$auth = new AuthController($pdo, $users, $audit, $view);
|
|
|
|
|
+$workerCtrl = new WorkerController($pdo, $users, $workers, $audit, $view);
|
|
|
|
|
+$sprintCtrl = new SprintController($pdo, $users, $sprints, $audit, $view);
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// ---------------------------------------------------------------------------
|
|
|
// Routing
|
|
// Routing
|
|
|
// ---------------------------------------------------------------------------
|
|
// ---------------------------------------------------------------------------
|
|
|
$router = new Router();
|
|
$router = new Router();
|
|
|
|
|
|
|
|
-$router->get('/', function (Request $req) use ($view, $pdo, $users, $appEnv): Response {
|
|
|
|
|
- $currentUser = SessionGuard::currentUser($users);
|
|
|
|
|
|
|
+$router->get('/', function (Request $req) use ($view, $pdo, $users, $sprints, $appEnv): Response {
|
|
|
|
|
+ $currentUser = SessionGuard::currentUser($users);
|
|
|
$schemaVersion = (int) $pdo->query(
|
|
$schemaVersion = (int) $pdo->query(
|
|
|
'SELECT COALESCE(MAX(version), 0) FROM schema_version'
|
|
'SELECT COALESCE(MAX(version), 0) FROM schema_version'
|
|
|
)->fetchColumn();
|
|
)->fetchColumn();
|
|
|
|
|
|
|
|
|
|
+ $sprintRows = $currentUser === null ? [] : $sprints->allWithCounts();
|
|
|
|
|
+
|
|
|
return Response::html($view->render('home', [
|
|
return Response::html($view->render('home', [
|
|
|
- 'title' => 'Sprint Planner',
|
|
|
|
|
- 'currentUser' => $currentUser,
|
|
|
|
|
- 'schemaVersion' => $schemaVersion,
|
|
|
|
|
- 'dbPath' => Connection::path(),
|
|
|
|
|
- 'appEnv' => $appEnv,
|
|
|
|
|
- 'oidcConfigured' => OidcClient::isConfigured(),
|
|
|
|
|
|
|
+ 'title' => 'Sprint Planner',
|
|
|
|
|
+ 'currentUser' => $currentUser,
|
|
|
|
|
+ 'schemaVersion' => $schemaVersion,
|
|
|
|
|
+ 'dbPath' => Connection::path(),
|
|
|
|
|
+ 'appEnv' => $appEnv,
|
|
|
|
|
+ 'oidcConfigured' => OidcClient::isConfigured(),
|
|
|
'localAdminEnabled' => LocalAdmin::isEnabled(),
|
|
'localAdminEnabled' => LocalAdmin::isEnabled(),
|
|
|
- 'authError' => isset($req->query['auth_error']),
|
|
|
|
|
- 'csrfToken' => SessionGuard::csrfToken(),
|
|
|
|
|
|
|
+ 'authError' => isset($req->query['auth_error']),
|
|
|
|
|
+ 'csrfToken' => SessionGuard::csrfToken(),
|
|
|
|
|
+ 'sprintRows' => $sprintRows,
|
|
|
]));
|
|
]));
|
|
|
});
|
|
});
|
|
|
|
|
|
|
@@ -106,6 +117,14 @@ $router->post('/auth/logout', $auth->logout(...));
|
|
|
$router->get('/auth/local', $auth->loginLocalForm(...));
|
|
$router->get('/auth/local', $auth->loginLocalForm(...));
|
|
|
$router->post('/auth/local', $auth->loginLocal(...));
|
|
$router->post('/auth/local', $auth->loginLocal(...));
|
|
|
|
|
|
|
|
|
|
+$router->get('/workers', $workerCtrl->index(...));
|
|
|
|
|
+$router->post('/workers', $workerCtrl->create(...));
|
|
|
|
|
+$router->post('/workers/{id}', $workerCtrl->update(...));
|
|
|
|
|
+
|
|
|
|
|
+$router->get('/sprints/new', $sprintCtrl->newForm(...));
|
|
|
|
|
+$router->post('/sprints', $sprintCtrl->create(...));
|
|
|
|
|
+$router->get('/sprints/{id}', $sprintCtrl->show(...));
|
|
|
|
|
+
|
|
|
// ---------------------------------------------------------------------------
|
|
// ---------------------------------------------------------------------------
|
|
|
// Dispatch
|
|
// Dispatch
|
|
|
// ---------------------------------------------------------------------------
|
|
// ---------------------------------------------------------------------------
|