[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /*+*********************************************************************************** 3 * The contents of this file are subject to the vtiger CRM Public License Version 1.0 4 * ("License"); You may not use this file except in compliance with the License 5 * The Original Code is: vtiger CRM Open Source 6 * The Initial Developer of the Original Code is vtiger. 7 * Portions created by vtiger are Copyright (C) vtiger. 8 * All Rights Reserved. 9 *************************************************************************************/ 10 11 class Users_Save_Action extends Vtiger_Save_Action { 12 13 public function checkPermission(Vtiger_Request $request) { 14 $moduleName = $request->getModule(); 15 $record = $request->get('record'); 16 $recordModel = Vtiger_Record_Model::getInstanceById($record, $moduleName); 17 $currentUserModel = Users_Record_Model::getCurrentUserModel(); 18 if(!Users_Privileges_Model::isPermitted($moduleName, 'Save', $record) || ($recordModel->isAccountOwner() && 19 $currentUserModel->get('id') != $recordModel->getId() && !$currentUserModel->isAdminUser())) { 20 throw new AppException('LBL_PERMISSION_DENIED'); 21 } 22 } 23 24 /** 25 * Function to get the record model based on the request parameters 26 * @param Vtiger_Request $request 27 * @return Vtiger_Record_Model or Module specific Record Model instance 28 */ 29 protected function getRecordModelFromRequest(Vtiger_Request $request) { 30 $moduleName = $request->getModule(); 31 $recordId = $request->get('record'); 32 $currentUserModel = Users_Record_Model::getCurrentUserModel(); 33 if(!empty($recordId)) { 34 $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName); 35 $modelData = $recordModel->getData(); 36 $recordModel->set('id', $recordId); 37 $sharedType = $request->get('sharedtype'); 38 if(!empty($sharedType)) 39 $recordModel->set('calendarsharedtype', $request->get('sharedtype')); 40 $recordModel->set('mode', 'edit'); 41 } else { 42 $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); 43 $modelData = $recordModel->getData(); 44 $recordModel->set('mode', ''); 45 } 46 47 foreach ($modelData as $fieldName => $value) { 48 $requestFieldExists = $request->has($fieldName); 49 if(!$requestFieldExists){ 50 continue; 51 } 52 $fieldValue = $request->get($fieldName, null); 53 54 if ($fieldName === 'is_admin') { 55 if (!$currentUserModel->isAdminUser() && (!$fieldValue)) { 56 $fieldValue = 'off'; 57 } else if ($currentUserModel->isAdminUser() && ($fieldValue || $fieldValue === 'on')) { 58 $fieldValue = 'on'; 59 $recordModel->set('is_owner', 1); 60 } else { 61 $fieldValue = 'off'; 62 $recordModel->set('is_owner', 0); 63 } 64 } 65 if($fieldValue !== null) { 66 if(!is_array($fieldValue)) { 67 $fieldValue = trim($fieldValue); 68 } 69 $recordModel->set($fieldName, $fieldValue); 70 } 71 } 72 $homePageComponents = $recordModel->getHomePageComponents(); 73 $selectedHomePageComponents = $request->get('homepage_components', array()); 74 foreach ($homePageComponents as $key => $value) { 75 if(in_array($key, $selectedHomePageComponents)) { 76 $request->setGlobal($key, $key); 77 } else { 78 $request->setGlobal($key, ''); 79 } 80 } 81 82 // Tag cloud save 83 $tagCloud = $request->get('tagcloudview'); 84 if($tagCloud == "on") { 85 $recordModel->set('tagcloud', 0); 86 } else { 87 $recordModel->set('tagcloud', 1); 88 } 89 return $recordModel; 90 } 91 92 public function process(Vtiger_Request $request) { 93 $result = Vtiger_Util_Helper::transformUploadedFiles($_FILES, true); 94 $_FILES = $result['imagename']; 95 96 $recordModel = $this->saveRecord($request); 97 98 if ($request->get('relationOperation')) { 99 $parentRecordModel = Vtiger_Record_Model::getInstanceById($request->get('sourceRecord'), $request->get('sourceModule')); 100 $loadUrl = $parentRecordModel->getDetailViewUrl(); 101 } else if ($request->get('isPreference')) { 102 $loadUrl = $recordModel->getPreferenceDetailViewUrl(); 103 } else { 104 $loadUrl = $recordModel->getDetailViewUrl(); 105 } 106 107 header("Location: $loadUrl"); 108 } 109 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |