-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.php
More file actions
49 lines (38 loc) · 1.41 KB
/
index.php
File metadata and controls
49 lines (38 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
/**
* LDAP Front-Office User Management System
*
* Bootstrap and route configuration
*/
require_once 'vendor/autoload.php';
use Slim\Factory\AppFactory;
use Slim\Views\Twig;
use Slim\Views\TwigMiddleware;
use App\Controllers\HomeController;
use App\Controllers\AuthController;
use App\Controllers\UserController;
use App\Middleware\AuthMiddleware;
// Start session
session_start();
// Create Slim app
$app = AppFactory::create();
$app->addBodyParsingMiddleware();
// Add error middleware
$app->addErrorMiddleware(true, true, true);
// Create Twig view
$twig = Twig::create('templates', ['cache' => false]);
$app->add(TwigMiddleware::create($app, $twig));
// Create middleware instance
$authMiddleware = new AuthMiddleware();
// Routes - Public
$app->get('/', [HomeController::class, 'index']);
$app->post('/login', [AuthController::class, 'login']);
$app->post('/logout', [AuthController::class, 'logout']);
// Routes - Protected (require authentication)
$app->get('/search', [UserController::class, 'search'])->add($authMiddleware);
$app->get('/user/{username}', [UserController::class, 'show'])->add($authMiddleware);
$app->post('/user/{username}', [UserController::class, 'update'])->add($authMiddleware);
$app->get('/search-managers', [UserController::class, 'searchManagers'])->add($authMiddleware);
$app->get('/api/user/{username}', [UserController::class, 'get'])->add($authMiddleware);
// Run application
$app->run();