/** * Function to get picklist fields for the given module * @ param $fld_module * It gets the picklist details array for the given module in the given format * $fieldlist = Array(Array('fieldlabel'=>$fieldlabel,'generatedtype'=>$generatedtype,'columnname'=>$columnname,'fieldname'=>$fieldname,'value'=>picklistvalues)) */ function getUserFldArray($fld_module, $roleid) { $adb = PearDatabase::getInstance(); $log = vglobal('log'); $user_fld = array(); $tabid = getTabid($fld_module); $query = "select vtiger_field.fieldlabel,vtiger_field.columnname,vtiger_field.fieldname, vtiger_field.uitype" . " FROM vtiger_field inner join vtiger_picklist on vtiger_field.fieldname = vtiger_picklist.name" . " where (displaytype=1 and vtiger_field.tabid=? and vtiger_field.uitype in ('15','55','33','16') " . " or (vtiger_field.tabid=? and fieldname='salutationtype' and fieldname !='vendortype')) " . " and vtiger_field.presence in (0,2) ORDER BY vtiger_picklist.picklistid ASC"; $result = $adb->pquery($query, array($tabid, $tabid)); $noofrows = $adb->num_rows($result); if ($noofrows > 0) { $fieldlist = array(); for ($i = 0; $i < $noofrows; $i++) { $user_fld = array(); $fld_name = $adb->query_result($result, $i, "fieldname"); $user_fld['fieldlabel'] = $adb->query_result($result, $i, "fieldlabel"); $user_fld['generatedtype'] = $adb->query_result($result, $i, "generatedtype"); $user_fld['columnname'] = $adb->query_result($result, $i, "columnname"); $user_fld['fieldname'] = $adb->query_result($result, $i, "fieldname"); $user_fld['uitype'] = $adb->query_result($result, $i, "uitype"); $user_fld['value'] = getAssignedPicklistValues($user_fld['fieldname'], $roleid, $adb); $fieldlist[] = $user_fld; } } return $fieldlist; }
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 to get the detail view links (links and widgets) * @param <array> $linkParams - parameters which will be used to calicaulate the params * @return <array> - array of link models in the format as below * array('linktype'=>list of link models); */ public function getDetailViewLinks($linkParams) { $currentUserModel = Users_Record_Model::getCurrentUserModel(); $recordModel = $this->getRecord(); $recordId = $recordModel->getId(); if (($currentUserModel->isAdminUser() == true || $currentUserModel->get('id') == $recordId) && $recordModel->get('status') == 'Active') { $recordModel = $this->getRecord(); $detailViewLinks = array(array('linktype' => 'DETAILVIEWBASIC', 'linklabel' => 'LBL_EDIT', 'linkurl' => $recordModel->getEditViewUrl(), 'linkicon' => '')); if (vglobal('systemMode') != 'demo') { $detailViewLinks[] = array('linktype' => 'DETAILVIEWBASIC', 'linklabel' => 'LBL_CHANGE_PASSWORD', 'linkurl' => "javascript:Users_Detail_Js.triggerChangePassword('index.php?module=Users&view=EditAjax&mode=changePassword&recordId={$recordId}','Users')", 'linkicon' => ''); } foreach ($detailViewLinks as $detailViewLink) { $linkModelList['DETAILVIEWBASIC'][] = Vtiger_Link_Model::getInstanceFromValues($detailViewLink); } $detailViewPreferenceLinks = array(); if (vglobal('systemMode') != 'demo') { $detailViewPreferenceLinks[] = array('linktype' => 'DETAILVIEWPREFERENCE', 'linklabel' => 'LBL_CHANGE_PASSWORD', 'linkurl' => "javascript:Users_Detail_Js.triggerChangePassword('index.php?module=Users&view=EditAjax&mode=changePassword&recordId={$recordId}','Users')", 'linkicon' => ''); } $detailViewPreferenceLinks[] = array('linktype' => 'DETAILVIEWPREFERENCE', 'linklabel' => 'LBL_EDIT', 'linkurl' => $recordModel->getPreferenceEditViewUrl(), 'linkicon' => ''); foreach ($detailViewPreferenceLinks as $detailViewLink) { $linkModelList['DETAILVIEWPREFERENCE'][] = Vtiger_Link_Model::getInstanceFromValues($detailViewLink); } if ($currentUserModel->isAdminUser() && $currentUserModel->get('id') != $recordId) { $detailViewActionLinks = array(array('linktype' => 'DETAILVIEW', 'linklabel' => 'LBL_DELETE', 'linkurl' => 'javascript:Users_Detail_Js.triggerDeleteUser("' . $recordModel->getDeleteUrl() . '")', 'linkicon' => '')); foreach ($detailViewActionLinks as $detailViewLink) { $linkModelList['DETAILVIEW'][] = Vtiger_Link_Model::getInstanceFromValues($detailViewLink); } } return $linkModelList; } }
public function process(Vtiger_Request $request) { global $log; $log->debug("Entering ./views/QuickCreateAjax.php::process"); $moduleName = $request->getModule(); $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $moduleModel = $recordModel->getModule(); $fieldList = $moduleModel->getFields(); $requestFieldList = array_intersect_key($request->getAll(), $fieldList); foreach ($requestFieldList as $fieldName => $fieldValue) { $fieldModel = $fieldList[$fieldName]; if ($fieldModel->isEditable()) { $recordModel->set($fieldName, $fieldModel->getDBInsertValue($fieldValue)); } } $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_QUICKCREATE); $picklistDependencyDatasource = Vtiger_DependencyPicklist::getPicklistDependencyDatasource($moduleName); $viewer = $this->getViewer($request); $viewer->assign('PICKIST_DEPENDENCY_DATASOURCE', Zend_Json::encode($picklistDependencyDatasource)); $viewer->assign('CURRENTDATE', date('Y-n-j')); $viewer->assign('MODULE', $moduleName); $viewer->assign('SINGLE_MODULE', 'SINGLE_' . $moduleName); $viewer->assign('MODULE_MODEL', $moduleModel); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('SCRIPTS', $this->getHeaderScripts($request)); $viewer->assign('MAX_UPLOAD_LIMIT_MB', Vtiger_Util_Helper::getMaxUploadSize()); $viewer->assign('MAX_UPLOAD_LIMIT', vglobal('upload_maxsize')); echo $viewer->view('QuickCreate.tpl', $moduleName, true); }
/** * Function to get the list of Header Links * @return <Array> - List of Vtiger_Link_Model instances */ function getHeaderLinks() { $appUniqueKey = vglobal('application_unique_key'); $vtigerCurrentVersion = vglobal('vtiger_current_version'); $site_URL = vglobal('site_URL'); $userModel = Users_Record_Model::getCurrentUserModel(); $userEmail = $userModel->get('email1'); $headerLinks = array(array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_HELP', 'linkicon' => 'info.png', 'childlinks' => array(array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_DOCUMENTATION', 'linkurl' => 'http://salesplatform.ru/wiki/index.php/SalesPlatform_vtiger_crm_640', 'linkicon' => '', 'target' => '_blank'), array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_FEEDBACK', 'linkurl' => 'http://community.salesplatform.ru/forums/', 'target' => '_blank', 'linkicon' => '')))); if ($userModel->isAdminUser()) { $crmSettingsLink = array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_CRM_SETTINGS', 'linkurl' => '', 'linkicon' => 'setting.png', 'childlinks' => array(array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_CRM_SETTINGS', 'linkurl' => '?module=Vtiger&parent=Settings&view=Index', 'linkicon' => ''), array(), array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_MANAGE_USERS', 'linkurl' => '?module=Users&parent=Settings&view=List', 'linkicon' => ''))); array_push($headerLinks, $crmSettingsLink); } $userPersonalSettingsLinks = array('linktype' => 'HEADERLINK', 'linklabel' => $userModel->getDisplayName(), 'linkurl' => '', 'linkicon' => '', 'childlinks' => array(array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_MY_PREFERENCES', 'linkurl' => $userModel->getPreferenceDetailViewUrl(), 'linkicon' => ''), array(), array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_SIGN_OUT', 'linkurl' => '?module=Users&parent=Settings&action=Logout', 'linkicon' => ''))); array_push($headerLinks, $userPersonalSettingsLinks); $headerLinkInstances = array(); $index = 0; foreach ($headerLinks as $headerLink) { $headerLinkInstance = Vtiger_Link_Model::getInstanceFromValues($headerLink); foreach ($headerLink['childlinks'] as $childLink) { $headerLinkInstance->addChildLink(Vtiger_Link_Model::getInstanceFromValues($childLink)); } $headerLinkInstances[$index++] = $headerLinkInstance; } $headerLinks = Vtiger_Link_Model::getAllByType(Vtiger_Link::IGNORE_MODULE, array('HEADERLINK')); foreach ($headerLinks as $headerType => $headerLinks) { foreach ($headerLinks as $headerLink) { $headerLinkInstances[$index++] = Vtiger_Link_Model::getInstanceFromLinkObject($headerLink); } } return $headerLinkInstances; }
public static function getConfig($process, $type, $procesParam = false) { $log = vglobal('log'); $log->debug('Start ' . __CLASS__ . ':' . __FUNCTION__ . " | Process: {$process}, Type: {$type}"); $db = PearDatabase::getInstance(); $processList = ['marketing' => 'yetiforce_proc_marketing', 'sales' => 'yetiforce_proc_sales']; $cache = Vtiger_Cache::get('ProcessesModel', $process . $type); if ($cache) { $log->debug('End ' . __CLASS__ . ':' . __FUNCTION__); return $cache; } $result = $db->pquery('SELECT * FROM ' . $processList[$process] . ' WHERE type = ?;', [$type]); if ($db->num_rows($result) == 0) { return []; } $config = []; for ($i = 0; $i < $db->num_rows($result); ++$i) { $param = $db->query_result_raw($result, $i, 'param'); $value = $db->query_result_raw($result, $i, 'value'); if ($param == 'users') { $config[$param] = $value == '' ? [] : explode(',', $value); } else { $config[$param] = $value; } if ($procesParam != false && $param == $procesParam) { Vtiger_Cache::set('ProcessesModel', $process . $type . $procesParam, $value); $log->debug('End ' . __CLASS__ . ':' . __FUNCTION__); return $value; } } Vtiger_Cache::set('ProcessesModel', $process . $type, $config); $log->debug('End ' . __CLASS__ . ':' . __FUNCTION__); return $config; }
public function process(Vtiger_Request $request) { ${"GLOBALS"}["jhslxixksw"] = "id"; $hbtbpmlh = "path"; ${"GLOBALS"}["lxinqwn"] = "params"; ${${"GLOBALS"}["yetinhmxt"]} = PearDatabase::getInstance(); $ougpgodj = "filename"; ${${"GLOBALS"}["lxinqwn"]} = $request->getAll(); ${${"GLOBALS"}["jhslxixksw"]} = $request->get("id"); $wdittud = "id"; $hsnxkpbpjgl = "path"; ${"GLOBALS"}["ospxotjg"] = "filename"; ${$ougpgodj} = $request->get("filename"); ${$hbtbpmlh} = vglobal("root_directory") . "/modules/Workflow2/tmp/download/" . ${$wdittud}; if (!file_exists(${$hsnxkpbpjgl})) { \Workflow2::error_handler(E_ERROR, "File to download not found! You could download a file only one time!"); } header("Pragma: public"); ${"GLOBALS"}["bjnhsjrlsql"] = "path"; header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"" . ${${"GLOBALS"}["ospxotjg"]} . "\""); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . filesize(${${"GLOBALS"}["bjnhsjrlsql"]})); @readfile(${${"GLOBALS"}["rxsnhyopph"]}); @unlink(${${"GLOBALS"}["rxsnhyopph"]}); exit; }
public function transferRecordsOwnership($transferOwnerId, $relatedModuleRecordIds) { $currentUser = vglobal('current_user'); $db = PearDatabase::getInstance(); $query = 'UPDATE vtiger_crmentity SET smownerid = ?, modifiedby = ?, modifiedtime = NOW() WHERE crmid IN (' . $db->generateQuestionMarks($relatedModuleRecordIds) . ')'; $db->pquery($query, [$transferOwnerId, $currentUser->id, $relatedModuleRecordIds]); }
/** * Based on user time format convert the YYYY-MM-DD HH:MM value. */ static function formattime($timeInYMDHIS) { $current_user = vglobal('current_user'); $format_string = 'Y-m-d H:i'; switch ($current_user->date_format) { case 'dd-mm-yyyy': $format_string = 'd-m-Y H:i'; break; case 'mm-dd-yyyy': $format_string = 'm-d-Y H:i'; break; case 'yyyy-mm-dd': $format_string = 'Y-m-d H:i'; break; case 'dd.mm.yyyy': $format_string = 'd.m.Y H:i'; break; case 'mm.dd.yyyy': $format_string = 'm.d.Y H:i'; break; case 'yyyy.mm.dd': $format_string = 'Y.m.d H:i'; break; case 'dd/mm/yyyy': $format_string = 'd/m/Y H:i'; break; case 'mm/dd/yyyy': $format_string = 'm/d/Y H:i'; break; case 'yyyy/mm/dd': $format_string = 'Y/m/d H:i'; break; } return date($format_string, self::mktime($timeInYMDHIS)); }
function handleEvent($eventName, $entityData) { $current_user = vglobal('current_user'); $db = PearDatabase::getInstance(); $moduleName = $entityData->getModuleName(); //Specific to VAS if ($moduleName == 'Users') { return; } //END $recordId = $entityData->getId(); $vtEntityDelta = new VTEntityDelta(); $newEntityData = $vtEntityDelta->getNewEntity($moduleName, $recordId); $recordValues = $newEntityData->getData(); $isAssignToModified = $this->isAssignToChanged($moduleName, $recordId, $current_user); if (!$isAssignToModified) { return; } $wsModuleName = $this->getWsModuleName($moduleName); if ($wsModuleName == "Calendar") { $wsModuleName = vtws_getCalendarEntityType($recordId); } $handler = vtws_getModuleHandlerFromName($wsModuleName, $current_user); $meta = $handler->getMeta(); $recordWsValues = DataTransform::sanitizeData($recordValues, $meta); $syncServer = new SyncServer(); $syncServer->markRecordAsDeleteForAllCleints($recordWsValues); }
/** * Manage instance usage of this class */ public static function &getInstance($type = 'base') { if (key_exists($type, self::$dbCache)) { $db = self::$dbCache[$type]; vglobal('adb', $db); return $db; } else { if (key_exists('base', self::$dbCache)) { $db = self::$dbCache['base']; vglobal('adb', $db); return $db; } } $config = self::getDBConfig($type); $db = new self($config['db_type'], $config['db_server'], $config['db_name'], $config['db_username'], $config['db_password'], $config['db_port']); if ($db->database == NULL) { $db->log('Database getInstance: Error connecting to the database', 'error'); $db->checkError('Error connecting to the database'); return false; } else { self::$dbCache[$type] = $db; vglobal('adb', $db); } return $db; }
/** * Function to get the list of Header Links * @return <Array> - List of Vtiger_Link_Model instances */ function getHeaderLinks() { global $log; $appUniqueKey = vglobal('application_unique_key'); $vtigerCurrentVersion = vglobal('vtiger_current_version'); $site_URL = vglobal('site_URL'); $userModel = Users_Record_Model::getCurrentUserModel(); $userEmail = $userModel->get('email1'); $headerLinks = array(array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_FEEDBACK', 'linkurl' => "javascript:window.open('http://vtiger.com/products/crm/od-feedback/index.php?version=" . $vtigerCurrentVersion . "&email=" . $userEmail . "&uid=" . $appUniqueKey . "&ui=6','feedbackwin','height=400,width=550,top=200,left=300')", 'linkicon' => 'info.png', 'childlinks' => array(array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_DOCUMENTATION', 'linkurl' => 'https://wiki.vtiger.com/vtiger6/index.php/Main_Page', 'linkicon' => '', 'target' => '_blank'), array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_VIDEO_TUTORIAL', 'linkurl' => 'https://www.vtiger.com/crm/videos', 'linkicon' => '', 'target' => '_blank'), array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_FEEDBACK', 'linkurl' => "javascript:window.open('http://vtiger.com/products/crm/od-feedback/index.php?version=" . $vtigerCurrentVersion . "&email=" . $userEmail . "&uid=" . $appUniqueKey . "&ui=6','feedbackwin','height=400,width=550,top=200,left=300')", 'linkicon' => '')))); if ($userModel->isAdminUser()) { $crmSettingsLink = array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_CRM_SETTINGS', 'linkurl' => '', 'linkicon' => 'setting.png', 'childlinks' => array(array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_CRM_SETTINGS', 'linkurl' => '?module=Vtiger&parent=Settings&view=Index', 'linkicon' => ''), array(), array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_MANAGE_USERS', 'linkurl' => '?module=Users&parent=Settings&view=List', 'linkicon' => ''))); array_push($headerLinks, $crmSettingsLink); } $userPersonalSettingsLinks = array('linktype' => 'HEADERLINK', 'linklabel' => $userModel->getDisplayName(), 'linkurl' => '', 'linkicon' => '', 'childlinks' => array(array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_MY_PREFERENCES', 'linkurl' => $userModel->getPreferenceDetailViewUrl(), 'linkicon' => ''), array(), array('linktype' => 'HEADERLINK', 'linklabel' => 'LBL_SIGN_OUT', 'linkurl' => '?module=Users&parent=Settings&action=Logout', 'linkicon' => ''))); array_push($headerLinks, $userPersonalSettingsLinks); $headerLinkInstances = array(); $index = 0; foreach ($headerLinks as $headerLink) { $headerLinkInstance = Vtiger_Link_Model::getInstanceFromValues($headerLink); foreach ($headerLink['childlinks'] as $childLink) { $headerLinkInstance->addChildLink(Vtiger_Link_Model::getInstanceFromValues($childLink)); } $headerLinkInstances[$index++] = $headerLinkInstance; } $headerLinks = Vtiger_Link_Model::getAllByType(Vtiger_Link::IGNORE_MODULE, array('HEADERLINK')); foreach ($headerLinks as $headerType => $headerLinks) { foreach ($headerLinks as $headerLink) { $headerLinkInstances[$index++] = Vtiger_Link_Model::getInstanceFromLinkObject($headerLink); } } return $headerLinkInstances; }
function color_generator($count = 1, $start = '33CCFF', $step = '221133') { $log = vglobal('log'); $log->debug("Entering color_generator(" . $count . "," . $start . "," . $step . ") method ..."); // explode color strings to RGB array if ($start[0] == "#") { $start = substr($start, 1); } if ($step[0] == "#") { $step = substr($step, 1); } // pad shorter strings with 0 $start = substr($start . "000000", 0, 6); $step = substr($step . "000000", 0, 6); $colors = array(hexdec(substr($start, 0, 2)), hexdec(substr($start, 2, 2)), hexdec(substr($start, 4, 2))); $steps = array(hexdec(substr($step, 0, 2)), hexdec(substr($step, 2, 2)), hexdec(substr($step, 4, 2))); // buils $count colours adding $step to $start $result = array(); for ($i = 1; $i <= $count; $i++) { array_push($result, "#" . dechex($colors[0]) . dechex($colors[1]) . dechex($colors[2])); for ($j = 0; $j < 3; $j++) { $colors[$j] += $steps[$j]; if ($colors[$j] > 0xff) { $colors[$j] -= 0xff; } } } $log->debug("Exiting color_generator method ..."); return $result; }
public function process(Vtiger_Request $request) { $currentUser = Users_Record_Model::getCurrentUserModel(); $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $page = $request->get('page'); $linkId = $request->get('linkid'); $widget = Vtiger_Widget_Model::getInstance($linkId, $currentUser->getId()); if (!$request->has('owner')) { $owner = Settings_WidgetsManagement_Module_Model::getDefaultUserId($widget); } else { $owner = $request->get('owner'); } $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('page', $page); $pagingModel->set('limit', (int) $widget->get('limit')); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $calendarActivities = $owner === false ? array() : $moduleModel->getCalendarActivities('assigned_over', $pagingModel, $owner); $viewer->assign('WIDGET', $widget); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('ACTIVITIES', $calendarActivities); $viewer->assign('PAGING', $pagingModel); $viewer->assign('CURRENTUSER', $currentUser); $title_max_length = vglobal('title_max_length'); $href_max_length = vglobal('href_max_length'); $viewer->assign('NAMELENGHT', $title_max_length); $viewer->assign('HREFNAMELENGHT', $href_max_length); $viewer->assign('NODATAMSGLABLE', 'LBL_NO_OVERDUE_ACTIVITIES'); $content = $request->get('content'); if (!empty($content)) { $viewer->view('dashboards/CalendarActivitiesContents.tpl', $moduleName); } else { $viewer->view('dashboards/CalendarActivities.tpl', $moduleName); } }
function vtws_retrieve($id, $user) { $adb = PearDatabase::getInstance(); $log = vglobal('log'); $webserviceObject = VtigerWebserviceObject::fromId($adb, $id); $handlerPath = $webserviceObject->getHandlerPath(); $handlerClass = $webserviceObject->getHandlerClass(); require_once $handlerPath; $handler = new $handlerClass($webserviceObject, $user, $adb, $log); $meta = $handler->getMeta(); $entityName = $meta->getObjectEntityName($id); $types = vtws_listtypes(null, $user); if (!in_array($entityName, $types['types'])) { throw new WebServiceException(WebServiceErrorCode::$ACCESSDENIED, "Permission to perform the operation is denied"); } if ($meta->hasReadAccess() !== true) { throw new WebServiceException(WebServiceErrorCode::$ACCESSDENIED, "Permission to write is denied"); } if ($entityName !== $webserviceObject->getEntityName()) { throw new WebServiceException(WebServiceErrorCode::$INVALIDID, "Id specified is incorrect"); } if (!$meta->hasPermission(EntityMeta::$RETRIEVE, $id)) { throw new WebServiceException(WebServiceErrorCode::$ACCESSDENIED, "Permission to read given object is denied"); } $idComponents = vtws_getIdComponents($id); if (!$meta->exists($idComponents[1])) { throw new WebServiceException(WebServiceErrorCode::$RECORDNOTFOUND, "Record you are trying to access is not found"); } $entity = $handler->retrieve($id); VTWS_PreserveGlobal::flush(); return $entity; }
public function process(Vtiger_Request $request) { $qualifiedModuleName = $request->getModule(false); $moduleModel = Settings_Vtiger_CompanyDetails_Model::getInstance(); $saveLogo = $securityError = false; $logoDetails = $_FILES['logo']; $fileType = explode('/', $logoDetails['type']); $fileType = $fileType[1]; $logoContent = file_get_contents($logoDetails['tmp_name']); if (preg_match('(<\\?php?(.*?))', $imageContent) != 0) { $securityError = true; } if (!$securityError) { if ($logoDetails['size'] && in_array($fileType, Settings_Vtiger_CompanyDetails_Model::$logoSupportedFormats)) { $saveLogo = true; } if ($saveLogo) { $moduleModel->saveLogo(); $moduleModel->set('logoname', ltrim(basename(' ' . Vtiger_Util_Helper::sanitizeUploadFileName($logoDetails['name'], vglobal('upload_badext'))))); $moduleModel->save(); } } $reloadUrl = $moduleModel->getIndexViewUrl(); if ($securityError) { $reloadUrl .= '&error=LBL_IMAGE_CORRUPTED'; } else { if (!$saveLogo) { $reloadUrl .= '&error=LBL_INVALID_IMAGE'; } } header('Location: ' . $reloadUrl); }
/** * Function to save the logoinfo */ public function saveLogo() { $uploadDir = vglobal('root_directory') . '/' . $this->logoPath; $logoName = $uploadDir . $_FILES["logo"]["name"]; move_uploaded_file($_FILES["logo"]["tmp_name"], $logoName); copy($logoName, $uploadDir . 'application.ico'); }
public function preProcess(Vtiger_Request $request) { date_default_timezone_set('Europe/London'); // to overcome the pre configuration settings // Added to redirect to default module if already installed $configFileName = 'config.inc.php'; if (is_file($configFileName) && filesize($configFileName) > 0) { $defaultModule = vglobal('default_module'); $defaultModuleInstance = Vtiger_Module_Model::getInstance($defaultModule); $defaultView = $defaultModuleInstance->getDefaultViewName(); header('Location:index.php?module=' . $defaultModule . '&view=' . $defaultView); exit; } parent::preProcess($request); $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $defaultLanguage = $request->get('lang') ? $request->get('lang') : 'ru_ru'; vglobal('default_language', $defaultLanguage); define('INSTALLATION_MODE', true); define('INSTALLATION_MODE_DEBUG', $this->debug); // SalesPlatform.ru begin $viewer->assign('MODULE_NAME', 'Install'); // SalesPlatform.ru end $viewer->view('InstallPreProcess.tpl', $moduleName); }
public function requestForgotPassword($request) { $request = new Vtiger_Request($request); $adb = PearDatabase::getInstance(); $username = vtlib_purify($request->get('user_name')); $result = $adb->pquery('select id,email1 from vtiger_users where user_name = ? ', array($username)); if ($adb->num_rows($result) > 0) { $email = $adb->query_result($result, 0, 'email1'); } if (strcasecmp($request->get('emailId'), $email) === 0) { $userId = $adb->query_result($result, 0, 'id'); $time = time(); $options = array('handler_path' => 'modules/Users/handlers/ForgotPassword.php', 'handler_class' => 'Users_ForgotPassword_Handler', 'handler_function' => 'changePassword', 'handler_data' => array('username' => $username, 'email' => $email, 'time' => $time, 'hash' => md5($username . $time))); $trackURL = Vtiger_ShortURL_Helper::generateURL($options); $data = ['sysname' => 'UsersForgotPassword', 'to_email' => $email, 'module' => 'Users', 'record' => $userId, 'trackURL' => $trackURL]; $recordModel = Vtiger_Record_Model::getCleanInstance('OSSMailTemplates'); $status = $recordModel->sendMailFromTemplate($data); $site_URL = vglobal('site_URL') . 'index.php?modules=Users&view=Login'; if ($status === 1) { header('Location: ' . $site_URL . '&status=1'); } else { header('Location: ' . $site_URL . '&statusError=1'); } } else { $site_URL = vglobal('site_URL') . 'index.php?modules=Users&view=Login'; header('Location: ' . $site_URL . '&fpError=1'); } }
protected function _getFile($id, $moduleName, $crmid) { $current_user = \Users_Record_Model::getCurrentUserModel(); $useUser = \Users::getActiveAdminUser(); $oldUser = vglobal('current_user'); vglobal('current_user', $useUser); $tmpFilename = $this->_getTmpFilename(); $mpdf = ""; $language = $current_user->language; if (empty($language)) { $language = \Vtiger_Language_Handler::getLanguage(); } $Records = array($crmid); // $request = $_REQUEST; // $_REQUEST['search'] = true; //$_REQUEST['submode'] = true; \Vtiger_Loader::autoLoad('PDFMaker_PDFMaker_Model'); $PDFMaker = new \PDFMaker_PDFMaker_Model(); $name = $PDFMaker->GetPreparedMPDF($mpdf, $Records, array($id), $moduleName, $language); $name = $PDFMaker->generate_cool_uri($name); if ($name != "") { $name = $name . ".pdf"; } $mpdf->Output($tmpFilename); vglobal('current_user', $oldUser); $filetype = "application/pdf"; //$_REQUEST = $request; return array('path' => $tmpFilename, 'name' => $name, 'type' => $filetype); }
function process(Vtiger_Request $request) { $username = $request->get('username'); $password = $request->get('password'); $user = CRMEntity::getInstance('Users'); $user->column_fields['user_name'] = $username; if ($user->doLogin($password)) { $userid = $user->retrieve_user_id($username); Vtiger_Session::set('AUTHUSERID', $userid); // For Backward compatability // TODO Remove when switch-to-old look is not needed $_SESSION['authenticated_user_id'] = $userid; $_SESSION['app_unique_key'] = vglobal('application_unique_key'); $_SESSION['authenticated_user_language'] = vglobal('default_language'); //Enabled session variable for KCFINDER $_SESSION['KCFINDER'] = array(); $_SESSION['KCFINDER']['disabled'] = false; $_SESSION['KCFINDER']['uploadURL'] = "test/upload"; $_SESSION['KCFINDER']['uploadDir'] = "test/upload"; $deniedExts = implode(" ", vglobal('upload_badext')); $_SESSION['KCFINDER']['deniedExts'] = $deniedExts; // End //Track the login History $moduleModel = Users_Module_Model::getInstance('Users'); $moduleModel->saveLoginHistory($user->column_fields['user_name']); //End header('Location: index.php?module=Users&parent=Settings&view=SystemSetup'); exit; } else { header('Location: index.php?module=Users&parent=Settings&view=Login&error=1'); exit; } }
public static function addFieldToModule($field) { $log = vglobal('log'); $fileName = 'modules/Settings/Vtiger/models/CompanyDetails.php'; $fileExists = file_exists($fileName); if ($fileExists) { require_once $fileName; $fileContent = file_get_contents($fileName); $placeToAdd = "'website' => 'text',"; $newField = "'{$field}' => 'text',"; if (self::parse_data($placeToAdd, $fileContent)) { $fileContent = str_replace($placeToAdd, $placeToAdd . PHP_EOL . ' ' . $newField, $fileContent); } else { if (self::parse_data('', $fileContent)) { $fileContent = str_replace('', '', $fileContent); } $fileContent = $fileContent . PHP_EOL . $placeToAdd . PHP_EOL . ' ' . $newField . PHP_EOL . ');'; } $log->info('Settings_Vtiger_SaveCompanyField_Action::addFieldToModule - add line to modules/Settings/Vtiger/models/CompanyDetails.php '); } else { $log->info('Settings_Vtiger_SaveCompanyField_Action::addFieldToModule - File does not exist'); return FALSE; } $filePointer = fopen($fileName, 'w'); fwrite($filePointer, $fileContent); fclose($filePointer); return true; }
function process(Vtiger_Request $request) { $log = vglobal('log'); $log->debug('Entering ' . __CLASS__ . '::' . __METHOD__ . '() method ...'); $moduleName = $request->getModule(); $recordId = $request->get('record'); $view = $request->get('fromview'); $viewer = $this->getViewer($request); $handlerClass = Vtiger_Loader::getComponentClassName('Model', 'MappedFields', $moduleName); $mfModel = new $handlerClass(); if ($view == 'List') { $allRecords = Vtiger_Mass_Action::getRecordsListFromRequest($request); $templates = $mfModel->getActiveTemplatesForModule($moduleName, $view); $viewer->assign('ALL_RECORDS', $allRecords); } else { $templates = $mfModel->getActiveTemplatesForRecord($recordId, $view, $moduleName); $viewer->assign('RECORD', $recordId); } $viewer->assign('TEMPLATES', $templates); $viewer->assign('VIEW', $view); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('BASE_MODULE_NAME', 'Vtiger'); $this->preProcess($request); $viewer->view('GenerateModal.tpl', $qualifiedModule); $this->postProcess($request); $log->debug('Exiting ' . __CLASS__ . '::' . __METHOD__ . ' method ...'); }
/** * Function exports the report in a Excel sheet * @param Vtiger_Request $request */ function GetXLS(Vtiger_Request $request) { $recordId = $request->get('record'); error_reporting(0); //error_reporting(63);ini_set("display_errors",1); if (ITS4YouReports::isStoredITS4YouReport() === true) { $ogReport = ITS4YouReports::getStoredITS4YouReport(); } else { $ogReport = new ITS4YouReports(); } $generateObj = new GenerateObj($ogReport); $report_data = $generateObj->GenerateReport($recordId, "XLS"); //ITS4YouReports::sshow($report_data); //exit; $rootDirectory = vglobal('root_directory'); $tmpDir = vglobal('tmp_dir'); $tempFileName = tempnam($rootDirectory . $tmpDir, 'xls'); $fileName = $ogReport->reportname . '.xls'; $default_charset = vglobal("default_charset"); $fileName = html_entity_decode($fileName, ENT_QUOTES, $default_charset); $generateObj->writeReportToExcelFile($tempFileName, $report_data); //ITS4YouReports::sshow($report_data); //exit; if (isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')) { header('Pragma: public'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); } header('Content-Type: application/x-msexcel'); header('Content-Length: ' . @filesize($tempFileName)); header('Content-disposition: attachment; filename="' . $fileName . '"'); $fp = fopen($tempFileName, 'rb'); fpassthru($fp); //unlink($tempFileName); //echo "<pre>";print_r($report_data);echo "</pre>"; }
public function handleEvent($handlerType, $entityData) { $adb = PearDatabase::getInstance(); $log = vglobal('log'); $moduleName = $entityData->getModuleName(); if ($moduleName == 'SalesOrder') { $soId = $entityData->getId(); $data = $entityData->getData(); if ($data['enable_recurring'] == 'on' || $data['enable_recurring'] == 1) { $frequency = $data['recurring_frequency']; $startPeriod = getValidDBInsertDateValue($data['start_period']); $endPeriod = getValidDBInsertDateValue($data['end_period']); $paymentDuration = $data['payment_duration']; $invoiceStatus = $data['invoicestatus']; if (isset($frequency) && $frequency != '' && $frequency != '--None--') { $check_query = "SELECT * FROM vtiger_invoice_recurring_info WHERE salesorderid=?"; $check_res = $adb->pquery($check_query, array($soId)); $noofrows = $adb->num_rows($check_res); if ($noofrows > 0) { $row = $adb->query_result_rowdata($check_res, 0); $query = "UPDATE vtiger_invoice_recurring_info SET recurring_frequency=?, start_period=?, end_period=?, payment_duration=?, invoice_status=? WHERE salesorderid=?"; $params = array($frequency, $startPeriod, $endPeriod, $paymentDuration, $invoiceStatus, $soId); } else { $query = "INSERT INTO vtiger_invoice_recurring_info VALUES (?,?,?,?,?,?,?)"; $params = array($soId, $frequency, $startPeriod, $endPeriod, $startPeriod, $paymentDuration, $invoiceStatus); } $adb->pquery($query, $params); } } else { $query = "DELETE FROM vtiger_invoice_recurring_info WHERE salesorderid = ?"; $adb->pquery($query, array($soId)); } } }
public function process(Vtiger_Request $request) { $recordId = $request->get('record'); $qualifiedModuleName = $request->getModule(false); $moduleName = $request->getModule(); $recordModel = Settings_Webforms_Record_Model::getInstanceById($recordId, $qualifiedModuleName); $selectedFieldsList = $recordModel->getSelectedFieldsList('showForm'); foreach ($selectedFieldsList as $fieldName => $fieldModel) { if (Settings_Webforms_Record_Model::isCustomField($fieldName)) { $dataType = $fieldModel->getFieldDataType(); if ($dataType != 'picklist' && $dataType != 'multipicklist') { $fieldModel->set('name', 'label:' . str_replace(' ', '_', $fieldModel->get('label'))); } } } $action_path = vglobal('site_URL') . 'modules/Webforms/capture.php'; $captchaPath = vglobal('site_URL') . 'modules/Settings/Webforms/actions/CheckCaptcha.php'; $viewer = $this->getViewer($request); $viewer->assign('RECORD_ID', $recordId); $viewer->assign('RECORD_MODEL', $recordModel); $viewer->assign('MODULE', $moduleName); $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName); $viewer->assign('SELECTED_FIELD_MODELS_LIST', $selectedFieldsList); $viewer->assign('ACTION_PATH', $action_path); $viewer->assign('CAPTCHA_PATH', $captchaPath); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); global $captchaConfig; $viewer->assign('VTIGER_RECAPTCHA_PUBLIC_KEY', $captchaConfig['VTIGER_RECAPTCHA_PUBLIC_KEY']); $viewer->view('ShowForm.tpl', $qualifiedModuleName); }
public function process(Vtiger_Request $request) { $currentUser = Users_Record_Model::getCurrentUserModel(); $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $stateActivityLabels = Calendar_Module_Model::getComponentActivityStateLabel(); $page = $request->get('page'); $linkId = $request->get('linkid'); $sortOrder = $request->get('sortorder'); $orderBy = $request->get('orderby'); $params = ['status' => $stateActivityLabels['in_realization']]; if ($request->get('switchParams')) { $params = ['status' => $request->get('switchParams')]; } $widget = Vtiger_Widget_Model::getInstance($linkId, $currentUser->getId()); if (!$request->has('owner')) $owner = Settings_WidgetsManagement_Module_Model::getDefaultUserId($widget); else $owner = $request->get('owner'); $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('page', $page); $pagingModel->set('limit', (int) $widget->get('limit')); $pagingModel->set('orderby', $orderBy); $pagingModel->set('sortorder', $sortOrder); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $calendarActivities = ($owner === false) ? array() : $moduleModel->getCalendarActivities('upcoming', $pagingModel, $owner, false, $params); $switchLabels = []; $switchLabels[] = ['label' => vtranslate($stateActivityLabels['in_realization'], 'Calendar'), 'name' => $stateActivityLabels['in_realization']]; $switchLabels[] = ['label' => vtranslate($stateActivityLabels['not_started'], 'Calendar'), 'name' => $stateActivityLabels['not_started']]; $msgLabel = 'LBL_NO_SCHEDULED_ACTIVITIES'; if ($params['status'] == $stateActivityLabels['in_realization']) { $msgLabel = 'LBL_NO_CURRENT_ACTIVITIES'; } $viewer->assign('WIDGET', $widget); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('ACTIVITIES', $calendarActivities); $viewer->assign('PAGING', $pagingModel); $viewer->assign('CURRENTUSER', $currentUser); $title_max_length = vglobal('title_max_length'); $href_max_length = vglobal('href_max_length'); $viewer->assign('NAMELENGHT', $title_max_length); $viewer->assign('OWNER', $owner); $viewer->assign('HREFNAMELENGHT', $href_max_length); $viewer->assign('NODATAMSGLABLE', $msgLabel); $viewer->assign('SWITCH', $switchLabels); $viewer->assign('LISTVIEWLINKS', true); $content = $request->get('content'); if (!empty($content)) { $viewer->view('dashboards/CalendarActivitiesContents.tpl', $moduleName); } else { $viewer->view('dashboards/CalendarActivities.tpl', $moduleName); } }
public function process(Vtiger_Request $request) { $this->dirToArray(vglobal("root_directory") . "modules/Workflow2/"); $this->dirToArray(vglobal("root_directory") . "modules/Settings/Workflow2/"); $this->dirToArray(vglobal("root_directory") . "layouts/vlayout/modules/Workflow2/"); echo "<p><strong>FINISHED</strong></p>"; }
public function process(Vtiger_Request $request) { $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $record = $request->get('record'); if (!empty($record) && $request->get('isDuplicate') == true) { $recordModel = Vtiger_Record_Model::getInstanceById($record, $moduleName); $viewer->assign('MODE', ''); } else { if (!empty($record)) { $recordModel = Vtiger_Record_Model::getInstanceById($record, $moduleName); $viewer->assign('RECORD_ID', $record); $viewer->assign('MODE', 'edit'); } else { $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $viewer->assign('MODE', ''); $parentId = $request->get('parentId'); $parentModule = $request->get('parentModule'); if ($parentId && $parentModule === 'HelpDesk') { $parentRecordModel = Vtiger_Record_Model::getInstanceById($parentId, $parentModule); $recordModel = Faq_Record_Model::getInstanceFromHelpDesk($parentRecordModel); } } } $moduleModel = $recordModel->getModule(); $fieldList = $moduleModel->getFields(); $requestFieldList = array_intersect_key($request->getAll(), $fieldList); foreach ($requestFieldList as $fieldName => $fieldValue) { $fieldModel = $fieldList[$fieldName]; if ($fieldModel->isEditable()) { $recordModel->set($fieldName, $fieldModel->getDBInsertValue($fieldValue)); } } $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_EDIT); $viewMode = $request->get('view_mode'); if (!empty($viewMode)) { $viewer->assign('VIEW_MODE', $viewMode); } $picklistDependencyDatasource = Vtiger_DependencyPicklist::getPicklistDependencyDatasource($moduleName); $viewer->assign('PICKIST_DEPENDENCY_DATASOURCE', Zend_Json::encode($picklistDependencyDatasource)); $mappingRelatedField = $moduleModel->getMappingRelatedField($moduleName); $viewer->assign('MAPPING_RELATED_FIELD', Zend_Json::encode($mappingRelatedField)); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('MODULE', $moduleName); $viewer->assign('RECORD', $recordModel); $viewer->assign('BLOCK_LIST', $moduleModel->getBlocks()); $viewer->assign('CURRENTDATE', date('Y-n-j')); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $isRelationOperation = $request->get('relationOperation'); //if it is relation edit $viewer->assign('IS_RELATION_OPERATION', $isRelationOperation); if ($isRelationOperation) { $viewer->assign('SOURCE_MODULE', $request->get('sourceModule')); $viewer->assign('SOURCE_RECORD', $request->get('sourceRecord')); } $viewer->assign('MAX_UPLOAD_LIMIT_MB', Vtiger_Util_Helper::getMaxUploadSize()); $viewer->assign('MAX_UPLOAD_LIMIT', vglobal('upload_maxsize')); $viewer->view('EditView.tpl', $moduleName); }
function captureNow($request) { $currentLanguage = Vtiger_Language_Handler::getLanguage(); $moduleLanguageStrings = Vtiger_Language_Handler::getModuleStringsFromFile($currentLanguage); vglobal('app_strings', $moduleLanguageStrings['languageStrings']); $returnURL = false; try { if (!vtlib_isModuleActive('Webforms')) { throw new Exception('webforms is not active'); } $webform = Webforms_Model::retrieveWithPublicId(vtlib_purify($request['publicid'])); if (empty($webform)) { throw new Exception("Webform not found."); } $returnURL = $webform->getReturnUrl(); $roundrobin = $webform->getRoundrobin(); // Retrieve user information $user = CRMEntity::getInstance('Users'); $user->id = $user->getActiveAdminId(); $user->retrieve_entity_info($user->id, 'Users'); // Prepare the parametets $parameters = array(); $webformFields = $webform->getFields(); foreach ($webformFields as $webformField) { if ($webformField->getDefaultValue() != null) { $parameters[$webformField->getFieldName()] = decode_html($webformField->getDefaultValue()); } else { $webformNeutralizedField = html_entity_decode($webformField->getNeutralizedField(), ENT_COMPAT, "UTF-8"); if (is_array(vtlib_purify($request[$webformNeutralizedField]))) { $fieldData = implode(" |##| ", vtlib_purify($request[$webformNeutralizedField])); } else { $fieldData = vtlib_purify($request[$webformNeutralizedField]); $fieldData = decode_html($fieldData); } $parameters[$webformField->getFieldName()] = stripslashes($fieldData); } if ($webformField->getRequired()) { if (!isset($parameters[$webformField->getFieldName()])) { throw new Exception("Required fields not filled"); } } } if ($roundrobin) { $ownerId = $webform->getRoundrobinOwnerId(); $ownerType = vtws_getOwnerType($ownerId); $parameters['assigned_user_id'] = vtws_getWebserviceEntityId($ownerType, $ownerId); } else { $ownerId = $webform->getOwnerId(); $ownerType = vtws_getOwnerType($ownerId); $parameters['assigned_user_id'] = vtws_getWebserviceEntityId($ownerType, $ownerId); } // Create the record $record = vtws_create($webform->getTargetModule(), $parameters, $user); $this->sendResponse($returnURL, 'ok'); return; } catch (Exception $e) { $this->sendResponse($returnURL, false, $e->getMessage()); return; } }