diff --git a/include/utils/VtlibUtils.php b/include/utils/VtlibUtils.php index 90a5e8cd40ac597ca1f13ebb6d9ea3ec1167eca4..91c611520689bd6db3ff23e6fc71550fe108ce9d 100644 --- a/include/utils/VtlibUtils.php +++ b/include/utils/VtlibUtils.php @@ -151,46 +151,46 @@ function vtlib_toggleModuleAccess($modules, $enable_disable) { // Checks if the user is admin or not $isAdmin = is_admin($current_user); - if($isAdmin == true) { - if(is_string($modules)) $modules = array($modules); - $event_type = false; - - if($enable_disable === true) { - $enable_disable = 0; - $event_type = Vtiger_Module::EVENT_MODULE_ENABLED; - } else if($enable_disable === false) { - $enable_disable = 1; - $event_type = Vtiger_Module::EVENT_MODULE_DISABLED; - //Update default landing page to dashboard if module is disabled. - $adb->pquery('UPDATE vtiger_users SET defaultlandingpage = ? WHERE defaultlandingpage IN(' . generateQuestionMarks($modules) . ')', array_merge(array('Home'), $modules)); - } + if(!$isAdmin) { + throw new AppException('Permission denied! Only admin users can toggle modules'); + } - $checkResult = $adb->pquery('SELECT name FROM vtiger_tab WHERE name IN ('. generateQuestionMarks($modules) .')', array($modules)); - $rows = $adb->num_rows($checkResult); - for($i=0; $i<$rows; $i++) { - $existingModules[] = $adb->query_result($checkResult, $i, 'name'); - } + if(is_string($modules)) $modules = array($modules); + $event_type = false; + + if($enable_disable === true) { + $enable_disable = 0; + $event_type = Vtiger_Module::EVENT_MODULE_ENABLED; + } else if($enable_disable === false) { + $enable_disable = 1; + $event_type = Vtiger_Module::EVENT_MODULE_DISABLED; + //Update default landing page to dashboard if module is disabled. + $adb->pquery('UPDATE vtiger_users SET defaultlandingpage = ? WHERE defaultlandingpage IN(' . generateQuestionMarks($modules) . ')', array_merge(array('Home'), $modules)); + } - foreach($modules as $module) { - if (in_array($module, $existingModules)) { // check if module exists then only update and trigger events - $adb->pquery("UPDATE vtiger_tab set presence = ? WHERE name = ?", array($enable_disable, $module)); - $__cache_module_activeinfo[$module] = $enable_disable; - Vtiger_Module::fireEvent($module, $event_type); - Vtiger_Cache::flushModuleCache($module); - } + $checkResult = $adb->pquery('SELECT name FROM vtiger_tab WHERE name IN ('. generateQuestionMarks($modules) .')', array($modules)); + $rows = $adb->num_rows($checkResult); + for($i=0; $i<$rows; $i++) { + $existingModules[] = $adb->query_result($checkResult, $i, 'name'); + } + + foreach($modules as $module) { + if (in_array($module, $existingModules)) { // check if module exists then only update and trigger events + $adb->pquery("UPDATE vtiger_tab set presence = ? WHERE name = ?", array($enable_disable, $module)); + $__cache_module_activeinfo[$module] = $enable_disable; + Vtiger_Module::fireEvent($module, $event_type); + Vtiger_Cache::flushModuleCache($module); } + } - create_tab_data_file(); - create_parenttab_data_file(); + create_tab_data_file(); + create_parenttab_data_file(); - // UserPrivilege file needs to be regenerated if module state is changed from - // vtiger 5.1.0 onwards - global $vtiger_current_version; - if(version_compare($vtiger_current_version, '5.0.4', '>')) { - vtlib_RecreateUserPrivilegeFiles(); - } - } else { - throw new Exception ("Permission denied, only admin users can toggle module access"); + // UserPrivilege file needs to be regenerated if module state is changed from + // vtiger 5.1.0 onwards + global $vtiger_current_version; + if(version_compare($vtiger_current_version, '5.0.4', '>')) { + vtlib_RecreateUserPrivilegeFiles(); } } diff --git a/modules/Migration/actions/DisableModules.php b/modules/Migration/actions/DisableModules.php index 978ee1c214d9605fab0bfa9f9450324e062eec1e..6449878c2bdda91ed541bd8c6ea39c273d461311 100644 --- a/modules/Migration/actions/DisableModules.php +++ b/modules/Migration/actions/DisableModules.php @@ -11,14 +11,12 @@ class Migration_DisableModules_Action extends Vtiger_Action_Controller { public function checkPermission(\Vtiger_Request $request) { - global $current_user; - $isAdmin = is_admin($current_user); - if ($isAdmin == true) { - return true; - } else { - throw new Exception('Permission Denied! Only admins can access'); + parent::checkPermission($request); + $currentUserModel = Users_Record_Model::getCurrentUserModel(); + if(!$currentUserModel->isAdminUser()) { + throw new AppException(vtranslate('LBL_PERMISSION_DENIED', 'Vtiger')); } - return parent::checkPermission($request); + return true; } public function process(Vtiger_Request $request) { diff --git a/modules/Migration/actions/Extract.php b/modules/Migration/actions/Extract.php index 6c3ef2cbf6efb450d72263a5f6bbc2bd3f23c859..b9c0bf0fd61dbf5f60b9753804c9a152aec63c23 100644 --- a/modules/Migration/actions/Extract.php +++ b/modules/Migration/actions/Extract.php @@ -24,7 +24,7 @@ class Migration_Extract_Action extends Vtiger_Action_Controller { $userid = $user->retrieve_user_id($userName); $userRecordModel = Users_Privileges_Model::getInstanceById($userid, 'Users'); if ($user->doLogin($password)) { - if($userRecordModel->get('is_admin') == 'on') { + if($userRecordModel->isAdminUser()) { $zip = new ZipArchive(); $fileName = 'vtiger8.zip'; if ($zip->open($fileName)) { diff --git a/modules/Migration/views/Index.php b/modules/Migration/views/Index.php index d103c05996fe6d25c0be94cac2cc6b42cbbd7867..3093fda7f69732a4ddf315a59a050196d59a1c9d 100644 --- a/modules/Migration/views/Index.php +++ b/modules/Migration/views/Index.php @@ -18,13 +18,12 @@ class Migration_Index_View extends Vtiger_View_Controller { } public function checkPermission(Vtiger_Request $request){ - global $current_user; - $isAdmin = is_admin($current_user); - if ($isAdmin == true) { - return true; - } else { - throw new Exception('ADMIN USERS CAN ONLY ACCESS'); + parent::checkPermission($request); + $currentUserModel = Users_Record_Model::getCurrentUserModel(); + if(!$currentUserModel->isAdminUser()) { + throw new AppException(vtranslate('LBL_PERMISSION_DENIED', 'Vtiger')); } + return true; } public function process(Vtiger_Request $request) {