public function get($cssFile) { $scssPath = PROJECT_ROOT . '/src/scss'; $scssFile = $scssPath . '/' . str_replace('css', 'scss', $cssFile); /** Pass the route if file don't exists, will result in 404 */ if (!file_exists($scssFile)) { return $this->slim->pass(); } $this->slim->response->headers->set('Content-Type', 'text/css'); $this->compiler->addImportPath($scssPath); echo $this->compiler->compile(file_get_contents($scssFile)); }
/** * Adds a backend routes * @param $appInstance * @return void */ public static function addRouteDefinitions(Slim $appInstance) { $appInstance->group('/admin', function () use($appInstance) { $appInstance->get('/', function () { print '<h1>A Simple Backend</h1>'; }); $appInstance->map("/chpass", function () use($appInstance) { if (EMA_ADMIN_CHPASS) { AdminPasswordChange_controller::process(); } else { $appInstance->pass(); } })->via('GET', 'POST'); $appInstance->map("/update", function () use($appInstance) { ClassAndMethodsDispatcher::updateGPMethods(); })->via('GET', 'POST'); $appInstance->post("/login", function () use($appInstance) { $appInstance->response->headers->set('Cache-Control', 'no-store'); if (isset($_POST['username']) && is_string($_POST['username']) && (isset($_POST['password']) && is_string($_POST['password']))) { try { try { $user = new UserAuth(); } catch (SessionExpired $e) { $user = new UserAuth(); } $user->userLogin($_POST['username'], $_POST['password']); if (!$user->isAdmin()) { $user->logout(); throw new LoginIncorrect('You are not allowed to login here'); } $appInstance->response->headers->set('Content-Type', 'application/json'); print json_encode($user->getSessionAuthData()); } catch (LoginIncorrect $e) { $appInstance->response->headers->set('Content-Type', 'text/plain'); $appInstance->response->setStatus(400); print $e->getMessage(); } } else { $appInstance->response->headers->set('Content-Type', 'text/plain'); $appInstance->response->setStatus(400); print 'Bad request'; } }); $appInstance->map('/logout', function () use($appInstance) { try { $user = new UserAuth(); if ($user->isUserLoggedInSimple()) { $user->logout(); } } catch (SessionExpired $e) { } })->via('GET', 'POST'); }); }
/** * Middleware callback used to check for valid store. * It is not intended that you call this function yourself. * @throws \InvalidArgumentException Exception thrown if callback invoked incorrectly. */ public function callbackCheckDataset() { // get the store name $args = func_get_args(); if (count($args) === 0 || !$args[0] instanceof \Slim\Route) { throw new \InvalidArgumentException('This method should not be invoked outside of the Slim Framework'); } $this->store = $args[0]->getParam('store'); // if the store is not valid, skip the current route if (!isset($this->stores[$this->store])) { $this->app->pass(); } // display name of store in titlebar $u = $this->app->request()->getRootUri() . '/datasets/' . $this->store; $this->app->view()->set('titleSupplementary', '<a href="' . htmlspecialchars($u, ENT_QUOTES) . '" class="navbar-brand supplementary">' . htmlspecialchars($this->storeOptions[$this->store]['shortName']) . '</a>'); }
function send404NotFound(Slim $app) { $app->pass(); }