[ 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 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 }
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 |