/** * Returns crm user extension assigned to caller number or null if not assigned user for caller number * * @param string $callerNumber * @return string */ private function getCrmUserExtension($callerNumber) { $crmUserExtension = null; $callerUserInfo = PBXManager_Record_Model::lookUpRelatedWithNumber($callerNumber); if ($callerUserInfo) { $callerRecordModel = Vtiger_Record_Model::getInstanceById($callerUserInfo['id']); $assignedUser = Users_Record_Model::getInstanceById($callerRecordModel->get('assigned_user_id'), "Users"); $crmUserExtension = $assignedUser->get('phone_crm_extension'); } return $crmUserExtension; }
function getUsers($currentUserModel, $moduleName) { $users = $currentUserModel->getAccessibleUsersForModule($moduleName); $userIds = array_keys($users); $usersList = array(); $usersWSId = Mobile_WS_Utils::getEntityModuleWSId('Users'); foreach ($userIds as $userId) { $userRecord = Users_Record_Model::getInstanceById($userId, 'Users'); $usersList[] = array('value' => $usersWSId . 'x' . $userId, 'label' => $userRecord->get("first_name") . ' ' . $userRecord->get('last_name')); } return $usersList; }
public function createUserDirectory($params) { $adb = PearDatabase::getInstance(); $user = Users_Record_Model::getInstanceById($params['user'], 'Users'); $user_name = $user->get('user_name'); $path = '/' . $user_name . '/'; $dirHash = sha1($path); $parent_dirid = 0; $davStorageDir = vglobal('davStorageDir'); @mkdir($davStorageDir . $path); //$adb->pquery('INSERT INTO vtiger_files_dir (name,path,parent_dirid,hash,mtime,userid) VALUES (?,?,?,?, NOW(),?);', // array($user_name, $path, $parent_dirid, $dirHash, $params['user'])); }
public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $userid = $request->get('record'); $userRecordModel = Users_Record_Model::getInstanceById($userid, $moduleName); $viewer = $this->getViewer($request); $usersList = $userRecordModel->getAll(true); if (array_key_exists($userid, $usersList)) { unset($usersList[$userid]); } $viewer->assign('USERID', $userid); $viewer->assign('DELETE_USER_NAME', $userRecordModel->getName()); $viewer->assign('USER_LIST', $usersList); $viewer->view('DeleteUser.tpl', $moduleName); }
public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $recordId = $request->get('record'); $imageId = $request->get('imageid'); $response = new Vtiger_Response(); if ($recordId) { $recordModel = Users_Record_Model::getInstanceById($recordId, $moduleName); $status = $recordModel->deleteImage($imageId); if ($status) { $response->setResult(array(vtranslate('LBL_IMAGE_DELETED_SUCCESSFULLY', $moduleName))); } } else { $response->setError(vtranslate('LBL_IMAGE_NOT_DELETED', $moduleName)); } $response->emit(); }
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_Groups_Record_Model::getInstance($recordId); $transferToOwner = Settings_Groups_Record_Model::getInstance($transferRecordId); if (!$transferToOwner) { $transferToOwner = Users_Record_Model::getInstanceById($transferRecordId, 'Users'); } if ($recordModel && $transferToOwner) { $recordModel->delete($transferToOwner); } $response = new Vtiger_Response(); $result = array('success' => true); $response->setResult($result); $response->emit(); }
public function Save(Vtiger_Request $request) { $workflowId = $request->get('for_workflow'); if (!empty($workflowId)) { $record = $request->get('task_id'); if ($record) { $taskRecordModel = Settings_Workflows_TaskRecord_Model::getInstance($record); } else { $workflowModel = Settings_Workflows_Record_Model::getInstance($workflowId); $taskRecordModel = Settings_Workflows_TaskRecord_Model::getCleanInstance($workflowModel, $request->get('taskType')); } $taskObject = $taskRecordModel->getTaskObject(); $taskObject->summary = $request->get("summary"); $active = $request->get("active"); if ($active == "true") { $taskObject->active = true; } else { if ($active == "false") { $taskObject->active = false; } } $checkSelectDate = $request->get('check_select_date'); if (!empty($checkSelectDate)) { $trigger = array('days' => ($request->get('select_date_direction') == 'after' ? 1 : -1) * (int) $request->get('select_date_days'), 'field' => $request->get('select_date_field')); $taskObject->trigger = $trigger; } else { $taskObject->trigger = null; } $fieldNames = $taskObject->getFieldNames(); foreach ($fieldNames as $fieldName) { if ($fieldName == 'field_value_mapping') { $taskObject->{$fieldName} = $request->getRaw($fieldName); } else { $taskObject->{$fieldName} = $request->get($fieldName); } if ($fieldName == 'calendar_repeat_limit_date') { $taskObject->{$fieldName} = DateTimeField::convertToDBFormat($request->get($fieldName)); } } $taskType = get_class($taskObject); if ($taskType === 'VTCreateEntityTask') { $relationModuleModel = Vtiger_Module_Model::getInstance($taskObject->entity_type); $ownerFieldModels = $relationModuleModel->getFieldsByType('owner'); $fieldMapping = Zend_Json::decode($taskObject->field_value_mapping); foreach ($fieldMapping as $key => $mappingInfo) { if (array_key_exists($mappingInfo['fieldname'], $ownerFieldModels)) { $userRecordModel = Users_Record_Model::getInstanceById($mappingInfo['value'], 'Users'); $ownerName = $userRecordModel->get('user_name'); if (!$ownerName) { $groupRecordModel = Settings_Groups_Record_Model::getInstance($mappingInfo['value']); $ownerName = $groupRecordModel->getName(); } $fieldMapping[$key]['value'] = $ownerName; } } $taskObject->field_value_mapping = Zend_Json::encode($fieldMapping); } $taskRecordModel->save(); $response = new Vtiger_Response(); $response->setResult(array('for_workflow' => $workflowId)); $response->emit(); } }
function icalendar_event_organizer($activity) { $adb = PearDatabase::getInstance(); $recordModel = Users_Record_Model::getInstanceById($activity['assigned_user_id'], 'Users'); $email = $recordModel->get('email1'); $organizer = 'mailto:' . $email; $this->add_property('ORGANIZER', $organizer); return true; }
function vtws_transferOwnership($ownerId, $newOwnerId, $delete = true) { $db = PearDatabase::getInstance(); //Updating the smcreatorid,smownerid, modifiedby in vtiger_crmentity $sql = "UPDATE vtiger_crmentity SET smcreatorid=? WHERE smcreatorid=? AND setype<>?"; $db->pquery($sql, array($newOwnerId, $ownerId, 'ModComments')); $sql = "UPDATE vtiger_crmentity SET smownerid=? WHERE smownerid=? AND setype<>?"; $db->pquery($sql, array($newOwnerId, $ownerId, 'ModComments')); $sql = "update vtiger_crmentity set modifiedby=? where modifiedby=?"; $db->pquery($sql, array($newOwnerId, $ownerId)); //deleting from vtiger_tracker if ($delete) { $sql = "delete from vtiger_tracker where user_id=?"; $db->pquery($sql, array($ownerId)); } //updating the vtiger_import_maps $sql = "update vtiger_import_maps set assigned_user_id=? where assigned_user_id=?"; $db->pquery($sql, array($newOwnerId, $ownerId)); if (Vtiger_Utils::CheckTable('vtiger_customerportal_prefs')) { $query = 'UPDATE vtiger_customerportal_prefs SET prefvalue = ? WHERE prefkey = ? AND prefvalue = ?'; $params = array($newOwnerId, 'defaultassignee', $ownerId); $db->pquery($query, $params); $query = 'UPDATE vtiger_customerportal_prefs SET prefvalue = ? WHERE prefkey = ? AND prefvalue = ?'; $params = array($newOwnerId, 'userid', $ownerId); $db->pquery($query, $params); } //delete from vtiger_homestuff if ($delete) { $sql = "delete from vtiger_homestuff where userid=?"; $db->pquery($sql, array($ownerId)); } //delete from vtiger_users to vtiger_role vtiger_table if ($delete) { $sql = "delete from vtiger_users2group where userid=?"; $db->pquery($sql, array($ownerId)); } $sql = "select tabid,fieldname,tablename,columnname from vtiger_field left join " . "vtiger_fieldmodulerel on vtiger_field.fieldid=vtiger_fieldmodulerel.fieldid where uitype " . "in (52,53,77,101) or (uitype=10 and relmodule='Users')"; $result = $db->pquery($sql, array()); $it = new SqlResultIterator($db, $result); $columnList = array(); foreach ($it as $row) { $column = $row->tablename . '.' . $row->columnname; if (!in_array($column, $columnList)) { $columnList[] = $column; if ($row->columnname == 'smcreatorid' || $row->columnname == 'smownerid') { $sql = "update {$row->tablename} set {$row->columnname}=? where {$row->columnname}=? and setype<>?"; $db->pquery($sql, array($newOwnerId, $ownerId, 'ModComments')); } else { $sql = "update {$row->tablename} set {$row->columnname}=? where {$row->columnname}=?"; $db->pquery($sql, array($newOwnerId, $ownerId)); } } } //update workflow tasks Assigned User from Deleted User to Transfer User $newOwnerModel = Users_Record_Model::getInstanceById($newOwnerId, 'Users'); $ownerModel = Users_Record_Model::getInstanceById($ownerId, 'Users'); vtws_transferOwnershipForWorkflowTasks($ownerModel, $newOwnerModel); vtws_updateWebformsRoundrobinUsersLists($ownerId, $newOwnerId); }
/** * Function to get Owner name for ownerId * @param <Integer> $ownerId * @return <String> $ownerName */ public static function getOwnerName($ownerId) { $cache = Vtiger_Cache::getInstance(); if ($cache->hasOwnerDbName($ownerId)) { return $cache->getOwnerDbName($ownerId); } $ownerModel = Users_Record_Model::getInstanceById($ownerId, 'Users'); $userName = $ownerModel->get('user_name'); $ownerName = ''; if ($userName) { $ownerName = $userName; } else { $ownerModel = Settings_Groups_Record_Model::getInstance($ownerId); if(!empty($ownerModel)) { $ownerName = $ownerModel->getName(); } } if(!empty($ownerName)) { $cache->setOwnerDbName($ownerId, $ownerName); } return $ownerName; }
public function restoreUser(Vtiger_Request $request) { $moduleName = $request->getModule(); $record = $request->get('userid'); $recordModel = Users_Record_Model::getInstanceById($record, $moduleName); $recordModel->set('status', 'Active'); $recordModel->set('id', $record); $recordModel->set('mode', 'edit'); $recordModel->set('user_hash', $recordModel->getUserHash()); $recordModel->save(); $db = PearDatabase::getInstance(); $db->pquery("UPDATE vtiger_users SET deleted=? WHERE id=?", array(0, $record)); $userModuleModel = Users_Module_Model::getInstance($moduleName); $listViewUrl = $userModuleModel->getListViewUrl(); $response = new Vtiger_Response(); $response->setResult(array('message' => vtranslate('LBL_USER_RESTORED_SUCCESSFULLY', $moduleName), 'listViewUrl' => $listViewUrl)); $response->emit(); }
function getModifiedBy() { $changeUserId = $this->get('whodid'); return Users_Record_Model::getInstanceById($changeUserId, 'Users'); }
protected function transferOwnership($transferToGroup) { $db = PearDatabase::getInstance(); $groupId = $this->getId(); $transferGroupId = $transferToGroup->getId(); $query = 'UPDATE vtiger_crmentity SET smownerid=? WHERE smownerid=?'; $params = array($transferGroupId, $groupId); $db->pquery($query, $params); if (Vtiger_Utils::CheckTable('vtiger_customerportal_prefs')) { $query = 'UPDATE vtiger_customerportal_prefs SET prefvalue = ? WHERE prefkey = ? AND prefvalue = ?'; $params = array($transferGroupId, 'defaultassignee', $groupId); $db->pquery($query, $params); $query = 'UPDATE vtiger_customerportal_prefs SET prefvalue = ? WHERE prefkey = ? AND prefvalue = ?'; $params = array($transferGroupId, 'userid', $groupId); $db->pquery($query, $params); } //update workflow tasks Assigned User from Deleted Group to Transfer Owner $newOwnerModel = $this->getInstance($transferGroupId); if (!$newOwnerModel) { $newOwnerModel = Users_Record_Model::getInstanceById($transferGroupId, 'Users'); } $ownerModel = $this->getInstance($groupId); vtws_transferOwnershipForWorkflowTasks($ownerModel, $newOwnerModel); vtws_updateWebformsRoundrobinUsersLists($groupId, $transferGroupId); }
function emailEdit($request) { $viewer = $this->getViewer($request); $this->emailActionsData($request); $recordId = $request->get('record'); $moduleName = $request->getModule(); $viewer = $this->getViewer($request); if (!$this->record) { $this->record = Vtiger_DetailView_Model::getInstance($moduleName, $recordId); } $recordModel = $this->record->getRecord(); $TO = Zend_Json::decode(html_entity_decode($recordModel->get('saved_toid'))); $CC = Zend_Json::decode(html_entity_decode($recordModel->get('ccmail'))); $BCC = Zend_Json::decode(html_entity_decode($recordModel->get('bccmail'))); $parentIds = explode('|', $recordModel->get('parent_id')); $toMailInfo = $toMailNamesList = array(); foreach ($parentIds as $index => $parentFieldId) { if (empty($parentFieldId)) { continue; } $parentIdComponents = explode('@', $parentFieldId); $parentId = $parentIdComponents[0]; if ($parentIdComponents[1] === '-1') { $parentRecordModel = Users_Record_Model::getInstanceById($parentId, 'Users'); } else { $parentRecordModel = Vtiger_Record_Model::getInstanceById($parentId); } $emailFields = array_keys($parentRecordModel->getModule()->getFieldsByType('email')); foreach ($emailFields as $emailField) { $emailValue = $parentRecordModel->get($emailField); if (in_array($emailValue, $TO)) { //expecting parent ids and to will be same order $toMailInfo[$parentId][] = $emailValue; //SalesPlatform.ru begin $toMailNamesList[$parentId][] = array('label' => html_entity_decode($parentRecordModel->getName(), ENT_COMPAT | ENT_HTML401, 'UTF-8'), 'value' => $emailValue); //$toMailNamesList[$parentId][] = array('label' => $parentRecordModel->getName(), 'value' => $emailValue); //SalesPlatform.ru end } } } $viewer->assign('TO', $TO); $viewer->assign('TOMAIL_INFO', $toMailInfo); $viewer->assign('TOMAIL_NAMES_LIST', $toMailNamesList); $viewer->assign('CC', implode(',', $CC)); $viewer->assign('BCC', implode(',', $BCC)); $viewer->assign('RECORDID', $request->get('record')); $viewer->assign('RELATED_LOAD', true); $viewer->assign('EMAIL_MODE', 'edit'); echo $viewer->view('ComposeEmailForm.tpl', $moduleName, true); }
function checkImportStatus(Vtiger_Request $request) { $moduleName = $request->getModule(); $user = Users_Record_Model::getCurrentUserModel(); $mode = $request->getMode(); // Check if import on the module is locked $lockInfo = Import_Lock_Action::isLockedForModule($moduleName); if ($lockInfo != null) { $lockedBy = $lockInfo['userid']; if ($user->id != $lockedBy && !$user->isAdminUser()) { Import_Utils_Helper::showImportLockedError($lockInfo); exit; } else { if ($mode == 'continueImport' && $user->id == $lockedBy) { $importController = new Import_Main_View($request, $user); $importController->triggerImport(true); } else { $importInfo = Import_Queue_Action::getImportInfoById($lockInfo['importid']); $lockOwner = $user; if ($user->id != $lockedBy) { $lockOwner = Users_Record_Model::getInstanceById($lockInfo['userid'], 'Users'); } Import_Main_View::showImportStatus($importInfo, $lockOwner); } exit; } } if (Import_Utils_Helper::isUserImportBlocked($user)) { $importInfo = Import_Queue_Action::getUserCurrentImportInfo($user); if ($importInfo != null) { Import_Main_View::showImportStatus($importInfo, $user); exit; } else { Import_Utils_Helper::showImportTableBlockedError($moduleName, $user); exit; } } Import_Utils_Helper::clearUserImportInfo($user); }
/** * Function to get Users who are from this role * @return <Array> User record models list <Users_Record_Model> */ public function getUsers() { $db = PearDatabase::getInstance(); $result = $db->pquery('SELECT userid FROM vtiger_user2role WHERE roleid = ?', array($this->getId())); $numOfRows = $db->num_rows($result); $usersList = array(); for ($i = 0; $i < $numOfRows; $i++) { $userId = $db->query_result($result, $i, 'userid'); $usersList[$userId] = Users_Record_Model::getInstanceById($userId, 'Users'); } return $usersList; }
/** * Replaces related module variables with values * @param string $content - text * @param integer $recordId - if od main module record * @return string text with replaced values */ public function replaceRelatedModuleFields(&$content, $recordId) { if (empty($content)) { return $content; } $recordModel = $this->getRecordModelById($recordId); $fieldsModel = $this->getFieldsById($recordId); $fieldsTypes = ['reference', 'owner', 'multireference']; foreach ($fieldsModel as $fieldName => &$fieldModel) { $fieldType = $fieldModel->getFieldDataType(); if (in_array($fieldType, $fieldsTypes)) { $value = $recordModel->get($fieldName); $referenceModules = $fieldModel->getReferenceList(); if ($fieldType == 'owner') { $referenceModules = ['Users']; } foreach ($referenceModules as $module) { if ($module == 'Users') { $referenceRecordModel = Users_Record_Model::getInstanceById($value, $module); } else { if (empty($value)) { $referenceRecordModel = Vtiger_Record_Model::getCleanInstance($module); } else { $referenceRecordModel = $this->getRecordModelById($value); } } $moduleModel = $referenceRecordModel->getModule(); $fields = $moduleModel->getFields(); foreach ($fields as $referenceFieldName => &$referenceFieldModel) { $replaceBy = $referenceRecordModel->getDisplayValue($referenceFieldName, $value, true); $content = str_replace('$' . $fieldName . '+' . $module . '+' . $referenceFieldName . '$', $replaceBy, $content); $newLabel = Vtiger_Language_Handler::getLanguageTranslatedString($this->get('language'), $referenceFieldModel->get('label'), $module); $content = str_replace('%' . $fieldName . '+' . $module . '+' . $referenceFieldName . '%', $newLabel, $content); } } } } return $content; }
/** * Function to get instance of user model by name * @param <String> $userName * @return <Users_Record_Model> */ public static function getInstanceByName($userName) { $db = PearDatabase::getInstance(); $result = $db->pquery('SELECT id FROM vtiger_users WHERE user_name = ?', array($userName)); if ($db->num_rows($result)) { return Users_Record_Model::getInstanceById($db->query_result($result, 0, 'id'), 'Users'); } return false; }
/** * Function to get all users related to this group * @param <Boolean> $nonAdmin true/false * @return <Array> Users models list <Users_Record_Model> */ public function getUsersList($nonAdmin = false) { $userIdsList = $usersList = array(); $members = $this->getMembers(); foreach ($members['Users'] as $memberModel) { $userId = $memberModel->get('userId'); $userIdsList[$userId] = $userId; } foreach ($members['Groups'] as $memberModel) { $groupModel = Settings_Groups_Record_Model::getInstance($memberModel->get('groupId')); $groupMembers = $groupModel->getMembers(); foreach ($groupMembers['Users'] as $groupMemberModel) { $userId = $groupMemberModel->get('userId'); $userIdsList[$userId] = $userId; } } foreach ($members['Roles'] as $memberModel) { $roleModel = new Settings_Roles_Record_Model(); $roleModel->set('roleid', $memberModel->get('roleId')); $roleUsers = $roleModel->getUsers(); foreach ($roleUsers as $userId => $userRecordModel) { $userIdsList[$userId] = $userId; } } foreach ($members['RoleAndSubordinates'] as $memberModel) { $roleModel = new Settings_Roles_Record_Model(); $roleModel->set('roleid', $memberModel->get('roleId')); $roleUsers = $roleModel->getUsers(); foreach ($roleUsers as $userId => $userRecordModel) { $userIdsList[$userId] = $userId; } } if (array_key_exists(1, $userIdsList)) { unset($userIdsList[1]); } foreach ($userIdsList as $userId) { $userRecordModel = Users_Record_Model::getInstanceById($userId, 'Users'); if ($nonAdmin && $userRecordModel->isAdminUser()) { continue; } $usersList[$userId] = $userRecordModel; } return $usersList; }