[ 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 vimport('~~/include/Webservices/Custom/ChangePassword.php'); 11 12 class Users_SaveAjax_Action extends Vtiger_SaveAjax_Action { 13 14 function __construct() { 15 parent::__construct(); 16 $this->exposeMethod('userExists'); 17 $this->exposeMethod('savePassword'); 18 } 19 20 public function checkPermission(Vtiger_Request $request) { 21 $currentUserModel = Users_Record_Model::getCurrentUserModel(); 22 23 $userId = $request->get('userid'); 24 if (!$currentUserModel->isAdminUser()) { 25 $mode = $request->getMode(); 26 if ($mode == 'savePassword' && (isset($userId) && $currentUserModel->getId() != $userId)) { 27 throw new AppException(vtranslate('LBL_PERMISSION_DENIED', 'Vtiger')); 28 } 29 else if ($mode != 'savePassword' && ($currentUserModel->getId() != $request->get('record'))) { 30 throw new AppException(vtranslate('LBL_PERMISSION_DENIED', 'Vtiger')); 31 } 32 } 33 } 34 35 public function process(Vtiger_Request $request) { 36 37 $mode = $request->get('mode'); 38 if (!empty($mode)) { 39 $this->invokeExposedMethod($mode, $request); 40 return; 41 } 42 43 $recordModel = $this->saveRecord($request); 44 45 $fieldModelList = $recordModel->getModule()->getFields(); 46 $result = array(); 47 foreach ($fieldModelList as $fieldName => $fieldModel) { 48 $fieldValue = $displayValue = Vtiger_Util_Helper::toSafeHTML($recordModel->get($fieldName)); 49 if ($fieldModel->getFieldDataType() !== 'currency') { 50 $displayValue = $fieldModel->getDisplayValue($fieldValue, $recordModel->getId()); 51 } 52 if($fieldName == 'language') { 53 $displayValue = Vtiger_Language_Handler::getLanguageLabel($fieldValue); 54 } 55 $result[$fieldName] = array('value' => $fieldValue, 'display_value' => $displayValue); 56 } 57 58 $result['_recordLabel'] = $recordModel->getName(); 59 $result['_recordId'] = $recordModel->getId(); 60 61 $response = new Vtiger_Response(); 62 $response->setEmitType(Vtiger_Response::$EMIT_JSON); 63 $response->setResult($result); 64 $response->emit(); 65 } 66 67 /** 68 * Function to get the record model based on the request parameters 69 * @param Vtiger_Request $request 70 * @return Vtiger_Record_Model or Module specific Record Model instance 71 */ 72 public function getRecordModelFromRequest(Vtiger_Request $request) { 73 $recordModel = parent::getRecordModelFromRequest($request); 74 $fieldName = $request->get('field'); 75 $currentUserModel= Users_Record_Model::getCurrentUserModel(); 76 if ($fieldName === 'is_admin' && (!$currentUserModel->isAdminUser()||!$request->get('value'))) { 77 $recordModel->set($fieldName, 'off'); 78 $recordModel->set('is_owner',0); 79 } 80 else if($fieldName === 'is_admin' && $currentUserModel->isAdminUser()){ 81 $recordModel->set($fieldName, 'on'); 82 $recordModel->set('is_owner',1); 83 } 84 return $recordModel; 85 } 86 87 88 public function userExists(Vtiger_Request $request){ 89 $module = $request->getModule(); 90 $userName = $request->get('user_name'); 91 $userModuleModel = Users_Module_Model::getCleanInstance($module); 92 $status = $userModuleModel->checkDuplicateUser($userName); 93 $response = new Vtiger_Response(); 94 $response->setResult($status); 95 $response->emit(); 96 } 97 98 public function savePassword(Vtiger_Request $request) { 99 $module = $request->getModule(); 100 $userModel = vglobal('current_user'); 101 $newPassword = $request->get('new_password'); 102 $oldPassword = $request->get('old_password'); 103 104 $wsUserId = vtws_getWebserviceEntityId($module, $request->get('userid')); 105 $wsStatus = vtws_changePassword($wsUserId, $oldPassword, $newPassword, $newPassword, $userModel); 106 107 $response = new Vtiger_Response(); 108 if ($wsStatus['message']) { 109 $response->setResult($wsStatus); 110 } else { 111 $response->setError('JS_PASSWORD_INCORRECT_OLD', 'JS_PASSWORD_INCORRECT_OLD'); 112 } 113 $response->emit(); 114 } 115 }
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 |