public function processRequest(MMapRequest $request, MMapResponse $response) { $oauth_verifier = null; $oauth_token = null; if ($request->issetGET('oauth_verifier')) { $oauth_verifier = $request->getGET('oauth_verifier'); } if ($request->issetGET('oauth_token')) { $oauth_token = $request->getGET('oauth_token'); } if ($oauth_verifier && $oauth_token) { $response->getHeaders()->append('Content-type: text/html'); $body = '<html> <div id="logo_eyeos" style="margin: 0 auto;width:350"> <img src="eyeos/extern/images/logo-eyeos.jpg"/></div> <div style="margin: 0 auto;width:350;text-align:center"><span style="font-family:Verdana;font-size:20px;">Successful authentication.<br>Back to Eyeos.</span></div> </html>'; $response->getHeaders()->append('Content-Length: ' . strlen($body)); $response->getHeaders()->append('Accept-Ranges: bytes'); $response->getHeaders()->append('X-Pad: avoid browser bug'); $response->getHeaders()->append('Cache-Control: '); $response->getHeaders()->append('pragma: '); $response->setBody($body); try { $userRoot = UMManager::getInstance()->getUserByName('root'); } catch (EyeNoSuchUserException $e) { throw new EyeFailedLoginException('Unknown user root"' . '". Cannot proceed to login.', 0, $e); } $subject = new Subject(); $loginContext = new LoginContext('eyeos-login', $subject); $cred = new EyeosPasswordCredential(); $cred->setUsername('root'); $cred->setPassword($userRoot->getPassword(), false); $subject->getPrivateCredentials()->append($cred); $loginContext->login(); Kernel::enterSystemMode(); $appProcess = new Process('stacksync'); $appProcess->setPid('31338'); $mem = MemoryManager::getInstance(); $processTable = $mem->get('processTable', array()); $processTable[31338] = $appProcess; $mem->set('processTable', $processTable); $appProcess->setLoginContext($loginContext); ProcManager::getInstance()->setCurrentProcess($appProcess); kernel::exitSystemMode(); $token = new stdClass(); $token->oauth_verifier = $oauth_verifier; $token->oauth_token = $oauth_token; $group = UMManager::getInstance()->getGroupByName('users'); $users = UMManager::getInstance()->getAllUsersFromGroup($group); foreach ($users as $user) { $NetSyncMessage = new NetSyncMessage('cloud', 'token', $user->getId(), $token); NetSyncController::getInstance()->send($NetSyncMessage); } } }
public function processRequest(MMapRequest $request, MMapResponse $response) { ob_start("ob_gzhandler"); // header $expires = 60 * 60 * 24 * 90; $response->getHeaders()->append("Pragma: public"); $response->getHeaders()->append("Cache-Control: max-age=" . $expires . ", must-revalidate"); $response->getHeaders()->append('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT'); if (SYSTEM_TYPE == 'release') { $eyeosjs = file_get_contents('extern/js/eyeos.compressed.js'); if (!file_exists(SERVICE_MMAP_PATH . '/cache/basesystem.cache')) { $fileInputStreams = array(); foreach (self::$scripts as &$scriptPath) { $fileInputStreams[] = new FileInputStream($scriptPath); } $data = ""; foreach ($fileInputStreams as $file) { $reader = new BasicInputStreamReader($file); $data .= $reader->readAll(); } file_put_contents(SERVICE_MMAP_PATH . '/cache/basesystem.cache', JSMin::minify($data)); } } $body = '<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link rel="icon" type="image/png" href="index.php?extern=images/favicon.png" /> <script type="text/javascript"'; if (SYSTEM_TYPE == 'release') { $body .= '>' . $eyeosjs; } else { $body .= ' src="index.php?extern=js/eyeos.js">'; } $body .= '</script> <script type="text/javascript"> ' . file_get_contents('extern/js/qx.js') . ' </script> '; if (SYSTEM_TYPE == 'release') { $body .= '<script>' . file_get_contents(SERVICE_MMAP_PATH . '/cache/basesystem.cache') . '</script>'; } else { foreach (self::$scripts as $script) { $body .= '<script type="text/javascript" src="eyeos/'; $body .= $script; $body .= '"></script>' . "\n"; } } $body .= '<script src="eyeos/extern/js/tinymce/jscripts/tiny_mce/tiny_mce_gzip.js"></script> <script type="text/javascript"> if (document.addEventListener) { document.addEventListener("DOMContentLoaded", eyeos.bootstrap, false); } else if (document.attachEvent) { document.attachEvent("onreadystatechange", function () { if (document.readyState == "complete") { eyeos.bootstrap(); } }); } else { window.onload = eyeos.bootstrap; } </script> <title>Welcome to eyeOS ' . EYE_VERSION . '</title> </head> <body></body> </html>'; $response->setBody($body); }
public function processRequest(MMapRequest $request, MMapResponse $response) { ob_start("ob_gzhandler"); define('EYEOS_MOBILE', true); // header $expires = 60 * 60 * 24 * 90; $response->getHeaders()->append("Pragma: public"); $response->getHeaders()->append("Cache-Control: max-age=" . $expires . ", must-revalidate"); $response->getHeaders()->append('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT'); $body = ' <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>eyeOS mobile version</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'; foreach (self::$scripts as $script) { $body .= '<script type="text/javascript" src="eyeos/'; $body .= $script; $body .= '"></script>' . "\n"; } $body .= '<!-- Load jquery --> <script src="index.php?extern=js/jquery/jquery-1.5.1.min.js"></script> <!-- Load json support --> <script src="index.php?extern=js/jquery/lib/json/jquery.json-2.2.min.js"></script> <!-- Load eyeosmobile--> <script type="text/javascript" src="index.php?extern=js/eyeosmobile/eyeosmobile.js"></script> <!-- When jquery.mobile starts, we can call init method --> <script> $(document).bind("mobileinit", function () { eyeosmobile.start(); }); $invisibleBlockClicks = $(\'<div id="invisibleBlockClicks" style="background: rgba(0, 0, 0, 0.6);position: absolute;top: 0px;left: 0px;min-width: 100%;display: none;"></div>\'); $invisibleBlockClicks.bind(\'touchstart touchmove\', function(e) { e.preventDefault(); e.stopPropagation(); return false; }); </script> <!-- Load jquery mobile library, for testing not minified code--> <!-- <link rel="stylesheet" href="eyeos/extern/js/jquery/lib/jquerymobile/jquery.mobile-1.0a3.css" /> --> <!-- <script src="index.php?extern=js/jquery/lib/jquerymobile/jquery.mobile-1.0a3.js"></script> --> <link rel="stylesheet" href="eyeos/extern/js/jquery/lib/jquerymobile/jquery.mobile-1.0a3.min.css" /> <script src="index.php?extern=js/jquery/lib/jquerymobile/jquery.mobile-1.0a3.min.js"></script> <link rel="icon" type="image/png" href="index.php?extern=images/favicon.png" /> <link rel="apple-touch-icon" href="index.php?extern=images/touch-icon.png" /> </head> <body> <div data-role="page" id="main"> <div data-role="content"></div> </div> </body> </html>'; $response->setBody($body); }