public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $qualifiedModuleName = $request->getModule(false); $recordId = $request->get('record'); $roleName = $request->get('rolename'); $allowassignedrecordsto = $request->get('allowassignedrecordsto'); $moduleModel = Settings_Vtiger_Module_Model::getInstance($qualifiedModuleName); if (!empty($recordId)) { $recordModel = Settings_Roles_Record_Model::getInstanceById($recordId); } else { $recordModel = new Settings_Roles_Record_Model(); } if ($request->get('profile_directly_related_to_role') == '1') { $profileId = $request->get('profile_directly_related_to_role_id'); $profileName = $request->get('profilename'); if (empty($profileName)) { $profileName = $roleName . '+' . vtranslate('LBL_PROFILE', $qualifiedModuleName); } if ($profileId) { $profileRecordModel = Settings_Profiles_Record_Model::getInstanceById($profileId); } else { $profileRecordModel = Settings_Profiles_Record_Model::getInstanceByName($profileName, true); if (empty($profileRecordModel)) { $profileRecordModel = new Settings_Profiles_Record_Model(); } } $profileRecordModel->set('directly_related_to_role', '1'); $profileRecordModel->set('profilename', $profileName)->set('profile_permissions', $request->get('permissions')); $profileRecordModel->set('viewall', $request->get('viewall')); $profileRecordModel->set('editall', $request->get('editall')); $savedProfileId = $profileRecordModel->save(); $roleProfiles = array($savedProfileId); } else { $roleProfiles = $request->get('profiles'); } $parentRoleId = $request->get('parent_roleid'); if ($recordModel && !empty($parentRoleId)) { $parentRole = Settings_Roles_Record_Model::getInstanceById($parentRoleId); $recordModel->set('change_owner', $request->get('change_owner'))->set('searchunpriv', $request->get('searchunpriv'))->set('clendarallorecords', $request->get('clendarallorecords')); if (!empty($allowassignedrecordsto)) { $recordModel->set('allowassignedrecordsto', $allowassignedrecordsto); } // set the value of assigned records to if ($parentRole && !empty($roleName) && !empty($roleProfiles)) { $recordModel->set('rolename', $roleName); $recordModel->set('profileIds', $roleProfiles); $parentRole->addChildRole($recordModel); } //After role updation recreating user privilege files if ($roleProfiles) { foreach ($roleProfiles as $profileId) { $profileRecordModel = Settings_Profiles_Record_Model::getInstanceById($profileId); $profileRecordModel->recalculate(array($recordId)); } } } $redirectUrl = $moduleModel->getDefaultUrl(); header("Location: {$redirectUrl}"); }
public function process(Vtiger_Request $request) { $recordId = $request->get('record'); if (!empty($recordId)) { $recordModel = Settings_Profiles_Record_Model::getInstanceById($recordId); } else { $recordModel = new Settings_Profiles_Record_Model(); } if ($recordModel) { $recordModel->set('profilename', $request->get('profilename')); $recordModel->set('description', $request->get('description')); $recordModel->set('viewall', $request->get('viewall')); $recordModel->set('editall', $request->get('editall')); $recordModel->set('profile_permissions', $request->get('permissions')); $recordModel->save(); } $redirectUrl = $recordModel->getDetailViewUrl(); header("Location: {$redirectUrl}"); }