示例#1
0
文件: router.php 项目: ByteKing/Main
$core->permissions = new Permissions($core->server->getData('id'));
/*
 * Twig Setup
 */
$core->twig->addGlobal('l', $core->language);
// @TODO Change this to addGlobal('language', $core->language) to allow access as {{ language.render('template') }}
$core->twig->addGlobal('settings', Settings::config());
$core->twig->addGlobal('permission', $core->permissions);
$core->twig->addGlobal('fversion', trim(file_get_contents(SRC_DIR . 'versions/current')));
$core->twig->addGlobal('admin', (bool) $core->user->getData('root_admin'));
$core->twig->addGlobal('version', Version::get());
//Check if panel is completely installed.
//If no settings are found, then we should load configuration setup and skip anything else
if (ORM::for_table("acp_settings")->count() == 0) {
    include BASE_DIR . 'install/configure.php';
    $klein->dispatch();
    return;
}
$klein->respond('!@^(/auth/|/language/|/api/|/assets/)', function ($request, $response, $service, $app, $klein) use($core) {
    if (!$core->auth->isLoggedIn()) {
        if (!strpos($request->pathname(), "/ajax/")) {
            $service->flash('<div class="alert alert-danger">You must be logged in to access that page.</div>');
            $response->redirect('/auth/login')->send();
        } else {
            $response->code(403);
            $response->body('Not Authenticated.')->send();
        }
        $klein->skipRemaining();
    }
});
$klein->respond('@^/auth/', function ($request, $response, $service, $app, $klein) use($core) {
示例#2
0
    include "{$docRoot}/cdn/js/get.php";
    $GLOBALS['itsMyPage'] = true;
});
$router->respond("/url?/[**:url]?", function ($request, $response) use($docRoot) {
    $response->redirect($request->url);
});
/**
 * Open Auth (Opth)
 */
$router->respond("/opth/api/users/[*:token]?/[**:what]", function ($request, $response) use($docRoot, $OP) {
    $user_token = $request->token;
    $what = $request->what;
    include "{$docRoot}/source/opth/api/users.php";
    $GLOBALS['itsMyPage'] = true;
});
$router->respond("/[**:path]", function ($request, $response) use($docRoot, $OP) {
    $loc = docRoot . "/source/{$request->path}.php";
    if (!isset($GLOBALS['itsMyPage'])) {
        if (file_exists($loc)) {
            makeSource($request->path);
        } else {
            $response->code(404);
            $OP->ser();
            return false;
        }
    }
});
/* End Routing for Pages */
/* Finish the Routing */
$router->dispatch();
示例#3
0
    $_POST = array_merge($_POST, $bodyData);
    if ($method === 'POST') {
        $_POST = array_merge($_POST, $bodyData);
    } elseif ($method === 'GET') {
        $_GET = array_merge($_GET, $bodyData);
    }
}
/*$rememberMeCookie = null;
if (!isset($_COOKIE['rememberme']) && empty($_COOKIE['rememberme'])){
    if (isset($_POST['REMEMBERMECOOKIE']))
        $_COOKIE['rememberme'] = $_POST['REMEMBERMECOOKIE'];
    else if (isset($_GET['REMEMBERMECOOKIE']))
        $_COOKIE['rememberme'] = $_GET['REMEMBERMECOOKIE'];
}*/
require_once __DIR__ . '/../libs/router/autoload.php';
require_once __DIR__ . '/../libs/medoo-db/medoo.min.php';
require_once __DIR__ . '/../libs/medoo-db/db.php';
require_once 'load-user-system.php';
require_once 'load-models.php';
global $klein;
//$klein = new \Klein\Klein();
define('APP_PATH', '/server');
$klein = new \Klein\Klein();
$request = \Klein\Request::createFromGlobals();
// Grab the server-passed "REQUEST_URI"
$uri = $request->server()->get('REQUEST_URI');
// Set the request URI to a modified one (without the "subdirectory") in it
$request->server()->set('REQUEST_URI', substr($uri, strlen(APP_PATH)));
require_once __DIR__ . '/../routes.php';
$klein->dispatch($request);
示例#4
0
<?php

session_start();
require_once __DIR__ . '/vendor/autoload.php';
/**
 * Routes of the apps.
 * Handle all routes of the apps in (app/controllers/routes.php).
 * @var Klein
 */
$route = new Klein\Klein();
require_once 'app/controllers/routes.php';
$route->dispatch();
示例#5
0
文件: Init.php 项目: dimns/mflphp
 /**
  * Старт приложения
  *
  * @return null
  *
  * @version 11.11.2016
  * @author Дмитрий Щербаков <*****@*****.**>
  */
 public function start()
 {
     //
     //                                     ,,
     //                       mm     mm     db
     //                       MM     MM
     //     ,pP"Ybd  .gP"Ya mmMMmm mmMMmm `7MM  `7MMpMMMb.  .P"Ybmmm ,pP"Ybd
     //     8I   `" ,M'   Yb  MM     MM     MM    MM    MM :MI  I8   8I   `"
     //     `YMMMa. 8M""""""  MM     MM     MM    MM    MM  WmmmP"   `YMMMa.
     //     L.   I8 YM.    ,  MM     MM     MM    MM    MM 8M        L.   I8
     //     M9mmmP'  `Mbmmd'  `Mbmo  `Mbmo.JMML..JMML  JMML.YMMMMMb  M9mmmP'
     //                                                    6'     dP
     //                                                    Ybmmmd'
     // Устанавливаем часовой пояс по Гринвичу
     date_default_timezone_set('UTC');
     // Где будут хранится php сессии (в файлах или в БД)
     if (Settings::PHP_SESSION === 'DB') {
         $session = new \Zebra_Session(mysqli_connect(Settings::DB_HOST, Settings::DB_USER, Settings::DB_PASSWORD, Settings::DB_DATABASE, Settings::DB_PORT), 'AVuVqYR6uwgEuhV79tln0tlKk');
     } else {
         session_start();
     }
     // Включим страницу с ошибками, если включен режим DEBUG
     if (Settings::DEBUG === true) {
         $whoops = new \Whoops\Run();
         $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler());
         $whoops->register();
     }
     // Настраиваем соединение с БД
     \ORM::configure(['connection_string' => 'mysql:host=' . Settings::DB_HOST . ';port=' . Settings::DB_PORT . ';dbname=' . Settings::DB_DATABASE, 'username' => Settings::DB_USER, 'password' => Settings::DB_PASSWORD, 'logging' => Settings::DEBUG, 'driver_options' => [\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC, \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8']]);
     // Инициализируем CSRF-токен
     $csrf = new \DimNS\SimpleCSRF();
     $this->csrf_token = $csrf->getToken();
     // Определим корневую папку, если переменная не пустая
     if (Settings::PATH_SHORT_ROOT != '/') {
         $_SERVER['REQUEST_URI'] = substr($_SERVER['REQUEST_URI'], strlen(Settings::PATH_SHORT_ROOT));
     }
     // Инициируем роутер
     $klein = new \Klein\Klein();
     //
     //
     //     `7MM"""Yb. `7MMF'
     //       MM    `Yb. MM
     //       MM     `Mb MM
     //       MM      MM MM
     //       MM     ,MP MM
     //       MM    ,dP' MM
     //     .JMMmmmdP' .JMML.
     //
     //
     // Создаем DI
     $klein->respond(function ($request, $response, $service, $di) use($csrf) {
         // Регистрируем доступ к настройкам
         $di->register('cfg', function () {
             return new \MFLPHP\Configs\Config();
         });
         // Регистрируем доступ к управлению пользователем
         $di->register('auth', function () {
             $dbh = new \PDO('mysql:host=' . Settings::DB_HOST . ';port=' . Settings::DB_PORT . ';dbname=' . Settings::DB_DATABASE, Settings::DB_USER, Settings::DB_PASSWORD, [\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC, \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8']);
             return new \PHPAuth\Auth($dbh, new \PHPAuth\Config($dbh, 'phpauth_config'), 'ru_RU');
         });
         // Регистрируем доступ к информации о пользователе
         $di->register('userinfo', function () use($di) {
             if ($di->auth->isLogged()) {
                 $user_id = $di->auth->getSessionUID($di->auth->getSessionHash());
                 $user_info = \ORM::for_table('users')->join('users_info', array('users.id', '=', 'users_info.uid'))->where_equal('id', $user_id)->find_one();
                 if (is_object($user_info)) {
                     return $user_info;
                 }
             }
             return false;
         });
         // Регистрируем доступ к PHPMailer
         $di->register('phpmailer', function () use($di) {
             $phpmailer = new \PHPMailer();
             $phpmailer->setLanguage('ru', $di->cfg->abs_root_path . 'vendor/phpmailer/phpmailer/language/');
             $phpmailer->IsHTML(true);
             $phpmailer->CharSet = 'windows-1251';
             $phpmailer->From = $di->auth->config->site_email;
             $phpmailer->FromName = iconv('utf-8', 'windows-1251', $di->auth->config->site_name);
             if ('1' == $di->auth->config->smtp) {
                 $phpmailer->IsSMTP();
                 $phpmailer->SMTPDebug = 0;
                 $phpmailer->SMTPAuth = true;
                 $phpmailer->SMTPSecure = $di->auth->config->smtp_security;
                 $phpmailer->Host = $di->auth->config->smtp_host;
                 $phpmailer->Port = $di->auth->config->smtp_port;
                 $phpmailer->Username = $di->auth->config->smtp_username;
                 $phpmailer->Password = $di->auth->config->smtp_password;
             }
             return $phpmailer;
         });
         // Регистрируем доступ к отправке почты
         $di->register('mail', function () use($di) {
             return new \MFLPHP\Helpers\EmailSender($di);
         });
         // Регистрируем доступ к логгеру Monolog
         $di->register('log', function () use($di) {
             $log = new \Monolog\Logger('MainLog');
             $log->pushHandler(new \Monolog\Handler\StreamHandler($di->cfg->abs_root_path . 'errors.log', \Monolog\Logger::WARNING));
             return $log;
         });
         // Регистрируем доступ к проверке CSRF-токена
         $di->register('csrf', function () use($csrf) {
             return $csrf;
         });
         $views_path = $_SERVER['DOCUMENT_ROOT'] . Settings::PATH_SHORT_ROOT . 'app/Views/';
         $service->layout($views_path . 'layout-default.php');
         $service->csrf_token = $this->csrf_token;
         $service->path = Settings::PATH_SHORT_ROOT;
         $service->app_root_path = $_SERVER['DOCUMENT_ROOT'] . Settings::PATH_SHORT_ROOT . 'app';
     });
     //
     //
     //                                  mm
     //                                  MM
     //     `7Mb,od8 ,pW"Wq.`7MM  `7MM mmMMmm .gP"Ya  ,pP"Ybd
     //       MM' "'6W'   `Wb MM    MM   MM  ,M'   Yb 8I   `"
     //       MM    8M     M8 MM    MM   MM  8M"""""" `YMMMa.
     //       MM    YA.   ,A9 MM    MM   MM  YM.    , L.   I8
     //     .JMML.   `Ybmd9'  `Mbod"YML. `Mbmo`Mbmmd' M9mmmP'
     //
     //
     require_once $_SERVER['DOCUMENT_ROOT'] . Settings::PATH_SHORT_ROOT . 'app/Routes.php';
     //
     //
     //
     //
     //     `7Mb,od8 `7MM  `7MM  `7MMpMMMb.
     //       MM' "'   MM    MM    MM    MM
     //       MM       MM    MM    MM    MM
     //       MM       MM    MM    MM    MM
     //     .JMML.     `Mbod"YML..JMML  JMML.
     //
     //
     $klein->dispatch();
 }
示例#6
0
use App\Controllers\MainController;
$app = new \Klein\Klein();
$app->get('/', function () {
    return 'Active directory tool';
});
$app->get('/newUpdate', function (Request $req, Response $resp, ServiceProvider $service, $app) {
    $service->render('../views/views/updateFields.phtml', []);
});
$app->post('/update', function (Request $req, Response $resp, ServiceProvider $service, $app) {
    $params = $req->paramsPost()->all();
    echo $params['adFields'];
    //$service->render('../views/views/updateFields.phtml', []);
});
$app->post('/updReport', function (Request $req, Response $resp, ServiceProvider $service, $app) {
    $mainController = new MainController();
    $service->render('../views/views/updateReport.phtml', ['fromAD' => $mainController->getUpdateReport($req)]);
    /*
    $params = $req->paramsPost()->all();
    echo $params['adFields'];
    echo '<br>';
    echo $params['newVal'];
    echo '<br>';
    echo $params['excludeEmpty'];
    aa();
    */
});
$app->dispatch();
/*
 *
 * (&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(title=*))
 */