[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Users/actions/ -> Save.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  
  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  }


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