bootstrap.php 1.78 KB
Newer Older
Vassilis Kanellopoulos's avatar
Vassilis Kanellopoulos committed
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
/**
 * gredu_labs.
 * 
 * @link https://github.com/eellak/gredu_labs for the canonical source repository
 *
 * @copyright Copyright (c) 2008-2015 Greek Free/Open Source Software Society (https://gfoss.ellak.gr/)
 * @license GNU GPLv3 http://www.gnu.org/licenses/gpl-3.0-standalone.html
 */

return function (Slim\App $app) {

    $container = $app->getContainer();
14
    $events    = $container['events'];
Vassilis Kanellopoulos's avatar
Vassilis Kanellopoulos committed
15

16
17
18
    $events('on', 'app.autoload', function ($stop, $autoloader) {
        $autoloader->addPsr4('SchSync\\', __DIR__ . '/src');
    });
Vassilis Kanellopoulos's avatar
Vassilis Kanellopoulos committed
19

20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
    $events('on', 'app.services', function ($stop, $container) {
        $container[SchSync\Middleware\CreateUser::class] = function ($c) {
            return new SchSync\Middleware\CreateUser(
                $c['authentication_service'],
                $c['router']->pathFor('user.login'),
                $c['router']->pathFor('user.logout.sso'),
                $c['flash'],
                $c['logger']
            );
        };
        $container[SchSync\Middleware\CreateSchool::class] = function ($c) {
            return new SchSync\Middleware\CreateSchool(
                $c['ldap'],
                $c[SchMM\FetchUnit::class],
                $c['authentication_service'],
                $c['router']->pathFor('user.login'),
                $c['router']->pathFor('user.logout.sso'),
                $c['flash'],
                $c['logger']
            );
        };
    });
Vassilis Kanellopoulos's avatar
Vassilis Kanellopoulos committed
42

43
    $events('on', 'app.bootstrap', function ($stop, $app, $container) {
Vassilis Kanellopoulos's avatar
Vassilis Kanellopoulos committed
44
45
46
47
48
49
50
51
        foreach ($container['router']->getRoutes() as $route) {
            if ('user.login.sso' === $route->getName()) {
                $route->add(SchSync\Middleware\CreateUser::class)
                    ->add(SchSync\Middleware\CreateSchool::class);
                break;
            }
        }
    }, -10);
Vassilis Kanellopoulos's avatar
Vassilis Kanellopoulos committed
52
};