public function process(Vtiger_Request $request) { $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $qualifiedModuleName = $request->getModule(false); $record = $request->get('record'); $parentRoleId = $request->get('parent_roleid'); $roleDirectlyRelated = false; if (!empty($record)) { $recordModel = Settings_Roles_Record_Model::getInstanceById($record); $viewer->assign('MODE', 'edit'); } else { $recordModel = new Settings_Roles_Record_Model(); $recordModel->setParent(Settings_Roles_Record_Model::getInstanceById($parentRoleId)); $viewer->assign('MODE', ''); $roleDirectlyRelated = true; } $profileId = $recordModel->getDirectlyRelatedProfileId(); if ($profileId) { $viewer->assign('PROFILE_ID', $profileId); $roleDirectlyRelated = true; } $viewer->assign('PROFILE_DIRECTLY_RELATED_TO_ROLE', $roleDirectlyRelated); $viewer->assign('ALL_PROFILES', Settings_Profiles_Record_Model::getAll()); $viewer->assign('ROLE_USERS', $recordModel->getUsers()); $viewer->assign('RECORD_MODEL', $recordModel); $viewer->assign('RECORD_ID', $record); $viewer->assign('MODULE', $moduleName); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->view('EditView.tpl', $qualifiedModuleName); }
public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $qualifiedModuleName = $request->getModule(false); $recordId = $request->get('record'); $roleName = $request->get('rolename'); $allowassignedrecordsto = $request->get('allowassignedrecordsto'); $moduleModel = Settings_Vtiger_Module_Model::getInstance($qualifiedModuleName); if (!empty($recordId)) { $recordModel = Settings_Roles_Record_Model::getInstanceById($recordId); } else { $recordModel = new Settings_Roles_Record_Model(); } if ($request->get('profile_directly_related_to_role') == '1') { $profileId = $request->get('profile_directly_related_to_role_id'); $profileName = $request->get('profilename'); if (empty($profileName)) { $profileName = $roleName . '+' . vtranslate('LBL_PROFILE', $qualifiedModuleName); } if ($profileId) { $profileRecordModel = Settings_Profiles_Record_Model::getInstanceById($profileId); } else { $profileRecordModel = Settings_Profiles_Record_Model::getInstanceByName($profileName, true); if (empty($profileRecordModel)) { $profileRecordModel = new Settings_Profiles_Record_Model(); } } $profileRecordModel->set('directly_related_to_role', '1'); $profileRecordModel->set('profilename', $profileName)->set('profile_permissions', $request->get('permissions')); $profileRecordModel->set('viewall', $request->get('viewall')); $profileRecordModel->set('editall', $request->get('editall')); $savedProfileId = $profileRecordModel->save(); $roleProfiles = array($savedProfileId); } else { $roleProfiles = $request->get('profiles'); } $parentRoleId = $request->get('parent_roleid'); if ($recordModel && !empty($parentRoleId)) { $parentRole = Settings_Roles_Record_Model::getInstanceById($parentRoleId); $recordModel->set('change_owner', $request->get('change_owner'))->set('searchunpriv', $request->get('searchunpriv'))->set('clendarallorecords', $request->get('clendarallorecords')); if (!empty($allowassignedrecordsto)) { $recordModel->set('allowassignedrecordsto', $allowassignedrecordsto); } // set the value of assigned records to if ($parentRole && !empty($roleName) && !empty($roleProfiles)) { $recordModel->set('rolename', $roleName); $recordModel->set('profileIds', $roleProfiles); $parentRole->addChildRole($recordModel); } //After role updation recreating user privilege files if ($roleProfiles) { foreach ($roleProfiles as $profileId) { $profileRecordModel = Settings_Profiles_Record_Model::getInstanceById($profileId); $profileRecordModel->recalculate(array($recordId)); } } } $redirectUrl = $moduleModel->getDefaultUrl(); header("Location: {$redirectUrl}"); }
function process(Vtiger_Request $request) { $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $qualifiedModuleName = $request->getModule(false); $sourceRecord = $request->get('src_record'); $companyDetails = Vtiger_CompanyDetails_Model::getInstanceById(); $companyLogo = $companyDetails->getLogo(); $sourceRole = Settings_Roles_Record_Model::getInstanceById($sourceRecord); $rootRole = Settings_Roles_Record_Model::getBaseRole(); $allRoles = Settings_Roles_Record_Model::getAll(); $viewer->assign('SOURCE_ROLE', $sourceRole); $viewer->assign('ROOT_ROLE', $rootRole); $viewer->assign('ROLES', $allRoles); $viewer->assign('VIEW', $request->get('view')); $viewer->assign('TYPE', $request->get('type')); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('COMPANY_LOGO', $companyLogo); $viewer->view('Popup.tpl', $qualifiedModuleName); }
public function process(Vtiger_Request $request) { $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $qualifiedModuleName = $request->getModule(false); $recordId = $request->get('record'); $recordModel = Settings_Roles_Record_Model::getInstanceById($recordId); $viewer->assign('MODULE', $moduleName); $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName); $viewer->assign('RECORD_MODEL', $recordModel); echo $viewer->view('DeleteTransferForm.tpl', $qualifiedModuleName, true); }
public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $qualifiedModuleName = $request->getModule(false); $recordId = $request->get('record'); $transferRecordId = $request->get('transfer_record'); $moduleModel = Settings_Vtiger_Module_Model::getInstance($qualifiedModuleName); $recordModel = Settings_Roles_Record_Model::getInstanceById($recordId); $transferToRole = Settings_Roles_Record_Model::getInstanceById($transferRecordId); if ($recordModel && $transferToRole) { $recordModel->delete($transferToRole); } $redirectUrl = $moduleModel->getDefaultUrl(); header("Location: {$redirectUrl}"); }
public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $recordId = $request->get('record'); $parentRoleId = $request->get('parent_roleid'); $parentRole = Settings_Roles_Record_Model::getInstanceById($parentRoleId); $recordModel = Settings_Roles_Record_Model::getInstanceById($recordId); $response = new Vtiger_Response(); $response->setEmitType(Vtiger_Response::$EMIT_JSON); try { $recordModel->moveTo($parentRole); } catch (AppException $e) { $response->setError('Move Role Failed'); } $response->emit(); }
function getGroupsList(Vtiger_Request $request) { $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $currentUser = Users_Record_Model::getCurrentUserModel(); $roleInstance = Settings_Roles_Record_Model::getInstanceById($currentUser->get('roleid')); $clendarallorecords = $roleInstance->get('clendarallorecords'); switch ($clendarallorecords) { case 1: $groups = []; break; case 2: case 3: default: $groups = $currentUser->getAccessibleGroups(); break; } $viewer->assign('MODULE', $moduleName); $viewer->assign('ALL_ACTIVEGROUP_LIST', $groups); $viewer->view('RightPanel.tpl', $moduleName); }
public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $qualifiedModuleName = $request->getModule(false); $recordId = $request->get('record'); $roleName = $request->get('rolename'); $allowassignedrecordsto = $request->get('allowassignedrecordsto'); $moduleModel = Settings_Vtiger_Module_Model::getInstance($qualifiedModuleName); if (!empty($recordId)) { $recordModel = Settings_Roles_Record_Model::getInstanceById($recordId); } else { $recordModel = new Settings_Roles_Record_Model(); } $roleProfiles = $request->get('profiles'); $parentRoleId = $request->get('parent_roleid'); if ($recordModel && !empty($parentRoleId)) { $parentRole = Settings_Roles_Record_Model::getInstanceById($parentRoleId); $recordModel->set('change_owner', $request->get('change_owner'))->set('searchunpriv', $request->get('searchunpriv'))->set('listrelatedrecord', $request->get('listRelatedRecord'))->set('previewrelatedrecord', $request->get('previewRelatedRecord'))->set('editrelatedrecord', $request->get('editRelatedRecord'))->set('permissionsrelatedfield', $request->get('permissionsRelatedField'))->set('globalsearchadv', $request->get('globalSearchAdvanced'))->set('clendarallorecords', $request->get('clendarallorecords')); if (!empty($allowassignedrecordsto)) { $recordModel->set('allowassignedrecordsto', $allowassignedrecordsto); } // set the value of assigned records to if ($parentRole && !empty($roleName) && !empty($roleProfiles)) { $recordModel->set('rolename', $roleName); $recordModel->set('profileIds', $roleProfiles); $parentRole->addChildRole($recordModel); } //After role updation recreating user privilege files if ($roleProfiles) { foreach ($roleProfiles as $profileId) { $profileRecordModel = Settings_Profiles_Record_Model::getInstanceById($profileId); $profileRecordModel->recalculate(array($recordId)); } } } $redirectUrl = $moduleModel->getDefaultUrl(); header("Location: {$redirectUrl}"); }
/** * Function to get subordinates Users * @return <array> Users */ public function getRoleBasedSubordinateUsers() { $currentUserRoleModel = Settings_Roles_Record_Model::getInstanceById($this->getRole()); $childernRoles = $currentUserRoleModel->getAllChildren(); $users = $this->getAllUsersOnRoles($childernRoles); $currentUserDetail = array($this->getId() => $this->get('first_name') . ' ' . $this->get('last_name')); $users = $currentUserDetail + $users; return $users; }
/** Function to save the user information into the database * @param $module -- module name:: Type varchar * */ function saveentity($module) { global $current_user; //$adb added by raju for mass mailing $insertion_mode = $this->mode; if (empty($this->column_fields['time_zone'])) { $dbDefaultTimeZone = DateTimeField::getDBTimeZone(); $this->column_fields['time_zone'] = $dbDefaultTimeZone; $this->time_zone = $dbDefaultTimeZone; } if (empty($this->column_fields['currency_id'])) { $this->column_fields['currency_id'] = CurrencyField::getDBCurrencyId(); } if (empty($this->column_fields['date_format'])) { $this->column_fields['date_format'] = 'yyyy-mm-dd'; } if (empty($this->column_fields['start_hour'])) { $this->column_fields['start_hour'] = '08:00'; } if (empty($this->column_fields['dayoftheweek'])) { $this->column_fields['dayoftheweek'] = 'Monday'; } if (empty($this->column_fields['callduration'])) { $this->column_fields['callduration'] = 5; } if (empty($this->column_fields['othereventduration'])) { $this->column_fields['othereventduration'] = 5; } if (empty($this->column_fields['hour_format'])) { $this->column_fields['hour_format'] = 24; } if (empty($this->column_fields['activity_view'])) { $this->column_fields['activity_view'] = 'This Month'; } if (empty($this->column_fields['calendarsharedtype'])) { $this->column_fields['calendarsharedtype'] = 'public'; } if (empty($this->column_fields['default_record_view'])) { $this->column_fields['default_record_view'] = 'Summary'; } if (empty($this->column_fields['status'])) { $this->column_fields['status'] = 'Active'; } if (empty($this->column_fields['currency_decimal_separator']) && $this->column_fields['currency_decimal_separator'] != ' ') { $this->column_fields['currency_decimal_separator'] = '.'; } if (empty($this->column_fields['currency_grouping_separator']) && $this->column_fields['currency_grouping_separator'] != ' ') { $this->column_fields['currency_grouping_separator'] = ' '; } $this->db->println("TRANS saveentity starts {$module}"); $this->db->startTransaction(); foreach ($this->tab_name as $table_name) { if ($table_name == 'vtiger_attachments') { $this->insertIntoAttachment($this->id, $module); } else { $this->insertIntoEntityTable($table_name, $module); } } if (Settings_Roles_Record_Model::getInstanceById($this->column_fields['roleid']) == null) { $roleid = Settings_Roles_Record_Model::getInstanceByName($this->column_fields['roleid']); if ($roleid) { $this->column_fields['roleid'] = $roleid->getId(); } else { $roles = Settings_Roles_Record_Model::getAll(); $this->column_fields['roleid'] = key($roles); } } require_once 'modules/Users/CreateUserPrivilegeFile.php'; createUserPrivilegesfile($this->id); unset($_SESSION['next_reminder_interval']); unset($_SESSION['next_reminder_time']); if ($insertion_mode != 'edit') { $this->createAccessKey(); } $this->db->completeTransaction(); $this->db->println("TRANS saveentity ends"); }
/** * Static Function to get the list of records matching the search key * @param <String> $searchKey * @return <Array> - List of Vtiger_Record_Model or Module Specific Record Model instances */ public static function getSearchResult($searchKey, $module = false, $limit = false) { global $max_number_search_result; $db = PearDatabase::getInstance(); $query = 'SELECT label, searchlabel, crmid, setype, createdtime, smownerid FROM vtiger_crmentity crm INNER JOIN vtiger_entityname e ON crm.setype = e.modulename WHERE searchlabel LIKE ? AND turn_off = ? AND crm.deleted = 0'; $params = array("%{$searchKey}%", 1); if ($module !== false) { $query .= ' AND setype = ?'; $params[] = $module; } $query .= ' ORDER BY sequence ASC, createdtime DESC'; $result = $db->pquery($query, $params); $noOfRows = $db->num_rows($result); $moduleModels = $matchingRecords = $leadIdsList = array(); for ($i = 0; $i < $noOfRows; ++$i) { $row = $db->query_result_rowdata($result, $i); if ($row['setype'] === 'Leads') { $leadIdsList[] = $row['crmid']; } } $convertedInfo = Leads_Module_Model::getConvertedInfo($leadIdsList); $user = Users_Record_Model::getCurrentUserModel(); $roleInstance = Settings_Roles_Record_Model::getInstanceById($user->get('roleid')); $searchunpriv = $roleInstance->get('searchunpriv'); for ($i = 0, $recordsCount = 0; $i < $noOfRows && $recordsCount < $max_number_search_result; ++$i) { $row = $db->query_result_rowdata($result, $i); if ($row['setype'] === 'Leads' && $convertedInfo[$row['crmid']]) { continue; } $recordPermitted = $permitted = Users_Privileges_Model::isPermitted($row['setype'], 'DetailView', $row['crmid']); if (!empty($searchunpriv)) { if (in_array($row['setype'], explode(',', $searchunpriv))) { $recordPermitted = true; } } if ($recordPermitted) { $row['id'] = $row['crmid']; $row['permitted'] = $permitted; $moduleName = $row['setype']; if (!array_key_exists($moduleName, $moduleModels)) { $moduleModels[$moduleName] = Vtiger_Module_Model::getInstance($moduleName); } $moduleModel = $moduleModels[$moduleName]; $modelClassName = Vtiger_Loader::getComponentClassName('Model', 'Record', $moduleName); $recordInstance = new $modelClassName(); $matchingRecords[$moduleName][$row['id']] = $recordInstance->setData($row)->setModuleFromInstance($moduleModel); $recordsCount++; } if ($limit && $limit == $recordsCount) { return $matchingRecords; } } return $matchingRecords; }
/** * Static Function to get the list of records matching the search key * @param <String> $searchKey * @return <Array> - List of Vtiger_Record_Model or Module Specific Record Model instances */ public static function getSearchResult($searchKey, $module = false, $limit = false) { $db = PearDatabase::getInstance(); $params = ["%{$searchKey}%"]; $sortColumns = $join = $where = ''; if ($module !== false) { $where .= ' AND vtiger_crmentity.setype = ?'; $params[] = $module; } else { $join = 'INNER JOIN vtiger_entityname ON vtiger_crmentity.setype = vtiger_entityname.modulename'; $where .= ' AND vtiger_entityname.turn_off = ?'; $sortColumns .= 'vtiger_entityname.sequence ASC,'; $params[] = 1; } if (PerformancePrefs::getBoolean('SORT_SEARCH_RESULTS')) { $sortColumns .= 'vtiger_crmentity.label ASC,'; } $query = 'SELECT label, searchlabel, crmid, setype, createdtime, smownerid FROM vtiger_crmentity ' . $join . ' WHERE vtiger_crmentity.searchlabel LIKE ? AND vtiger_crmentity.deleted = 0' . $where; if (!empty($sortColumns)) { $query .= ' ORDER BY ' . $sortColumns; $query = rtrim($query, ','); } $result = $db->pquery($query, $params); $noOfRows = $db->num_rows($result); $moduleModels = $matchingRecords = $leadIdsList = array(); for ($i = 0; $i < $noOfRows; ++$i) { $row = $db->query_result_rowdata($result, $i); if ($row['setype'] === 'Leads') { $leadIdsList[] = $row['crmid']; } } $convertedInfo = Leads_Module_Model::getConvertedInfo($leadIdsList); $user = Users_Record_Model::getCurrentUserModel(); $roleInstance = Settings_Roles_Record_Model::getInstanceById($user->get('roleid')); $searchunpriv = $roleInstance->get('searchunpriv'); for ($i = 0, $recordsCount = 0; $i < $noOfRows && $recordsCount < vglobal('max_number_search_result'); ++$i) { $row = $db->query_result_rowdata($result, $i); if ($row['setype'] === 'Leads' && $convertedInfo[$row['crmid']]) { continue; } $recordPermitted = $permitted = Users_Privileges_Model::isPermitted($row['setype'], 'DetailView', $row['crmid']); if (!empty($searchunpriv)) { if (in_array($row['setype'], explode(',', $searchunpriv))) { $recordPermitted = true; } } if ($recordPermitted) { $row['id'] = $row['crmid']; $row['permitted'] = $permitted; $moduleName = $row['setype']; if (!array_key_exists($moduleName, $moduleModels)) { $moduleModels[$moduleName] = Vtiger_Module_Model::getInstance($moduleName); } $moduleModel = $moduleModels[$moduleName]; $modelClassName = Vtiger_Loader::getComponentClassName('Model', 'Record', $moduleName); $recordInstance = new $modelClassName(); $matchingRecords[$moduleName][$row['id']] = $recordInstance->setData($row)->setModuleFromInstance($moduleModel); $recordsCount++; } if ($limit && $limit == $recordsCount) { return $matchingRecords; } } return $matchingRecords; }