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; }
* @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) {
* * @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) {