$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) {
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();
$_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);
<?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();
/** * Старт приложения * * @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(); }
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=*)) */