Example #1
0
 public static function getJwt($uid = 1)
 {
     Auth::CreateJwtKey();
     $key = RedBeanPHP\R::load('jwt', 1);
     $jwt = Firebase\JWT\JWT::encode(array('exp' => time() + 60 * 90, 'uid' => $uid, 'mul' => 1), $key->secret);
     return $jwt;
 }
Example #2
0
 * @license GNU GPLv3 http://www.gnu.org/licenses/gpl-3.0-standalone.html
 */
return function (\Slim\App $app) {
    $container = $app->getContainer();
    $events = $container['events'];
    $events('on', 'app.services', function ($c) {
        $c['in_numbers_totals'] = function ($c) {
            return function () {
                return ['schools_cnt' => RedBeanPHP\R::count('school'), 'appforms_cnt' => (int) RedBeanPHP\R::getCell('SELECT COUNT(distinct school_id ) FROM applicationform')];
            };
        };
        $c['in_numbers_by_school_type'] = function ($c) {
            return function () {
                $schoolTypes = RedBeanPHP\R::getAssoc('SELECT id, name FROM schooltype');
                $schoolsByType = RedBeanPHP\R::getAssoc('SELECT school.schooltype_id, COUNT(*) AS cnt ' . 'FROM school ' . 'GROUP BY school.schooltype_id');
                $appFormByType = RedBeanPHP\R::getAssoc('SELECT school.schooltype_id, COUNT(DISTINCT applicationform.school_id) AS cnt ' . 'FROM applicationform INNER JOIN school ' . 'ON applicationform.school_id = school.id ' . 'GROUP BY school.schooltype_id');
                $results = [];
                foreach ($schoolsByType as $type => $cnt) {
                    if (!isset($schoolTypes[$type])) {
                        continue;
                    }
                    $results[$type] = ['type_id' => $type, 'type' => $schoolTypes[$type], 'schools_cnt' => (int) $cnt, 'appforms_cnt' => isset($appFormByType[$type]) ? (int) $appFormByType[$type] : 0];
                }
                usort($results, function ($a, $b) {
                    return strcasecmp($a['type'], $b['type']);
                });
                return $results;
            };
        };
    });
    $events('on', 'app.bootstrap', function ($app, $c) {
Example #3
0
 *
 * @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();
    $events = $container['events'];
    $events('on', 'app.autoload', function ($autoloader) {
        $autoloader->addPsr4('GrEduLabs\\Application\\', __DIR__ . '/src');
    });
    $events('on', 'app.services', function (Slim\Container $container) {
        session_name('GrEduLabs');
        session_start();
        // setup RedbeanPHP
        define('REDBEAN_MODEL_PREFIX', '');
        RedBeanPHP\R::setup($container['settings']['db']['dsn'], $container['settings']['db']['user'], $container['settings']['db']['pass'], isset($container['settings']['db']['freeze']) ? $container['settings']['db']['freeze'] : true);
        $container['view'] = function ($c) {
            $settings = $c['settings'];
            $view = new Slim\Views\Twig($settings['view']['template_path'], $settings['view']['twig']);
            $view->addExtension(new Slim\Views\TwigExtension($c['router'], $c['request']->getUri()));
            $view->addExtension($c[GrEduLabs\Application\Twig\Extension\Navigation::class]);
            $view->addExtension(new Knlv\Slim\Views\TwigMessages($c['flash']));
            return $view;
        };
        $container[GrEduLabs\Application\Twig\Extension\Navigation::class] = function ($c) {
            $settings = $c['settings'];
            $nav = $settings['navigation'];
            $nav['main']['forum']['href'] = $settings['forum_url'];
            return new GrEduLabs\Application\Twig\Extension\Navigation($nav, $c['router'], $c['request']);
        };
        $container['flash'] = function ($c) {