| Server IP : 138.197.176.125 / Your IP : 216.73.217.54 Web Server : Apache/2.4.41 (Ubuntu) System : Linux SuiteCRM-8 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.3.19 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/suitesupport.varianceinfotech.net/modules/CTBrowserExt/api/ws/ |
Upload File : |
<?php
/*+*******************************************************************************
* The content of this file is subject to the CRMTiger Pro license.
* ("License"); You may not use this file except in compliance with the License
* The Initial Developer of the Original Code is vTiger
* The Modified Code of the Original Code owned by https://crmtiger.com/
* Portions created by CRMTiger.com are Copyright(C) CRMTiger.com
* All Rights Reserved.
***************************************************************************** */
include_once dirname(__FILE__) . '/Login.php';
class CTBrowserExt_WS_LoginAndFetchModules extends CTBrowserExt_WS_Login {
function postProcess(CTBrowserExt_API_Response $response) {
global $current_user,$adb, $site_URL;
$current_user = $this->getActiveUser();
if ($current_user) {
$results = $response->getResult();
$results['modules'] = $this->getAllVisibleModules();
$query = "SELECT vtiger_tab.name, vtiger_tab.tabid FROM vtiger_relatedlists INNER JOIN vtiger_tab ON vtiger_relatedlists.tabid = vtiger_tab.tabid where vtiger_relatedlists.presence = 0 AND vtiger_relatedlists.label=?";
$params = array("ModComments");
$result = $adb->pquery($query , $params);
$numrows = $adb->num_rows($result);
$CommentsModule = array();
for($i=0;$i<$numrows;$i++){
$CommentsModule[] = $adb->query_result($result,$i,'name');
}
$query2 = "SELECT vtiger_tab.name, vtiger_tab.tabid FROM vtiger_relatedlists INNER JOIN vtiger_tab ON vtiger_relatedlists.tabid = vtiger_tab.tabid where vtiger_relatedlists.presence = 0 AND vtiger_relatedlists.label=?";
$params2 = array("Activities");
$result2 = $adb->pquery($query2 , $params2);
$numrows = $adb->num_rows($result2);
$ActivitiesModule = array();
for($i=0;$i<$numrows;$i++){
$ActivitiesModule[] = $adb->query_result($result2,$i,'name');
}
$query2 = "SELECT vtiger_tab.name, vtiger_tab.tabid FROM vtiger_relatedlists INNER JOIN vtiger_tab ON vtiger_relatedlists.tabid = vtiger_tab.tabid where vtiger_relatedlists.presence = 0 AND vtiger_relatedlists.label=?";
$params2 = array("Activities");
$result2 = $adb->pquery($query2 , $params2);
$numrows = $adb->num_rows($result2);
$ActivitiesModule = array();
for($i=0;$i<$numrows;$i++){
$ActivitiesModule[] = $adb->query_result($result2,$i,'name');
}
$query3 = "SELECT * FROM `vtiger_tab` WHERE `isentitytype` =1 AND `presence` =0";
$result3 = $adb->pquery($query3 ,array());
$numrows = $adb->num_rows($result3);
$SummaryModule = array();
for($i=0;$i<$numrows;$i++){
$Module = $adb->query_result($result3,$i,'name');
$moduleModel = Vtiger_Module_Model::getInstance($Module);
if($moduleModel->isSummaryViewSupported()) {
$SummaryModule[] = $Module;
}else{
continue;
}
}
$results['AccessModule'] = array('CommentsModule'=>$CommentsModule,'ActivitiesModule'=>$ActivitiesModule,'SummaryModule'=>$SummaryModule);
$response->setResult($results);
}
}
function getImageURL($modulename) {
global $adb,$site_URL;
$img_url = '';
$filename = 'modules/CTBrowserExt/MobileIcon/'.$modulename.'.png';
if (file_exists($filename)) {
$img_url = $site_URL.'modules/CTBrowserExt/MobileIcon/'.$modulename.'.png';
}
return $img_url;
}
public function getAllVisibleModules() {
$current_user = $this->getActiveUser();
$listresult = vtws_listtypes(null,$current_user);
$menuModelsList = Vtiger_Menu_Model::getAll(true);
$modules[vtranslate('Other Modules','Vtiger')]=$modules[vtranslate('LBL_TOOLS','Vtiger')]=$modules[vtranslate('LBL_PROJECT','Vtiger')]=$modules[vtranslate('LBL_SUPPORT','Vtiger')]=$modules[vtranslate('LBL_INVENTORY','Vtiger')]=$modules[vtranslate('LBL_SALES','Vtiger')]=$modules[vtranslate('LBL_MARKETING','Vtiger')]= array();
$presence = array('0', '2');
$db = PearDatabase::getInstance();
$result = $db->pquery('SELECT * FROM vtiger_app2tab WHERE visible = ? ORDER BY appname,sequence', array(1));
$count = $db->num_rows($result);
$userPrivModel = Users_Privileges_Model::getInstanceById($current_user->id);
if ($count > 0) {
for ($i = 0; $i < $count; $i++) {
$appname = $db->query_result($result, $i, 'appname');
$tabid = $db->query_result($result, $i, 'tabid');
$sequence = $db->query_result($result, $i, 'sequence');
$moduleName = getTabModuleName($tabid);
$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
$restrictedModule = array('CTBrowserExt','Rss','Portal','RecycleBin','ExtensionStore','CTPushNotification','EmailTemplates','CTAttendance');
if (empty($moduleModel))
continue;
if (in_array($moduleModel->get('name'),$restrictedModule))
continue;
$moduleModel->set('app2tab_sequence', $sequence);
if (($userPrivModel->isAdminUser() ||
$userPrivModel->hasGlobalReadPermission() ||
$userPrivModel->hasModulePermission($moduleModel->getId())) && in_array($moduleModel->get('presence'), $presence)) {
$view = 'List';
$module = $moduleModel->get('name');
$ModulesArray = array('SMSNotifier','PBXManager','CTPushNotification','CTCalllog','CTAttendance');
if(in_array($module,$ModulesArray)){
$QuickCreateAction = false;
$editAction = false;
$createAction = false;
}else{
$QuickCreateAction = $moduleModel->isQuickCreateSupported();
$editAction = $userPrivModel->hasModuleActionPermission($moduleModel->getId(), 'EditView');
$createAction = $userPrivModel->hasModuleActionPermission($moduleModel->getId(), 'CreateView');
}
$singular = vtranslate($moduleModel->get('name'),$module);
if($appname == ''){
$appname ='Other Modules';
}
$appname = vtranslate('LBL_'.$appname,'Vtiger');
//allow access false when user type Free
$restrictedModules = array('SMSNotifier','CTUserFilterView','CTPushNotification','CTAttendance','CTCalllog');
$modules[$appname][] = array(
'id'=> $moduleModel->get('id'),
'name' => trim($moduleModel->get('name')),
'isEntity' => $moduleModel->get('isentitytype'),
'label' => vtranslate($moduleModel->get('label'),$module),
'singular' => $singular,
'parent' => $appname,
'view' => $view,
'img_url' => $this->getImageURL($moduleModel->get('name')),
'module_access' => $module_access,
'createAction' => $createAction,
'editAction' => $editAction,
'QuickCreateAction'=>$QuickCreateAction
);
}
}
$moduleModel = Vtiger_Module_Model::getInstance('MailManager');
$QuickCreateAction = false;
if(array_key_exists("MailManager",$menuModelsList) && ($userPrivModel->isAdminUser() ||
$userPrivModel->hasGlobalReadPermission() ||
$userPrivModel->hasModulePermission($menuModelsList['MailManager']->get('id'))) && in_array($menuModelsList['MailManager']->get('presence'), $presence) ){
$editAction = $userPrivModel->hasModuleActionPermission($menuModelsList['MailManager']->get('id'), 'EditView');
$createAction = $userPrivModel->hasModuleActionPermission($menuModelsList['MailManager']->get('id'), 'CreateView');
$modules['Other Modules'][] = array(
'id'=> $menuModelsList['MailManager']->get('id'),
'name' => $menuModelsList['MailManager']->get('name'),
'isEntity' => $menuModelsList['MailManager']->get('isentitytype'),
'label' => vtranslate($menuModelsList['MailManager']->get('label'),'MailManager'),
'singular' => $moduleModel->get('label'),
'parent' => 'Other Modules',
'view' => 'List',
'img_url' => $this->getImageURL('MailManager'),
'module_access' => true,
'createAction' => false,
'editAction' => false,
'QuickCreateAction'=>$QuickCreateAction
);
}
$moduleModel = Vtiger_Module_Model::getInstance('Documents');
$QuickCreateAction = $moduleModel->isQuickCreateSupported();
if(array_key_exists("Documents",$menuModelsList) && ($userPrivModel->isAdminUser() ||
$userPrivModel->hasGlobalReadPermission() ||
$userPrivModel->hasModulePermission($menuModelsList['Documents']->get('id'))) && in_array($menuModelsList['Documents']->get('presence'), $presence)){
$editAction = $userPrivModel->hasModuleActionPermission($menuModelsList['Documents']->get('id'), 'EditView');
$createAction = $userPrivModel->hasModuleActionPermission($menuModelsList['Documents']->get('id'), 'CreateView');
$modules['Other Modules'][] = array(
'id'=> $menuModelsList['Documents']->get('id'),
'name' => $menuModelsList['Documents']->get('name'),
'isEntity' => $menuModelsList['Documents']->get('isentitytype'),
'label' => vtranslate($menuModelsList['Documents']->get('label'),'Documents'),
'singular' => $moduleModel->get('label'),
'parent' => 'Other Modules',
'view' => 'List',
'img_url' => $this->getImageURL('Documents'),
'module_access' => true,
'createAction' => $createAction,
'editAction' => $editAction,
'QuickCreateAction'=>$QuickCreateAction
);
}
$moduleModel = Vtiger_Module_Model::getInstance('Calendar');
$QuickCreateAction = $moduleModel->isQuickCreateSupported();
if(array_key_exists("Calendar",$menuModelsList) && ($userPrivModel->isAdminUser() ||
$userPrivModel->hasGlobalReadPermission() ||
$userPrivModel->hasModulePermission($menuModelsList['Calendar']->get('id'))) && in_array($menuModelsList['Calendar']->get('presence'), $presence)){
$editAction = $userPrivModel->hasModuleActionPermission($menuModelsList['Calendar']->get('id'), 'EditView');
$createAction = $userPrivModel->hasModuleActionPermission($menuModelsList['Calendar']->get('id'), 'CreateView');
$modules['Other Modules'][] = array(
'id'=> $menuModelsList['Calendar']->get('id'),
'name' => $menuModelsList['Calendar']->get('name'),
'isEntity' => $menuModelsList['Calendar']->get('isentitytype'),
'label' => vtranslate($menuModelsList['Calendar']->get('label'),'Calendar'),
'singular' => 'Task',
'parent' => 'Other Modules',
'view' => 'Calendar',
'img_url' => $this->getImageURL('Calendar'),
'module_access' => true,
'createAction' => $createAction,
'editAction' => $editAction,
'QuickCreateAction'=>$QuickCreateAction
);
}
}
foreach($modules as $key => $value){
if(count($value) > 0){
}else{
unset($modules[$key]);
}
}
return $modules;
}
}