示例#1
0
 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");
     }
 }
示例#2
0
 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);
         try {
             $rcl->logout();
         } catch (RoundcubeLoginException $ex) {
             $log->error('OSSMail_index_View|RoundcubeLoginException: ' . $ex->getMessage());
         }
         $log->debug("End LogoutHandler: user.logout.before");
     }
 }
示例#3
0
 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);
 }
示例#4
0
 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);
 }
示例#5
0
 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');
 }
示例#6
0
 /**
  * @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);
     }
 }