diff --git a/layouts/v7/modules/Settings/Roles/EditView.tpl b/layouts/v7/modules/Settings/Roles/EditView.tpl index a0a1bba286641a776bb885c598fb94d996a873a4..917115bcb08a73015d162f03ef9dbb845792bee7 100644 --- a/layouts/v7/modules/Settings/Roles/EditView.tpl +++ b/layouts/v7/modules/Settings/Roles/EditView.tpl @@ -32,7 +32,7 @@ {assign var=RECORD_ID value=$RECORD_MODEL->getId()} <input type="hidden" name="record" value="{$RECORD_ID}" /> <input type="hidden" name="mode" value="{$MODE}"> - <input type="hidden" name="profile_directly_related_to_role_id" value="{$PROFILE_ID}" /> + <input type="hidden" name="profile_directly_related_to_role_id" value="{(isset($PROFILE_ID)) ? $PROFILE_ID: ''}" /> {assign var=HAS_PARENT value="{if $RECORD_MODEL->getParent()}true{/if}"} {if $HAS_PARENT} <input type="hidden" name="parent_roleid" value="{$RECORD_MODEL->getParent()->getId()}"> diff --git a/modules/Settings/Profiles/models/Record.php b/modules/Settings/Profiles/models/Record.php index b6ed8c1c44981ac511b40ecfccbcd9e0c224201c..9ddda530e5af40136eb4f3a79b59da316e05ead6 100644 --- a/modules/Settings/Profiles/models/Record.php +++ b/modules/Settings/Profiles/models/Record.php @@ -85,7 +85,7 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model { public function getGlobalPermissions() { $db = PearDatabase::getInstance(); - if(!$this->global_permissions) { + if(!isset($this->global_permissions)) { $globalPermissions = array(); $globalPermissions[Settings_Profiles_Module_Model::GLOBAL_ACTION_VIEW] = $globalPermissions[Settings_Profiles_Module_Model::GLOBAL_ACTION_EDIT] = @@ -231,7 +231,7 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model { $field = Vtiger_Field_Model::getInstance($field, $profileTabModel); $fieldId = $field->getId(); } - if(!$fieldId) { + if(!isset($fieldId)) { return false; } $moduleFields = $profileTabModel->getFields(); @@ -242,7 +242,7 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model { public function getProfileTabPermissions() { $db = PearDatabase::getInstance(); - if(!$this->profile_tab_permissions) { + if(!isset($this->profile_tab_permissions)) { $profile2TabPermissions = array(); if($this->getId()) { $sql = 'SELECT * FROM vtiger_profile2tab WHERE profileid=?'; @@ -263,7 +263,7 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model { public function getProfileTabFieldPermissions($tabId) { $db = PearDatabase::getInstance(); - if(!$this->profile_tab_field_permissions[$tabId]) { + if(!isset($this->profile_tab_field_permissions[$tabId])) { $profile2TabFieldPermissions = array(); if($this->getId()) { $sql = 'SELECT * FROM vtiger_profile2field WHERE profileid=? AND tabid=?'; @@ -286,7 +286,7 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model { public function getProfileActionPermissions() { $db = PearDatabase::getInstance(); - if(!$this->profile_action_permissions) { + if(!isset($this->profile_action_permissions)) { $profile2ActionPermissions = array(); if($this->getId()) { $sql = 'SELECT * FROM vtiger_profile2standardpermissions WHERE profileid=?'; @@ -308,7 +308,7 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model { public function getProfileUtilityPermissions() { $db = PearDatabase::getInstance(); - if(!$this->profile_utility_permissions) { + if(!isset($this->profile_utility_permissions)) { $profile2UtilityPermissions = array(); if($this->getId()) { $sql = 'SELECT * FROM vtiger_profile2utility WHERE profileid=?'; @@ -328,7 +328,7 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model { } public function getModulePermissions() { - if(!$this->module_permissions) { + if(!isset($this->module_permissions)) { $allModules = Vtiger_Module_Model::getAll(array(0), Settings_Profiles_Module_Model::getNonVisibleModulesList()); $eventModule = Vtiger_Module_Model::getInstance('Events'); $allModules[$eventModule->getId()] = $eventModule; @@ -495,12 +495,12 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model { $profileId = $this->getId(); $tabId = $moduleModel->getId(); $profileActionPermissions = $this->getProfileActionPermissions(); - $profileActionPermissions = $profileActionPermissions[$tabId]; + $profileActionPermissions = isset($profileActionPermissions[$tabId]) ? $profileActionPermissions[$tabId] : ''; $db->pquery('DELETE FROM vtiger_profile2tab WHERE profileid=? AND tabid=?', array($profileId, $tabId)); $actionPermissions = array(); - $actionPermissions = $permissions['actions']; + $actionPermissions = isset($permissions['actions']) ? $permissions['actions'] : ''; $actionEnabled = false; if($moduleModel->isEntityModule() || $moduleModel->isUtilityActionEnabled()) { if($actionPermissions || $moduleModel->isUtilityActionEnabled()) { @@ -509,11 +509,11 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model { $availableActionIds = array_keys($actionIdsList); foreach ($availableActionIds as $actionId) { - if ($actionId === 0) { + if ($actionId === 0 && isset($actionPermissions[1]) && isset($actionPermissions[7])) { //Save action permissions = Permissions of Create/Editview action $actionPermissions[$actionId] = $actionPermissions[1] || $actionPermissions[7]; } else { - $actionPermissions[$actionId] = $actionPermissions[$actionId]; + $actionPermissions[$actionId] = isset($actionPermissions[$actionId]) ? $actionPermissions[$actionId] : ''; } } @@ -614,7 +614,7 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model { // Enable module permission in profile2tab table only if either its an extension module or the entity module has atleast 1 action enabled if($actionEnabled) { - $isModulePermitted = $this->tranformInputPermissionValue($permissions['is_permitted']); + $isModulePermitted = isset($permissions['is_permitted']) ? $this->tranformInputPermissionValue($permissions['is_permitted']) :null; } else { $isModulePermitted = Settings_Profiles_Module_Model::NOT_PERMITTED_VALUE; } @@ -622,7 +622,7 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model { $params = array($profileId, $tabId, $isModulePermitted); $db->pquery($sql, $params); - $fieldPermissions = $permissions['fields']; + $fieldPermissions = isset($permissions['fields']) ? $permissions['fields'] : ''; if(is_array($fieldPermissions)) { foreach($fieldPermissions as $fieldId => $stateValue) { $db->pquery('DELETE FROM vtiger_profile2field WHERE profileid=? AND tabid=? AND fieldid=?', @@ -857,7 +857,7 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model { $allowedFields = array("roleid","currency_id","reports_to_id"); foreach ($moduleFields as $fieldName => $fieldModel) { if(in_array($fieldName,$allowedFields) || $fieldModel->getFieldDataType() == 'string' || $fieldModel->getFieldDataType() == 'email' || $fieldModel->getFieldDataType() == 'phone') { - if(!in_array($fieldModel->get('uitype'), $skipFields) && $fieldName != 'asterisk_extension'){ + if(isset($userAccessbleFields[$fieldModel->get('id')]) && !in_array($fieldModel->get('uitype'), $skipFields) && $fieldName != 'asterisk_extension'){ $userAccessbleFields[$fieldModel->get('id')] .= $fieldName; } } diff --git a/modules/Settings/Roles/models/Record.php b/modules/Settings/Roles/models/Record.php index 8686106bc31fc2ef0aa5e821481e9adbf890be66..213b45f99cb01946de63d7a9b69a9e6016f10a7d 100644 --- a/modules/Settings/Roles/models/Record.php +++ b/modules/Settings/Roles/models/Record.php @@ -17,6 +17,9 @@ class Settings_Roles_Record_Model extends Settings_Vtiger_Record_Model { * Function to get the Id * @return <Number> Role Id */ + + public $children; + public function getId() { return $this->get('roleid'); } @@ -228,7 +231,7 @@ class Settings_Roles_Record_Model extends Settings_Vtiger_Record_Model { * @return <Array> Settings_Profiles_Record_Model instances */ public function getProfiles() { - if(!$this->profiles) { + if(!isset($this->profiles)) { $this->profiles = Settings_Profiles_Record_Model::getAllByRole($this->getId()); } return $this->profiles; diff --git a/modules/Vtiger/models/Field.php b/modules/Vtiger/models/Field.php index 05e49e664fd823c044dd860db1aeeb8c46deedc4..863bc0cc88e84a2a40b9d442b63ec262a8cadaa1 100644 --- a/modules/Vtiger/models/Field.php +++ b/modules/Vtiger/models/Field.php @@ -404,6 +404,7 @@ class Vtiger_Field_Model extends Vtiger_Field { * @return <Boolean> - true/false */ public function isMandatory() { + if(substr_count($this->get('typeofdata'),'~') == 0) $this->set('typeofdata', $this->get('typeofdata') . '~'); list($type,$mandatory)= explode('~',$this->get('typeofdata')); return $mandatory=='M' ? true:false; }