[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Settings/Roles/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 Settings_Roles_Save_Action extends Vtiger_Action_Controller {
  12      
  13  	public function checkPermission(Vtiger_Request $request) {
  14          $currentUser = Users_Record_Model::getCurrentUserModel();
  15          if(!$currentUser->isAdminUser()) {
  16              throw new AppException('LBL_PERMISSION_DENIED');
  17          }
  18      }
  19  
  20  	public function process(Vtiger_Request $request) {
  21          $moduleName = $request->getModule();
  22          $qualifiedModuleName = $request->getModule(false);
  23          $recordId = $request->get('record');
  24          $roleName = $request->get('rolename');
  25          $allowassignedrecordsto = $request->get('allowassignedrecordsto');
  26  
  27          $moduleModel = Settings_Vtiger_Module_Model::getInstance($qualifiedModuleName);
  28          if(!empty($recordId)) {
  29              $recordModel = Settings_Roles_Record_Model::getInstanceById($recordId);
  30          } else {
  31              $recordModel = new Settings_Roles_Record_Model();
  32          }
  33          
  34          if($request->get('profile_directly_related_to_role') == '1') {
  35              $profileId = $request->get('profile_directly_related_to_role_id');
  36              $profileName = $request->get('profilename');
  37              if(empty($profileName)){
  38                  $profileName = $roleName.'+'.vtranslate('LBL_PROFILE',$qualifiedModuleName);
  39              }
  40              if($profileId){
  41                  $profileRecordModel = Settings_Profiles_Record_Model::getInstanceById($profileId);
  42              } else {
  43                  $profileRecordModel = Settings_Profiles_Record_Model::getInstanceByName($profileName, true);
  44                  if(empty($profileRecordModel)) {
  45                      $profileRecordModel = new Settings_Profiles_Record_Model();
  46                  }
  47              }
  48              $profileRecordModel->set('directly_related_to_role','1');
  49              
  50              $profileRecordModel->set('profilename', $profileName)
  51                                 ->set('profile_permissions', $request->get('permissions'));
  52              $profileRecordModel->set('viewall', $request->get('viewall'));
  53              $profileRecordModel->set('editall', $request->get('editall'));
  54              $savedProfileId = $profileRecordModel->save();
  55              $roleProfiles = array($savedProfileId);
  56          }else{
  57              $roleProfiles = $request->get('profiles');
  58          }
  59          
  60          $parentRoleId = $request->get('parent_roleid');
  61          if($recordModel && !empty($parentRoleId)) {
  62              $parentRole = Settings_Roles_Record_Model::getInstanceById($parentRoleId);
  63              if(!empty($allowassignedrecordsto)) $recordModel->set('allowassignedrecordsto', $allowassignedrecordsto); // set the value of assigned records to
  64              if($parentRole && !empty($roleName) && !empty($roleProfiles)) {
  65                  $recordModel->set('rolename', $roleName);
  66                  $recordModel->set('profileIds', $roleProfiles);
  67                  $parentRole->addChildRole($recordModel);
  68              }
  69  
  70              //After role updation recreating user privilege files
  71              if ($roleProfiles) {
  72                  foreach ($roleProfiles as $profileId) {
  73                      $profileRecordModel = Settings_Profiles_Record_Model::getInstanceById($profileId);
  74                      $profileRecordModel->recalculate(array($recordId));
  75                  }
  76              }
  77          }
  78  
  79          $redirectUrl = $moduleModel->getDefaultUrl();
  80          header("Location: $redirectUrl");
  81      }
  82          
  83          public function validateRequest(Vtiger_Request $request) { 
  84              $request->validateWriteAccess(); 
  85          } 
  86  }


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