[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Users/actions/ -> SaveAjax.php (source)

   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          }


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1