Example #1
0
File: Scss.php Project: etu/0bRSS
 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));
 }
Example #2
0
 /**
  * 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');
     });
 }
Example #3
0
 /**
  * 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();
}