Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- *
- * @ This file is created by http://DeZender.Net
- * @ deZender (PHP5 Decoder for ionCube Encoder)
- *
- * @ Version : 3.5.0.0
- * @ Author : DeZender
- * @ Release on : 22.06.2018
- * @ Official site : http://DeZender.Net
- *
- */
- require_once '/opt/unetlab/html/includes/init.php';
- require_once BASE_DIR . '/html/includes/Slim/Slim.php';
- require_once BASE_DIR . '/html/includes/Slim-Extras/DateTimeFileWriter.php';
- require_once BASE_DIR . '/html/includes/api_authentication.php';
- require_once BASE_DIR . '/html/includes/api_configs.php';
- require_once BASE_DIR . '/html/includes/api_folders.php';
- require_once BASE_DIR . '/html/includes/api_labs.php';
- require_once BASE_DIR . '/html/includes/api_networks.php';
- require_once BASE_DIR . '/html/includes/api_nodes.php';
- require_once BASE_DIR . '/html/includes/api_pictures.php';
- require_once BASE_DIR . '/html/includes/api_status.php';
- require_once BASE_DIR . '/html/includes/api_textobjects.php';
- require_once BASE_DIR . '/html/includes/api_lineobjects.php';
- require_once BASE_DIR . '/html/includes/api_topology.php';
- require_once BASE_DIR . '/html/includes/api_uusers.php';
- require_once BASE_DIR . '/html/includes/api_capture.php';
- require_once BASE_DIR . '/html/includes/api_html5Desktop.php';
- Slim\Slim::registerAutoloader();
- $licprops = ioncube_license_properties();
- $app = new Slim\Slim(array('mode' => 'production', 'debug' => true, 'log.level' => Slim\Log::WARN, 'log.enabled' => true, 'log.writer' => new Slim\LogWriter(fopen('/opt/unetlab/data/Logs/api.txt', 'a'))));
- $app->hook(
- 'slim.after.router',
- function() use ($app) {
- $request = $app->request;
- $response = $app->response;
- $app->log->debug('Request path: ' . $request->getPathInfo());
- $app->log->debug('Response status: ' . $response->getStatus());
- }
- );
- $app->response->headers->set('Content-Type', 'application/json');
- $app->response->headers->set('X-Powered-By', 'Unified Networking Lab API');
- $app->response->headers->set('Cache-Control', 'no-store, no-cache, must-revalidate, max-age=0');
- $app->response->headers->set('Cache-Control', 'post-check=0, pre-check=0');
- $app->response->headers->set('Pragma', 'no-cache');
- $app->notFound(
- function() use ($app) {
- $output['code'] = 404;
- $output['status'] = 'fail';
- $output['message'] = $GLOBALS['messages'][60038];
- $app->halt($output['code'], json_encode($output));
- }
- );
- $db = checkDatabase();
- if ($db === false) {
- $app->map(
- '/api/(:path+)',
- function() use ($app) {
- $output['code'] = 500;
- $output['status'] = 'fail';
- $output['message'] = $GLOBALS['messages'][90003];
- $app->response->setStatus($output['code']);
- $app->response->setBody(json_encode($output));
- }
- )->via('DELETE', 'GET', 'POST');
- $app->run();
- }
- $html5_db = html5_checkDatabase();
- if ($html5_db === false) {
- $app->map(
- '/api/(:path+)',
- function() use ($app) {
- $output['code'] = 500;
- $output['status'] = 'fail';
- $output['message'] = $GLOBALS['messages'][90003];
- $app->response->setStatus($output['code']);
- $app->response->setBody(json_encode($output));
- }
- )->via('DELETE', 'GET', 'POST');
- $app->run();
- }
- if (updateDatabase($db) == false) {
- $app->map(
- '/api/(:path+)',
- function() use ($app) {
- $output['code'] = 500;
- $output['status'] = 'fail';
- $output['message'] = $GLOBALS['messages'][90006];
- $app->response->setStatus($output['code']);
- $app->response->setBody(json_encode($output));
- }
- )->via('DELETE', 'GET', 'POST');
- $app->run();
- }
- $forbidden = array('code' => 401, 'status' => 'forbidden', 'message' => $GLOBALS['messages'][90032]);
- $app->post(
- '/api/auth/login',
- function() use ($app, $db, $html5_db, $licprops) {
- $event = json_decode($app->request()->getBody());
- $p = json_decode(json_encode($event), true);
- if (($licprops['expire']['value'] < intval(date('Ymd')) || $licprops['expire']['value'] == 'unlicensed') && isset($p['html5']) && $p['html5'] == 2) {
- $output['code'] = 401;
- $output['data']['reason'] = 'License expired ( ' . $licprops['expire']['value'] . ' )';
- $app->response->setStatus($output['code']);
- $app->response->setBody(json_encode($output));
- } else {
- $cookie = genUuid();
- $output = apiLogin($db, $html5_db, $p, $cookie);
- $mycookie = $cookie;
- if ($output['code'] == 200) {
- $app->setCookie('unetlab_session', $cookie, SESSION, '/api/', $_SERVER['SERVER_NAME'], false, false);
- }
- $app->response->setStatus($output['code']);
- $app->response->setBody(json_encode($output));
- if ($output['code'] == 200) {
- list($user, $tenant, $noneed) = apiAuthorization($db, $mycookie);
- if ($user == false) {
- $output['code'] = 400;
- $output['data']['reason'] = 'Unauthorized';
- $app->response->setStatus($output['code']);
- $app->response->setBody(json_encode($output));
- return null;
- }
- $role = $user['role'];
- $key = $role . 's';
- $max = $licprops[$key]['value'];
- $query = "select session from users where role='" . $role . "' order by session desc limit 1 offset " . $max . ' ;';
- $statement = $db->prepare($query);
- $statement->execute();
- $result = $statement->fetch();
- $maxval = $result['session'];
- if (0 < intval($maxval)) {
- $query = "update users set session = NULL where role = '" . $role . "' and session <= " . $maxval . ';';
- $statement = $db->prepare($query);
- $statement->execute();
- }
- }
- $db = null;
- $html5_db = null;
- }
- }
- );
- $app->get(
- '/api/auth/logout',
- function() use ($app, $db) {
- $cookie = $app->getCookie('unetlab_session');
- $app->deleteCookie('unetlab_session');
- $output = apiLogout($db, $cookie);
- $app->response->setStatus($output['code']);
- $app->response->setBody(json_encode($output));
- $db = null;
- $html5_db = null;
- }
- );
- $app->get(
- '/api/auth',
- function() use ($app, $db, $licprops) {
- list($user, $tenant, $output) = apiAuthorization($db, $app->getCookie('unetlab_session'));
- if ($user === false) {
- .................................................................
- .........................................
- ...............
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement