Beispiel #1
0
/**
 * A group of Twig functions for use in view templates
 *
 * @param  Twig_Environment $env
 * @param  Slim             $app
 * @return void
 */
function initialize(Twig_Environment $env, Slim $app)
{
    $env->addExtension(new TwigExtension());
    $env->addFunction(new Twig_SimpleFunction('urlFor', function ($routeName, $params = array()) use($app) {
        $url = $app->urlFor($routeName, $params);
        return $url;
    }));
    $env->addFunction(new Twig_SimpleFunction('hash', function ($value) {
        return md5($value);
    }));
    $env->addFunction(new Twig_SimpleFunction('gravatar', function ($email_hash, $size = 40) {
        $size = (int) $size == 0 ? 20 : (int) $size;
        $url = 'https://secure.gravatar.com/avatar/' . $email_hash . '?d=mm&s=' . $size;
        if (empty($email_hash)) {
            $url .= '&f=y';
        }
        return $url;
    }));
    $env->addFunction(new Twig_SimpleFunction('getCurrentUrl', function () {
        return $_SERVER['REQUEST_URI'];
    }));
    $env->addFunction(new Twig_SimpleFunction('urlForTalk', function ($eventSlug, $talkSlug, $params = array()) use($app) {
        return $app->urlFor('talk', array('eventSlug' => $eventSlug, 'talkSlug' => $talkSlug));
    }));
    $env->addFunction(new Twig_SimpleFunction('shortUrlForTalk', function ($talkStub) use($app) {
        $scheme = $app->request()->getScheme();
        $host = $app->request()->headers('host');
        return "{$scheme}://{$host}" . $app->urlFor('talk-quicklink', array('talkStub' => $talkStub));
    }));
    $env->addFunction(new Twig_SimpleFunction('shortUrlForEvent', function ($eventStub) use($app) {
        $scheme = $app->request()->getScheme();
        $host = $app->request()->headers('host');
        return "{$scheme}://{$host}" . $app->urlFor('event-quicklink', array('stub' => $eventStub));
    }));
    $env->addFunction(new Twig_SimpleFunction('dateRange', function ($start, $end, $format = 'd.m.Y', $separator = ' - ') use($app) {
        $formatter = new \Org_Heigl\DateRange\DateRangeFormatter();
        $formatter->setFormat($format);
        $formatter->setSeparator($separator);
        if (!$start instanceof \DateTimeInterface) {
            $start = new \DateTime($start);
        }
        if (!$end instanceof \DateTimeInterface) {
            $end = new \DateTime($end);
        }
        return $formatter->getDateRange($start, $end);
    }));
    /**
     * wrapped Slim request function getPath()
     */
    $env->addFunction(new Twig_SimpleFunction('currentPath', function () use($app) {
        $request = $app->request;
        $params = $app->request->get();
        $queryString = http_build_query($params);
        if ($queryString) {
            return $request->getPath() . urlencode('?' . $queryString);
        } else {
            return $request->getPath();
        }
    }));
}
 public function cleanupOldFiles()
 {
     $_SESSION['DB_DONE'] = true;
     $cleanupList = array_merge($this->pluginFinder->getDummyPlugins(), $this->filesFinder->getCleanupFiles());
     $this->cleanupMedia();
     if (count($cleanupList) == 0) {
         $_SESSION['CLEANUP_DONE'] = true;
         $this->response->redirect($this->app->urlFor('done'));
     }
     if ($this->request->isPost()) {
         $result = [];
         foreach ($cleanupList as $path) {
             $result = array_merge($result, Utils::cleanPath($path));
         }
         if (count($result) == 0) {
             $_SESSION['CLEANUP_DONE'] = true;
             $this->response->redirect($this->app->urlFor('done'));
         } else {
             $result = array_map(function ($path) {
                 return substr($path, strlen(SW_PATH) + 1);
             }, $result);
             $this->app->render('cleanup.php', ['cleanupList' => $result, 'error' => true]);
         }
     } else {
         $cleanupList = array_map(function ($path) {
             return substr($path, strlen(SW_PATH) + 1);
         }, $cleanupList);
         $this->app->render('cleanup.php', ['cleanupList' => $cleanupList, 'error' => false]);
     }
 }
 /**
  * Handle the subscription form request
  */
 public function subscribeAction()
 {
     try {
         $this->subscribeForm->validate($this->app->request()->params());
     } catch (FormValidationException $e) {
         $this->session->flash('message', 'Oh no, you have entered invalid data. Please correct your input and try again.');
         $this->session->flash('errors', $e->getErrors());
         $this->session->flash('input', $this->app->request()->params());
         $this->app->response->redirect($this->app->urlFor('home'));
         return;
     }
     //
     // TODO: Subscribe the client to your newsletter list... or stuff
     //
     $this->session->flash('message', 'Thanks for your request. You have successfully subscribed for our newsletter.');
     $this->app->response->redirect($this->app->urlFor('home'));
 }
 /**
  * $crud->url("user", ["male", "1970"]);
  * @param $routeName
  * @param array $data
  * @return string
  */
 public function url($routeName, $data = [])
 {
     $data2 = [];
     $i = 1;
     // Map key (p1, p2, p3....)
     foreach ($data as $value) {
         $data2["p" . $i++] = $value;
     }
     return $this->slim->urlFor("_louisCRUD_" . $routeName, $data2);
 }
 public function checkRequirements()
 {
     $paths = Utils::getPaths(SW_PATH . "/engine/Shopware/Components/Check/Data/Path.xml");
     clearstatcache();
     $systemCheckPathResults = Utils::checkPaths($paths, SW_PATH);
     foreach ($systemCheckPathResults as $value) {
         if (!$value['result']) {
             $fileName = SW_PATH . '/' . $value['name'];
             @mkdir($fileName, 0777, true);
             @chmod($fileName, 0777);
         }
     }
     clearstatcache();
     $systemCheckPathResults = Utils::checkPaths($paths, SW_PATH);
     $hasErrors = false;
     foreach ($systemCheckPathResults as $value) {
         if (!$value['result']) {
             $hasErrors = true;
         }
     }
     $directoriesToDelete = ['engine/Library/Mpdf/tmp' => false, 'engine/Library/Mpdf/ttfontdata' => false];
     CommonUtils::clearOpcodeCache();
     $results = [];
     foreach ($directoriesToDelete as $directory => $deleteDirecory) {
         $result = true;
         $filePath = SW_PATH . '/' . $directory;
         Utils::deleteDir($filePath, $deleteDirecory);
         if ($deleteDirecory && is_dir($filePath)) {
             $result = false;
             $hasErrors = true;
         }
         if ($deleteDirecory) {
             $results[$directory] = $result;
         }
     }
     if (!$hasErrors && $this->app->request()->get("force") !== "1") {
         // No errors, skip page except if force parameter is set
         $this->app->redirect($this->app->urlFor("dbmigration"));
     }
     $isSkippableCheck = $this->app->config('skippable.check');
     if ($isSkippableCheck && $this->app->request()->get("force") !== "1") {
         // No errors, skip page except if force parameter is set
         $this->app->redirect($this->app->urlFor("dbmigration"));
     }
     $this->app->render('checks.php', ['systemCheckResultsWritePermissions' => $systemCheckPathResults, 'filesToDelete' => $results, 'error' => $hasErrors]);
 }
Beispiel #6
0
    $echolinksys->dataFromTheServer();
    $app->log->info("Echolink CRON System - Update was performed from a remote server echolink.org");
    if ($echolinksys->responseStat != System::RESPONSE_OK) {
        $app->log->info("Echolink CRON System - Server problem ! (CODE: " . $echolinksys->responseStat . ")");
        $echolinksys->addHistoryLog("Server response problem! (CODE: " . $echolinksys->responseStat . ")");
    } else {
        $body = "Byl změněn stav převaděče.\r\n" . "Call: ";
        foreach ($echolinksys->messageEmail as $email) {
            //set template for email!
            $body = "Byl změněn stav převaděče.\r\n" . "Call: " . $email["callname"] . "\r\n" . "Nyní stav: " . ($email["newStatus"] == 1 ? "true" : "false") . "\r\n" . "Datum poslední změny: " . $email["oldCheckDate"] . "\r\n" . "Datum nynější změny: " . $email["checkDate"] . "\r\n";
            $echolinksys->mail($email["email"], "Echolink", $body, $from_name = "EcholinkSyS");
            $echolinksys->addHistoryLog("E-mail send to " . $email["callname"]);
            $app->log->info("Echolink CRON System - Email send to " . $email["callname"]);
        }
    }
    $url = $app->urlFor('list', array());
    $app->redirect($url);
})->name('check');
// updating data
$app->get('/cron', function () use($app) {
    $app->log->info("Echolink CRON System - '/cron' route");
    $echolinksys = new System("mysql:host=" . host . ";dbname=" . database, username, password);
    $echolinksys->dataFromTheServer();
    $app->log->info("Echolink CRON System - CRON -> Update was performed from a remote server echolink.org");
    if ($echolinksys->responseStat != System::RESPONSE_OK) {
        $app->log->info("Echolink CRON System - Server problem ! (CODE: " . $echolinksys->responseStat . ")");
        $echolinksys->addHistoryLog("Server response problem! (CODE: " . $echolinksys->responseStat . ")");
    } else {
        $body = "Byl změněn stav převaděče.\r\n" . "Call: ";
        foreach ($echolinksys->messageEmail as $email) {
            //set template for email!
Beispiel #7
0
 /**
  * @param  array  $params
  * @return string
  */
 public function getCurrentUrl($params = [])
 {
     $entries = $this->entries;
     $currentEntry = \current($entries);
     return $this->slim->urlFor($currentEntry, $params);
 }
Beispiel #8
0
        $app->response->finalize();
    }
    $app->logger->alert('UNHANDLED EXCEPTION', array('exception' => $e));
    if (isset($_SESSION['username']) && !empty($_SESSION['username'])) {
        return $app->render('errors/500-authed.mustache');
    }
    $app->render('errors/500-guest.mustache');
});
$app->view(new Mustache());
$app->view->parserOptions = $config['mustache'];
$app->view->appendData(array('copyrightYear' => date('Y')));
$app->add(new Navigation());
$app->add(new SessionCookie(array('expires' => '12 hours')));
$isLoggedIn = function () use($app) {
    if (empty($_SESSION['username'])) {
        $app->redirect($app->urlFor('home'));
    }
};
// home
$app->get('/', function () use($app) {
    $isAuthenticated = empty($_SESSION['username']) ? false : true;
    $app->render('home/index.mustache', array('isAuthenticated' => $isAuthenticated));
})->name('home');
$app->get('/login', function () use($app) {
    $app->redirect($app->urlFor('home'));
});
// login
$app->post('/login', function () use($app) {
    $params = $app->request()->post();
    // make sure the user name was passed.
    $username = trim($params['username']);
Beispiel #9
0
 /**
  * Configure routes to be handled by application.
  *
  * @param \Slim\Slim $slim Application
  */
 protected function configureRoutes(\Slim\Slim $slim)
 {
     $middleware = array('must-revalidate' => function () use($slim) {
         $slim->response->headers->set('Cache-Control', 'private, must-revalidate, max-age=0');
         $slim->response->headers->set('Expires', 'Thu, 01 Jan 1970 00:00:00 GMT');
     }, 'inject-user' => function () use($slim) {
         $user = $slim->authManager->getUserData();
         $slim->view->set('user', $user);
     }, 'require-user' => function () use($slim) {
         if ($slim->authManager->isAnonymous()) {
             if ($slim->request->isGet()) {
                 $uri = $slim->request->getUrl() . $slim->request->getPath();
                 $qs = Form::qsMerge();
                 if ($qs) {
                     $uri = "{$uri}?{$qs}";
                 }
                 $_SESSION[AuthManager::NEXTPAGE_SESSION_KEY] = $uri;
             }
             // FIXME: use i18n
             $slim->flash('error', 'Login required');
             $slim->flashKeep();
             $slim->redirect($slim->urlFor('login'));
         }
     });
     $slim->group('/', $middleware['inject-user'], function () use($slim, $middleware) {
         App::redirect($slim, '', 'random', 'home');
         App::redirect($slim, 'index', 'random');
         $slim->get('random', function () use($slim) {
             $page = new Pages\Random($slim);
             $page->setI18nContext($slim->i18nContext);
             $page->setQuips($slim->quips);
             $page();
         })->name('random');
         $slim->get('random.json', function () use($slim) {
             $slim->response->headers->set('Content-Type', 'application/json');
             $page = new Pages\Random($slim);
             $page->setI18nContext($slim->i18nContext);
             $page->setQuips($slim->quips);
             $page->setTemplate('random.json');
             $page();
         })->name('random.json');
         $slim->get('search', function () use($slim) {
             $page = new Pages\Search($slim);
             $page->setI18nContext($slim->i18nContext);
             $page->setQuips($slim->quips);
             $page();
         })->name('search');
         $slim->get('top', function () use($slim) {
             $page = new Pages\Top($slim);
             $page->setI18nContext($slim->i18nContext);
             $page->setQuips($slim->quips);
             $page();
         })->name('top');
         App::template($slim, 'login');
         $slim->get('logout', $middleware['must-revalidate'], function () use($slim) {
             $slim->authManager->logout();
             $slim->redirect($slim->urlFor('home'));
         })->name('logout');
         App::template($slim, 'about');
         App::template($slim, 'help');
     });
     // end group '/'
     $slim->group('/quip/', $middleware['inject-user'], function () use($slim, $middleware) {
         $slim->get(':id', function ($id) use($slim) {
             $page = new Pages\Quip($slim);
             $page->setI18nContext($slim->i18nContext);
             $page->setQuips($slim->quips);
             $page($id);
         })->name('quip');
         $slim->get(':id/edit', $middleware['require-user'], function ($id) use($slim) {
             $page = new Pages\Edit($slim);
             $page->setI18nContext($slim->i18nContext);
             $page->setQuips($slim->quips);
             $page($id);
         })->name('edit');
         $slim->post(':id/post', $middleware['require-user'], function ($id) use($slim) {
             $page = new Pages\Edit($slim);
             $page->setI18nContext($slim->i18nContext);
             $page->setQuips($slim->quips);
             $page($id);
         })->name('edit_post');
         $slim->post(':id/delete', $middleware['require-user'], function ($id) use($slim) {
             $page = new Pages\Delete($slim);
             $page->setI18nContext($slim->i18nContext);
             $page->setQuips($slim->quips);
             $page($id);
         })->name('delete_post');
         $slim->post(':id/vote', $middleware['require-user'], function ($id) use($slim) {
             $page = new Pages\Vote($slim);
             $page->setI18nContext($slim->i18nContext);
             $page->setQuips($slim->quips);
             $page($id);
         })->name('vote_post');
     });
     $slim->group('/oauth/', function () use($slim) {
         $slim->get('', function () use($slim) {
             $page = new Pages\OAuth($slim);
             $page->setOAuth($slim->oauthClient);
             $page('init');
         })->name('oauth_init');
         $slim->get('callback', function () use($slim) {
             $page = new Pages\OAuth($slim);
             $page->setI18nContext($slim->i18nContext);
             $page->setOAuth($slim->oauthClient);
             $page->setUserManager($slim->userManager);
             $page('callback');
         })->name('oauth_callback');
     });
     $slim->notFound(function () use($slim) {
         $slim->render('404.html');
     });
 }
Beispiel #10
0
 public function urlWithApikeyFor($name, $params = [])
 {
     return $this->app->urlFor($name, $params) . '?apikey=' . $GLOBALS['config']['apikey'];
 }
Beispiel #11
0
                    $routeItem->route = '';
                    if ($pages[$routeName][$lang]['route'] == '/') {
                        $routeItem->route = '/';
                    }
                }
                if ($pages[$routeName][$lang]['route'] != '/') {
                    $routeItem->route .= $pages[$routeName][$lang]['route'];
                }
            }
            $menu_langs[] = $routeItem;
            $routeItem = null;
        }
    }
    $data['menu_langs'] = $menu_langs;
    $app->view->appendData($data);
});
$data['menu'] = [];
foreach ($data['langs']['menu'] as $key => $value) {
    $menuItem = new stdClass();
    $menuItem->lang = $value;
    $menuItem->route = $app->urlFor($key);
    if (strlen($menuItem->route) > 1) {
        if (substr($menuItem->route, -1) == '/') {
            $menuItem->route = substr($menuItem->route, 0, -1);
        }
    }
    $data['menu'][] = $menuItem;
    $menuItem = null;
}
$app->view->appendData($data);
$app->run();
<?php

use SecucardConnect\Util\Logger;
use Slim\Slim;
use Slim\Views\Twig;
use Slim\Views\TwigExtension;
include_once __DIR__ . "/init.php";
/*
 * Prepare demo app
 */
$app = new Slim(array('debug' => true, 'templates.path' => __DIR__));
$app->container->singleton('log', function () {
    return new Logger(fopen("php://stdout", "a"), true);
});
// Prepare twig-view-renderer
$app->view(new Twig());
$app->view->parserOptions = array('charset' => 'utf-8', 'auto_reload' => true, 'strict_variables' => false, 'autoescape' => true, 'debug' => true);
$app->view->parserExtensions = array(new TwigExtension());
// add extensions
$app->view->getInstance()->addExtension(new Twig_Extension_Debug());
// add methods
$function = new Twig_SimpleFunction('urlFor', function ($name) use($app) {
    $url = $app->urlFor($name);
    // add index.php to url, so it is not broken
    if (strpos($url, 'index.php') === false) {
        $url = str_replace($name, 'index.php/' . $name, $url);
    }
    return $url;
});
$app->view->getInstance()->addFunction($function);
Beispiel #13
0
 // setup variables from the incoming post
 $album = $app->request->post('album');
 $email = $app->request->post('email');
 $code = strtoupper($app->request->post('code'));
 $subscribe = $app->request->post('mailing_list');
 $address = $app->request->post('address');
 // Set current entries to cookies
 $app->setCookie('code', $code);
 $app->setCookie('email', $email);
 $app->setCookie('album', $album);
 $app->setCookie('subscribe', $subscribe);
 // Make sure the Honey Pot field is empty.
 if (!empty($address)) {
     $app->flash('error', 'Your form submission has an error.');
     // Push them back to the main screen with generic error message
     $app->redirect($app->urlFor('home'));
 } elseif (!empty($code) && !empty($email)) {
     // Clean up the form submissions
     $cleanCode = filter_var($code, FILTER_SANITIZE_STRING);
     $cleanEmail = filter_var($email, FILTER_SANITIZE_EMAIL);
     $cleanAlbum = filter_var($album, FILTER_SANITIZE_STRING);
     // validate the email format
     $validEmail = filter_var($cleanEmail, FILTER_VALIDATE_EMAIL);
     // Validate the code entered
     $validCode = $dl->validate_code($album, $code);
     // Check if the code and email entered are valid
     if ($validEmail && $validCode === 200) {
         // Subscribe the user if they kept the subscribe option checked
         if ($subscribe) {
             $addUser = $mail->newsletterSignup($cleanEmail);
             print_r($addUser);
Beispiel #14
0
 public function urlFor($path)
 {
     return $this->app->urlFor('assets', array('path' => trim($path, '/')));
 }
        echo "Couldn't find the Message in the body.";
        $app->response()->setStatus(400);
    }
})->name("webhook");
/**
 * Install webhook with Telegram API. Uses the current url and "webhook" route.
 * POST to this URL to install your webhook with Telegram.
 *
 * Note: Telegram requires your webhooks to use HTTPS.
 *
 * For example:
 *
 * POST https://bot.mydomain.com/install HTTP/1.1
 */
$app->post("/install", function () use($app) {
    $url = $app->request()->getUrl() . $app->urlFor("webhook");
    try {
        $app->telegram->setWebhook($url);
    } catch (\Exception $e) {
        echo "Couldn't set the webhook. Have you set the bot auth token correctly?";
        $app->response()->setStatus(403);
    }
});
/**
 * Uninstall the webhook by sending a blank URL. Post to this URL to uninstall
 * your webhook.
 *
 * For example:
 *
 * POST https://bot.mydomain.com/uninstall HTTP/1.1
 */
Beispiel #16
0
 public function urlFor($name, $params = array())
 {
     return sprintf('/%s%s', $this->view()->getLang(), parent::urlFor($name, $params));
 }
<?php

require_once dirname(dirname(__FILE__)) . '/vendor/autoload.php';
use Slim\Slim;
$app = new Slim();
$app->config('debug', true);
$app->config('whoops.editor', 'sublime');
$app->add(new \Zeuxisoo\Whoops\Provider\Slim\WhoopsMiddleware());
$app->get('/', function () use($app) {
    $app->urlFor('index');
    // Throw exception, not defined route named 'index'
});
$app->run();
Beispiel #18
0
/**
 * A group of Twig functions for use in view templates
 *
 * @param  Twig_Environment $env
 * @param  Slim             $app
 * @return void
 */
function initialize(Twig_Environment $env, Slim $app)
{
    $env->addExtension(new TwigExtension());
    $env->addFunction(new Twig_SimpleFunction('urlFor', function ($routeName, $params = array()) use($app) {
        $url = $app->urlFor($routeName, $params);
        return $url;
    }));
    $env->addFunction(new Twig_SimpleFunction('hash', function ($value) {
        return md5($value);
    }));
    $env->addFunction(new Twig_SimpleFunction('gravatar', function ($email_hash, $size = 40) {
        $size = (int) $size == 0 ? 20 : (int) $size;
        $url = 'https://secure.gravatar.com/avatar/' . $email_hash . '?d=mm&s=' . $size;
        if (empty($email_hash)) {
            $url .= '&f=y';
        }
        return $url;
    }));
    $env->addFunction(new Twig_SimpleFunction('getCurrentRoute', function () use($app) {
        return $app->router->getCurrentRoute()->getName();
    }));
    $env->addFunction(new Twig_SimpleFunction('getCurrentUrl', function ($fullyQualified = false) use($app) {
        $url = $_SERVER['REQUEST_URI'];
        if ($fullyQualified) {
            $scheme = $app->request()->getScheme();
            $host = $app->request()->headers('host');
            $url = "{$scheme}://{$host}{$url}";
        }
        return $url;
    }));
    $env->addFunction(new Twig_SimpleFunction('urlForTalk', function ($eventSlug, $talkSlug, $params = array()) use($app) {
        return $app->urlFor('talk', array('eventSlug' => $eventSlug, 'talkSlug' => $talkSlug));
    }));
    $env->addFunction(new Twig_SimpleFunction('shortUrlForTalk', function ($talkStub) use($app) {
        $scheme = $app->request()->getScheme();
        $host = $app->request()->headers('host');
        return "{$scheme}://{$host}" . $app->urlFor('talk-quicklink', array('talkStub' => $talkStub));
    }));
    $env->addFunction(new Twig_SimpleFunction('shortUrlForEvent', function ($eventStub) use($app) {
        $scheme = $app->request()->getScheme();
        $host = $app->request()->headers('host');
        return "{$scheme}://{$host}" . $app->urlFor('event-quicklink', array('stub' => $eventStub));
    }));
    $env->addFunction(new Twig_SimpleFunction('dateRange', function ($start, $end, $format = 'd.m.Y', $separator = ' - ') use($app) {
        $formatter = new \Org_Heigl\DateRange\DateRangeFormatter();
        $formatter->setFormat($format);
        $formatter->setSeparator($separator);
        if (!$start instanceof \DateTimeInterface) {
            $start = new \DateTime($start);
        }
        if (!$end instanceof \DateTimeInterface) {
            $end = new \DateTime($end);
        }
        return $formatter->getDateRange($start, $end);
    }));
    /**
     * Convert a number of minutes into a prettier textual string.
     *
     * e.g.
     *     - 60 minutes converts to "1 hour"
     *     - 120 minutes converts to "2 hours"
     *     - 126 minutes converts to "2 hours, 6 minutes"
     */
    $env->addFunction(new Twig_SimpleFunction('prettyDuration', function ($duration) {
        $duration = (int) $duration;
        if ($duration < 60) {
            return "{$duration} minutes";
        }
        if ($duration == 60) {
            return "1 hour";
        }
        $hours = (int) ($duration / 60);
        $minutes = $duration - $hours * 60;
        if (!$minutes) {
            return "{$hours} hours";
        }
        return "{$hours} hours, {$minutes} minutes";
    }));
    /**
     * wrapped Slim request function getPath()
     */
    $env->addFunction(new Twig_SimpleFunction('currentPath', function () use($app) {
        $request = $app->request;
        $params = $app->request->get();
        $queryString = http_build_query($params);
        if ($queryString) {
            return $request->getPath() . urlencode('?' . $queryString);
        } else {
            return $request->getPath();
        }
    }));
    /**
     * Create link to log in with Facebook
     */
    $env->addFunction(new Twig_SimpleFunction('facebookLoginUrl', function () use($app) {
        if (!$app->config('facebook') || empty($app->config('facebook')['app_id'])) {
            // app_id isn't configured
            return '';
        }
        $req = $app->request();
        $redirectUrl = $req->getUrl();
        $redirectUrl .= $app->urlFor('facebook-callback');
        $url = 'https://www.facebook.com/dialog/oauth?';
        $url .= http_build_query(['scope' => 'email', 'client_id' => $app->config('facebook')['app_id'], 'redirect_uri' => $redirectUrl]);
        return $url;
    }, ['is_safe' => ['html']]));
}
Beispiel #19
0
        $authData = $app->auth->getIdentity();
        $authData['department_name'] = getNameForID($app->db, $authData['department']);
        $app->view()->appendData(array('userInfo' => $authData));
    }
    $app->view()->appendData(array('site_root' => $app->environment['SCRIPT_NAME'] . '/'));
});
$app->get('/', function () use($app) {
    $app->render('html/index.html');
})->name('index');
$app->get('/login', function () use($app) {
    $app->render('html/login.html');
})->name('login');
$app->post('/login', function () use($app) {
    $result = $app->authenticator->authenticate($app->request->post('username'), $app->request->post('password'));
    if ($result->isValid()) {
        $app->redirect($app->urlFor('profile'));
    } else {
        $app->flash('error', 'Invalid username or password provided');
        $app->redirect($app->urlFor('login'));
    }
});
$app->get('/logout', function () use($app) {
    $app->authenticator->logout();
    $app->redirect($app->urlFor('index'));
});
$app->get('/pwreset/:guid', function ($guid) use($app) {
    if (checkGUID($app->db, $guid)) {
        $app->render('html/pwreset.html', array('guid' => $guid));
    } else {
        $app->notFound();
    }