public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $url = OSSMail_Record_Model::GetSite_URL() . 'modules/OSSMail/roundcube/'; $config = Settings_Mail_Config_Model::getConfig('autologin'); if ($config['autologinActive'] == 'true') { $account = OSSMail_Autologin_Model::getAutologinUsers(); if ($account) { $rcUser = isset($_SESSION['AutoLoginUser']) && array_key_exists($_SESSION['AutoLoginUser'], $account) ? $account[$_SESSION['AutoLoginUser']] : reset($account); require_once 'modules/OSSMail/RoundcubeLogin.class.php'; $rcl = new RoundcubeLogin($url, false); //$rcl->setHostname('fdc.org.pl'); //$rcl->setPort(143); //$rcl->setSSL(false); try { if ($rcl->isLoggedIn()) { if ($rcl->getUsername() != $rcUser['username']) { $rcl->logout(); $rcl->login($rcUser['username'], $rcUser['password']); } } else { $rcl->login($rcUser['username'], $rcUser['password']); } } catch (RoundcubeLoginException $ex) { $log = vglobal('log'); $log->error('OSSMail_index_View|RoundcubeLoginException: ' . $ex->getMessage()); } } } $viewer = $this->getViewer($request); $viewer->assign('URL', $url); $viewer->view('index.tpl', $moduleName); }
function handleEvent($eventName, $entityData) { $adb = PearDatabase::getInstance(); $log = vglobal('log'); if ($eventName == 'user.logout.before') { $log->debug("Start LogoutHandler: user.logout.before"); $mainUrl = OSSMail_Record_Model::GetSite_URL() . 'modules/OSSMail/roundcube/'; vimport('~modules/OSSMail/RoundcubeLogin.class.php'); $rcl = new RoundcubeLogin($mainUrl); if ($rcl->isLoggedIn()) { $rcl->logout(); } $log->debug("End LogoutHandler: user.logout.before"); } }
public function preProcess(Vtiger_Request $request, $display = true) { $config = Settings_Mail_Config_Model::getConfig('autologin'); if ($config['autologinActive'] == 'true') { $account = OSSMail_Autologin_Model::getAutologinUsers(); if ($account) { $rcUser = isset($_SESSION['AutoLoginUser']) && array_key_exists($_SESSION['AutoLoginUser'], $account) ? $account[$_SESSION['AutoLoginUser']] : reset($account); require_once 'modules/OSSMail/RoundcubeLogin.class.php'; $rcl = new RoundcubeLogin(self::$mainUrl, false); try { if ($rcl->isLoggedIn()) { if ($rcl->getUsername() != $rcUser['username']) { $rcl->logout(); $rcl->login($rcUser['username'], $rcUser['password']); } } else { $rcl->login($rcUser['username'], $rcUser['password']); } } catch (RoundcubeLoginException $ex) { $log = vglobal('log'); $log->error('OSSMail_index_View|RoundcubeLoginException: ' . $ex->getMessage()); } } } $config = OSSMail_Module_Model::getComposeParameters(); $param = OSSMail_Module_Model::getComposeUrlParam($request->get('crmModule'), $request->get('crmRecord'), $request->get('crmView')); if ($request->get('id') != '' && $request->get('type') != '') { $param .= '&crmid=' . (int) $request->get('id') . '&type=' . $request->get('type'); } $this->mainUrl = $this->mainUrl . $param; if ($config['popup'] && $request->get('popup') == 1) { header('Location: ' . $this->mainUrl . '&_extwin=1'); exit; } parent::preProcess($request, true); }
public function process(Vtiger_Request $request) { $url = ''; if ($request->get('to') != '') { $to = $request->get('to'); } if ($request->get('subject') != '') { $subject = $request->get('subject'); } if (!empty($_SESSION['POST']['to'])) { $to = implode(",", $_SESSION['POST']['to']); } if (!empty($_SESSION['POST']['cc'])) { $cc = implode(",", $_SESSION['POST']['cc']); } if (!empty($_SESSION['POST']['bcc'])) { $bcc = implode(",", $_SESSION['POST']['bcc']); } if (!empty($_SESSION['POST']['subject'])) { $subject = implode(",", $_SESSION['POST']['subject']); } $mod = $_SESSION['POST']['sourceModule']; if ($mod == 'Campaigns') { if ($to != '') { $url .= '&bcc=' . $to; } if ($_SESSION['POST']['sourceRecord'] != '') { $Record_Model = Vtiger_Record_Model::getInstanceById($_SESSION['POST']['sourceRecord'], $mod); $campaign_no = $Record_Model->get('campaign_no'); $url .= '&subject=' . $campaign_no . ': ' . $Record_Model->get('campaignname'); } } else { if ($to != '') { $url .= '&to=' . $to; } if ($cc != '') { $url .= '&cc=' . $cc; } if ($bcc != '') { $url .= '&bcc=' . $bcc; } } if ($subject != '') { $url .= '&subject=' . $subject; } $pdfPath = $request->get('pdf_path'); if ($pdfPath) { $url .= '&pdf_path=' . $pdfPath; } if ($url == '' && $request->get('record') != '' && $request->get('mod') != '') { $UrlToCompose = OSSMail_Record_Model::getUrlToCompose($request->get('mod'), $request->get('record')); $url .= $UrlToCompose; } if ($url == '' && $request->get('id') != '' && $request->get('type') != '') { $url .= '&crmid=' . (int) $request->get('id') . '&type=' . $request->get('type'); } $mainUrl = OSSMail_Record_Model::GetSite_URL() . 'modules/OSSMail/roundcube/?_task=mail&_action=compose'; $url = $mainUrl . $url; $config = Settings_Mail_Config_Model::getConfig('autologin'); if ($config['autologinActive'] == 'true') { $account = OSSMail_Autologin_Model::getAutologinUsers(); if ($account) { $rcUser = isset($_SESSION['AutoLoginUser']) && array_key_exists($_SESSION['AutoLoginUser'], $account) ? $account[$_SESSION['AutoLoginUser']] : reset($account); require_once 'modules/OSSMail/RoundcubeLogin.class.php'; $rcl = new RoundcubeLogin($mainUrl, false); try { if ($rcl->isLoggedIn()) { if ($rcl->getUsername() != $rcUser['username']) { $rcl->logout(); $rcl->login($rcUser['username'], $rcUser['password']); } } else { $rcl->login($rcUser['username'], $rcUser['password']); } } catch (RoundcubeLoginException $ex) { $log = vglobal('log'); $log->error('OSSMail_index_View|RoundcubeLoginException: ' . $ex->getMessage()); } } } $viewer = $this->getViewer($request); $viewer->assign("URL", $url); $viewer->view('index.tpl', 'OSSMail'); }
/** * @brief showing up roundcube iFrame * @param path to roundcube installation, Note: The first parameter is the URL-path of the RC inst NOT the file-system path http://host.com/path/to/roundcube/ --> "/path/to/roundcube" $maildir * @param roundcube username $ownUser * @param roundcube password $ownPass * */ public static function showMailFrame($maildir, $ownUser, $ownPass) { // Create RC login object. $rcl = new RoundcubeLogin($maildir); try { // Try to login OCP\Util::writeLog('roundcube', 'Trying to log into roundcube webinterface under ' . $maildir . ' as user ' . $ownUser, OCP\Util::DEBUG); if ($rcl->isLoggedIn()) { $rcl->logout(); $rcl = new RoundcubeLogin($maildir); } if ($rcl->login($ownUser, $ownPass)) { OCP\Util::writeLog('roundcube', 'Successfully logged into roundcube ', OCP\Util::DEBUG); } else { // If the login fails, display an error message in the loggs OCP\Util::writeLog('roundcube', 'RoundCube can\'t login to roundcube due to a login error to roundcube', OCP\Util::ERROR); } OCP\Util::writeLog('roundcube', 'Preparing iFrame for roundcube:' . $rcl->getRedirectPath(), OCP\Util::DEBUG); // loadign image $loader_image = OCP\Util::imagePath('roundcube', 'loader.gif'); $removeHeaderNav = OCP\Config::getAppValue('roundcube', 'removeHeaderNav', ''); if (strcmp($removeHeaderNav, '1') == 0) { $disable_header_nav = 'true'; } else { $disable_header_nav = 'false'; } // create iFrame begin echo '<img src="' . $loader_image . '" id="loader">'; echo '<iframe style="display:none" src="' . $rcl->getRedirectPath() . '" id="roundcubeFrame" name="roundcube" width="100%" width="100%"> </iframe>'; echo '<input type="hidden" id="disable_header_nav" value="' . $disable_header_nav . '"/>'; echo '<script type="text/javascript" src="apps/roundcube/js/mailFrameScripts.js"></script>'; // create iFrame end } catch (RoundcubeLoginException $ex) { echo "ERROR: Technical problem, " . $ex->getMessage(); $rcl->dumpDebugStack(); exit; OCP\Util::writeLog('roundcube', 'RoundCube can\'t login to roundcube due to a login exception to roundcube', OCP\Util::ERROR); } }