/** * Static Function to get all the accessible menu models with/without ordering them by sequence * @param <Boolean> $sequenced - true/false * @return <Array> - List of Vtiger_Menu_Model instances */ public static function getAll($sequenced = false) { global $log; $log->debug("Entering ./models/Menu.php::staticgetAll"); $currentUser = Users_Record_Model::getCurrentUserModel(); $userPrivModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); $restrictedModulesList = array('Emails', 'ProjectMilestone', 'ProjectTask', 'ModComments', 'ExtensionStore', 'ExtensionStorePro', 'Integration', 'Dashboard', 'Home', 'vtmessages', 'vttwitter'); $allModules = parent::getAll(array('0', '2')); $menuModels = array(); $moduleSeqs = array(); $moduleNonSeqs = array(); foreach ($allModules as $module) { if ($module->get('tabsequence') != -1) { $moduleSeqs[$module->get('tabsequence')] = $module; } else { $moduleNonSeqs[] = $module; } } ksort($moduleSeqs); $modules = array_merge($moduleSeqs, $moduleNonSeqs); foreach ($modules as $module) { if (($userPrivModel->isAdminUser() || $userPrivModel->hasGlobalReadPermission() || $userPrivModel->hasModulePermission($module->getId())) & !in_array($module->getName(), $restrictedModulesList) && $module->get('parent') != '') { $menuModels[$module->getName()] = $module; } } return $menuModels; }
/** * Getting value to display * @return array */ public function modulesValues() { $modules = Vtiger_Module_Model::getAll([0], [], true); foreach ($modules as $module) { $modulesNames[] = ['module' => $module->getName(), 'name' => $module->getName(), 'id' => $module->getName()]; } return $modulesNames; }
public static function getSupportedModules() { $moduleModels = Vtiger_Module_Model::getAll(array(0,2)); $supportedModuleModels = array(); foreach($moduleModels as $tabId => $moduleModel) { if($moduleModel->isEntityModule() && $moduleModel->getName() != 'Webmails') { $supportedModuleModels[$tabId] = $moduleModel; } } return $supportedModuleModels; }
public static function getSupportedModules() { $moduleModels = Vtiger_Module_Model::getAll(array(0, 2)); $supportedModuleModels = array(); foreach ($moduleModels as $tabId => $moduleModel) { if ($moduleModel->isWorkflowSupported()) { $supportedModuleModels[$tabId] = $moduleModel; } } return $supportedModuleModels; }
public static function getSupportedModules() { $moduleModels = Vtiger_Module_Model::getAll([0, 2]); $supportedModuleModels = []; foreach ($moduleModels as $tabId => $moduleModel) { if ($moduleModel->isEntityModule()) { $supportedModuleModels[$tabId] = $moduleModel; } } return $supportedModuleModels; }
public static function getSupportedModules() { $restrictedModules = ['OSSMailView']; $moduleModels = Vtiger_Module_Model::getAll([0, 2]); $supportedModuleModels = []; foreach ($moduleModels as $tabId => $moduleModel) { if ($moduleModel->isEntityModule() && !in_array($moduleModel->getName(), $restrictedModules)) { $supportedModuleModels[$tabId] = $moduleModel; } } return $supportedModuleModels; }
public function getListTpl($moduleName, $parentId = 0, $forTpl = false) { $db = PearDatabase::getInstance(); $sql = "SELECT * FROM vtiger_oss_project_templates WHERE module = ? AND parent = ?"; $result = $db->pquery($sql, array($moduleName, $parentId), true); $output = array(); for ($i = 0; $i < $db->num_rows($result); $i++) { $record = $db->raw_query_result_rowdata($result, $i); $idTpl = $record['id_tpl']; $fldName = $record['fld_name']; $output[$idTpl][$fldName] = $record['fld_val']; } $userProfileList = $this->getCurrentUserProfile(); if (count($output) && $forTpl) { foreach ($output as $key => $value) { $profile = json_decode($output[$key]['oss_project_visibility']); if (!is_array($profile)) { if (!in_array($profile, $userProfileList)) { unset($output[$key]); } } else { $state = array(); for ($i = 0; $i < count($profile); $i++) { if (in_array($profile[$i], $userProfileList)) { $state[] = true; } else { $state[] = false; } } if (!in_array(true, $state)) { unset($output[$key]); } } } } $menuModelsList = Vtiger_Module_Model::getAll([1]); if (array_key_exists(getTabid('Project'), $menuModelsList)) { unset($output); } return $output; }
public function save() { $db = PearDatabase::getInstance(); $modulePermissions = $this->getModulePermissions(); $profileName = $this->get('profilename'); $description = $this->get('description'); $profilePermissions = $this->get('profile_permissions'); $calendarModule = Vtiger_Module_Model::getInstance('Calendar'); $eventModule = Vtiger_Module_Model::getInstance('Events'); $eventFieldsPermissions = $profilePermissions[$eventModule->getId()]['fields']; $profilePermissions[$eventModule->getId()] = $profilePermissions[$calendarModule->getId()]; $profilePermissions[$eventModule->getId()]['fields'] = $eventFieldsPermissions; $isProfileDirectlyRelatedToRole = 0; $isNewProfile = false; if ($this->has('directly_related_to_role')) { $isProfileDirectlyRelatedToRole = $this->get('directly_related_to_role'); } $profileId = $this->getId(); if (!$profileId) { $profileId = $db->getUniqueId('vtiger_profile'); $this->setId($profileId); $sql = 'INSERT INTO vtiger_profile(profileid, profilename, description, directly_related_to_role) VALUES (?,?,?,?)'; $params = array($profileId, $profileName, $description, $isProfileDirectlyRelatedToRole); $isNewProfile = true; } else { $sql = 'UPDATE vtiger_profile SET profilename=?, description=?, directly_related_to_role=? WHERE profileid=?'; $params = array($profileName, $description, $isProfileDirectlyRelatedToRole, $profileId); $db->pquery('DELETE FROM vtiger_profile2globalpermissions WHERE profileid=?', array($profileId)); } $db->pquery($sql, $params); $sql = 'INSERT INTO vtiger_profile2globalpermissions(profileid, globalactionid, globalactionpermission) VALUES (?,?,?)'; $params = array($profileId, Settings_Profiles_Module_Model::GLOBAL_ACTION_VIEW, $this->tranformInputPermissionValue($this->get('viewall'))); $db->pquery($sql, $params); $sql = 'INSERT INTO vtiger_profile2globalpermissions(profileid, globalactionid, globalactionpermission) VALUES (?,?,?)'; $params = array($profileId, Settings_Profiles_Module_Model::GLOBAL_ACTION_EDIT, $this->tranformInputPermissionValue($this->get('editall'))); $db->pquery($sql, $params); $allModuleModules = Vtiger_Module_Model::getAll(array(0), Settings_Profiles_Module_Model::getNonVisibleModulesList()); $allModuleModules[$eventModule->getId()] = $eventModule; if (count($allModuleModules) > 0) { $actionModels = Vtiger_Action_Model::getAll(true); foreach ($allModuleModules as $tabId => $moduleModel) { if ($moduleModel->isActive()) { $this->saveModulePermissions($moduleModel, $profilePermissions[$moduleModel->getId()]); } else { $permissions = array(); $permissions['is_permitted'] = Settings_Profiles_Module_Model::IS_PERMITTED_VALUE; if ($moduleModel->isEntityModule()) { $permissions['actions'] = array(); foreach ($actionModels as $actionModel) { if ($actionModel->isModuleEnabled($moduleModel)) { $permissions['actions'][$actionModel->getId()] = Settings_Profiles_Module_Model::IS_PERMITTED_VALUE; } } $permissions['fields'] = array(); $moduleFields = $moduleModel->getFields(); foreach ($moduleFields as $fieldModel) { if ($fieldModel->isEditEnabled()) { $permissions['fields'][$fieldModel->getId()] = Settings_Profiles_Record_Model::PROFILE_FIELD_READWRITE; } elseif ($fieldModel->isViewEnabled()) { $permissions['fields'][$fieldModel->getId()] = Settings_Profiles_Record_Model::PROFILE_FIELD_READONLY; } else { $permissions['fields'][$fieldModel->getId()] = Settings_Profiles_Record_Model::PROFILE_FIELD_INACTIVE; } } } $this->saveModulePermissions($moduleModel, $permissions); } } } if ($isNewProfile) { $this->saveUserAccessbleFieldsIntoProfile2Field(); } $this->recalculate(); return $profileId; }
public function getCustomViewList() { $db = PearDatabase::getInstance(); $list = $db->query('SELECT cvid,viewname,entitytype,vtiger_tab.tabid FROM vtiger_customview LEFT JOIN vtiger_tab ON vtiger_tab.name = vtiger_customview.entitytype'); $filters = $db->getArray($list); foreach (Vtiger_Module_Model::getAll() as $module) { $filterDir = 'modules' . DIRECTORY_SEPARATOR . $module->get('name') . DIRECTORY_SEPARATOR . 'filters'; if (file_exists($filterDir)) { $fileFilters = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($filterDir, FilesystemIterator::SKIP_DOTS)); foreach ($fileFilters as $filter) { $name = str_replace('.php', '', $filter->getFilename()); $handlerClass = Vtiger_Loader::getComponentClassName('Filter', $name, $module->get('name')); if (class_exists($handlerClass)) { $filters[] = [ 'viewname' => $handler->getViewName(), 'cvid' => $name, 'entitytype' => $module->get('name'), 'tabid' => $module->getId(), ]; } } } } return $filters; }
public static function getSupportedModules() { $supportedModuleModels = Vtiger_Module_Model::getAll(array(0, 2)); return $supportedModuleModels; }
/** * Static Function to get the instance of Vtiger Module Model for all the modules * @return <Array> - List of Vtiger Module Model or sub class instances */ public static function getAll() { return parent::getAll(array(0, 1), self::getNonVisibleModulesList()); }
/** * Static Function to get the instance of Vtiger Module Model for all the modules * @return <Array> - List of Vtiger Module Model or sub class instances */ public static function getAll($presence = [], $restrictedModulesList = [], $isEntityType = false) { return parent::getAll(array(0, 1), self::getNonVisibleModulesList()); }