public function processRequest(MMapRequest $request, MMapResponse $response) { ob_start('mb_output_handler'); MMapManager::startSession(); MMapManager::checkSessionExpiration(); $username = $request->issetPOST('username') ? $request->getPOST('username') : ''; $password = $request->issetPOST('password') ? $request->getPOST('password') : ''; $loginPage = $request->issetPOST('loginPage') ? $request->getPOST('loginPage') : ''; $subject = new Subject(); $loginContext = new LoginContext('eyeos-login', $subject); $cred = new EyeosPasswordCredential(); $cred->setUsername($username); $cred->setPassword($password, true); $subject->getPrivateCredentials()->append($cred); try { $loginContext->login(); $memoryManager = MemoryManager::getInstance(); Kernel::enterSystemMode(); $memoryManager->set('isExternLogin', 1); $memoryManager->set('username', $username); $memoryManager->set('password', $password); $memoryManager->set('loginPage', $loginPage); Kernel::exitSystemMode(); header("Location: index.php"); } catch (Exception $e) { header("Location:" . $loginPage . "?errorLogin=1"); } }
public static function close($params) { //clean the memory MemoryManager::getInstance()->free(); $myProcManager = ProcManager::getInstance(); $myProcess = $myProcManager->getCurrentProcess(); $myProcManager->kill($myProcess); }
/** * @throws EyeSessionExpiredException */ public static function checkSessionExpiration() { Kernel::enterSystemMode(); $regenerated = MemoryManager::getInstance()->get('regenerated', 1); Kernel::exitSystemMode(); if ($regenerated == 1) { MemoryManager::getInstance()->reset(); throw new EyeSessionExpiredException('Session expired.'); } }
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 static function __run(AppExecutionContext $context, MMapResponse $response) { $myMemoryManager = MemoryManager::getInstance(); Kernel::enterSystemMode(); $isExternLogin = $myMemoryManager->get('isExternLogin'); $loginPage = $myMemoryManager->get('loginPage'); Kernel::exitSystemMode(); $context->getArgs()->append($isExternLogin); if ($isExternLogin) { $context->getArgs()->append($loginPage); } }
public function testProcessRequest() { $memoryManager = MemoryManager::getInstance(); $myProcManager = ProcManager::getInstance(); //insert application 'system' $_GET['getApplication'] = 'system'; $_GET['checknum'] = $myProcManager->getCurrentProcess()->getChecknum(); $this->myMMapManager->processRequest(new Request()); $procs = $myProcManager->getProcessesList(); $appWorking = false; foreach ($procs as $value) { if ($value == 'system') { $appWorking = true; } } $this->assertEquals(true, $appWorking); }
public function processRequest(MMapRequest $request, MMapResponse $response) { ob_start('mb_output_handler'); $return = null; $dataManager = DataManager::getInstance(); $POST = $request->getPOST(); $params = array(); if (isset($POST['params'])) { $params = $dataManager->doInput($POST['params']); } else { if ($request->issetGET('params')) { $params = $request->getGET('params'); } } //login in the system and get a valid login context $subject = new Subject(); $loginContext = new LoginContext('eyeos-login', $subject); $cred = new EyeosPasswordCredential(); $cred->setUsername($_REQUEST['username']); $cred->setPassword($_REQUEST['password'], true); $subject->getPrivateCredentials()->append($cred); $loginContext->login(); //now create fake process called api Kernel::enterSystemMode(); $appProcess = new Process('api'); $appProcess->setPid('31337'); $mem = MemoryManager::getInstance(); $processTable = $mem->get('processTable', array()); $processTable[31337] = $appProcess; $mem->set('processTable', $processTable); $appProcess->setLoginContext($loginContext); ProcManager::getInstance()->setCurrentProcess($appProcess); kernel::exitSystemMode(); $return = call_user_func_array(array('EyeosApplicationExecutable', '__callModule'), array($request->getPOST('module'), $request->getPOST('name'), $params)); //try to force mime type. If there is a previous mime type defined at application level //this have no effect if (!headers_sent()) { $response->getHeaders()->append('Content-type:text/plain'); } if ($response->getBodyRenderer() === null && $response->getBody() == '') { $response->setBodyRenderer(new DataManagerBodyRenderer($return)); } }
public static function __run(AppExecutionContext $context, MMapResponse $response) { $memoryManager = MemoryManager::getInstance(); Kernel::enterSystemMode(); $isExternLogin = $memoryManager->get('isExternLogin'); Kernel::exitSystemMode(); $list = new ArrayList(); $list->append($isExternLogin); if ($isExternLogin) { Kernel::enterSystemMode(); $username = $memoryManager->get('username'); $password = $memoryManager->get('password'); Kernel::exitSystemMode(); $list->append($username); $list->append($password); } $context->setArgs($list); $response->appendToBody('eyeos.isRegisterActive=' . self::isRegisterActive() . ';'); }
define('EYEOS_TESTS_TMP_PATH', EYE_ROOT_TESTS_PATH . '/' . EYEOS_TESTS_TMP_DIR); define('EYEOS_DOC_PATH', EYE_ROOT . '/../doc'); //##### redefined constants from settings.php (see commented lines) ##### define('USERS_PATH', EYE_ROOT_TESTS_PATH . '/' . USERS_DIR); define('WORKGROUPS_PATH', EYE_ROOT_TESTS_PATH . '/' . WORKGROUPS_DIR); define('SYSTEM_CONF_PATH', EYE_ROOT_TESTS_PATH . '/' . SYSTEM_DIR . '/' . SYSTEM_CONF_DIR); define('SYSTEM_SKEL_PATH', EYE_ROOT . '/' . SYSTEM_DIR . '/' . SYSTEM_CONF_DIR . '/' . SYSTEM_SKEL_DIR); require_once 'settings.php'; //##### redefined constants from settings.php (see commented lines) ##### define('SERVICE_SECURITY_CONFIGURATION_PATH', EYE_ROOT . '/' . SYSTEM_DIR . '/' . SYSTEM_CONF_DIR . '/' . SERVICES_DIR . '/' . SERVICE_SECURITY_DIR); define('SERVICE_SECURITY_POLICYCONFIGURATIONS_DEFAULTCONF_PATH', SERVICE_SECURITY_CONFIGURATION_PATH . '/SecurityManager.xml'); //initialize the system require_once './' . SYSTEM_DIR . '/' . BOOT_DIR . '/Bootstrap.php'; //startup Bootstrap::init(); MemoryManager::getInstance()->reset(); //setting error reporting to E_ALL (yes, even notices, because we should be able to avoid them too!) error_reporting(E_ALL); register_shutdown_function('__shutdown_test'); //register some "constants" that will be used by various tests $GLOBALS['eyeos_UnitTests'] = array('initGroupNames' => array('root', 'admin', 'um', 'users', 'vfs', 'lfs', 'rfs', 'mnt', 'sys', 'wg', 'wg-managers', 'exec'), 'initUserNames' => array('root', 'john', '_register')); try { __start_test(); } catch (Exception $e) { echo 'Uncaught exception while initializing unit tests! Aborting.' . "\n"; ExceptionStackUtil::printStackTrace($e, false); exit; } function __start_test() { $dbh = StorageManager::getInstance()->getHandler(SQL_DAOHANDLER);
public function testGetInstance() { $instance = MemoryManager::getInstance(); $this->assertEquals(DEFAULT_MEMORYMANAGER, get_class($instance)); }
public static function getDocument($params) { $instance = MemoryManager::getInstance(); $plist = $instance->get('playList'); $filepath = $plist[$params]; $info = utf8_pathinfo($filepath); //TODO: maybe fsi has better things than pathinfo if (strtolower($info['extension']) == 'odt' || strtolower($info['extension']) == 'doc' || strtolower($info['extension']) == 'xls' || strtolower($info['extension']) == 'ods') { $myConverter = new Converter(); $path = $myConverter->Convert($filepath, 'HTML (StarWriter)'); $md5 = utf8_basename($path); if (!$path || !file_exists($path)) { return array($filepath, 'Unable to convert office file, maybe this system does not have office support installed?'); } //TODO: we are having problems with FSI and hidden folders $data = file_get_contents($path); $data = str_replace('<IMG SRC="', '<IMG SRC="index.php/externMsg/' . ProcManager::getInstance()->getCurrentProcess()->getChecknum() . '/viewTempImg/', $data); return array($filepath, $data); } $myFile = FSI::getFile($filepath); $data = $myFile->getContents(); return array($filepath, $data); }
public static function fileExport(array $params) { $destinationFile = $params[0]; $originalFile = $params[1]; $format = $params[2]; if ($format == 'PDF') { $extension = 'pdf'; $format = 'writer_pdf_Export'; } elseif ($format == 'Doc') { $extension = 'doc'; $format = 'MS Word 97'; } elseif ($format == 'Open Office') { $extension = 'odt'; $format = 'writer8'; } elseif ($format == 'HTML') { $extension = 'html'; $format = 'HTML (StarWriter)'; } elseif ($format == 'RTF') { $extension = 'rtf'; $format = 'Rich Text Format'; } elseif ($format == 'TXT') { $extension = 'txt'; $format = 'Text (encoded)'; } $destinationFile .= '.' . $extension; $file = FSI::getFile($originalFile); $memory = MemoryManager::getInstance(); $file->checkReadPermission(); $to = 'home:///'; //then, check the destination file $myFileDest = FSI::getFile($to); $myFileDest->checkWritePermission(); $myRealFile = $myFileDest->getRealFile(); $partName = '.office/' . uniqid(time()) . '_conversion/'; $fileNameDestination = AdvancedPathLib::getPhpLocalHackPath($myRealFile->getPath()) . '/' . $partName; mkdir($fileNameDestination); $myRealFile = $file->getRealFile(); $originalFile = AdvancedPathLib::getPhpLocalHackPath($myRealFile->getPath()); $cmd = 'unzip -d ' . escapeshellarg($fileNameDestination) . ' ' . escapeshellarg($originalFile); shell_exec($cmd); $myConverter = new Converter(); $fileName = $myConverter->Convert($to . $partName . '/document.html', $format); shell_exec('rm -rf ' . escapeshellarg($fileNameDestination)); if (!file_exists($fileName)) { return false; } $content = file_get_contents($fileName); $newFile = FSI::getFile($destinationFile); $newFile->createNewFile(true); $newFile->putContents($content); return $destinationFile; }
/** * Protected constructor to avoid external instanstation outside of the kernel singleton. * */ protected function __construct() { $this->logger = Logger::getLogger('system.services.Proc.ProcManager'); $this->memoryManager = MemoryManager::getInstance(); $this->listeners = new ArrayList(); }