Browse Source

! when few admin pages (some core features and custom smiley and message icons) are disabled the page is no more accessible [Bug 4723]

emanuele 13 years ago
parent
commit
1089407d42
4 changed files with 30 additions and 4 deletions
  1. 2 2
      Sources/Admin.php
  2. 2 2
      Sources/ManagePermissions.php
  3. 12 0
      Sources/ManageSettings.php
  4. 14 0
      Sources/ManageSmileys.php

+ 2 - 2
Sources/Admin.php

@@ -951,7 +951,7 @@ function AdminLogs()
 	$log_functions = array(
 		'errorlog' => array('ManageErrors.php', 'ViewErrorLog'),
 		'adminlog' => array('Modlog.php', 'ViewModlog'),
-		'modlog' => array('Modlog.php', 'ViewModlog'),
+		'modlog' => array('Modlog.php', 'ViewModlog', 'disabled' => !in_array('ml', $context['admin_features'])),
 		'banlog' => array('ManageBans.php', 'BanLog'),
 		'spiderlog' => array('ManageSearchEngines.php', 'SpiderLogs'),
 		'tasklog' => array('ManageScheduledTasks.php', 'TaskLog'),
@@ -960,7 +960,7 @@ function AdminLogs()
 
 	call_integration_hook('integrate_manage_logs', array(&$log_functions));
 
-	$sub_action = isset($_REQUEST['sa']) && isset($log_functions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'errorlog';
+	$sub_action = isset($_REQUEST['sa']) && isset($log_functions[$_REQUEST['sa']]) && empty($log_functions[$_REQUEST['sa']]['disabled']) ? $_REQUEST['sa'] : 'errorlog';
 	// If it's not got a sa set it must have come here for first time, pretend error log should be reversed.
 	if (!isset($_REQUEST['sa']))
 		$_REQUEST['desc'] = true;

+ 2 - 2
Sources/ManagePermissions.php

@@ -39,14 +39,14 @@ function ModifyPermissions()
 		'modify2' => array('ModifyMembergroup2', 'manage_permissions'),
 		'quick' => array('SetQuickGroups', 'manage_permissions'),
 		'quickboard' => array('SetQuickBoards', 'manage_permissions'),
-		'postmod' => array('ModifyPostModeration', 'manage_permissions'),
+		'postmod' => array('ModifyPostModeration', 'manage_permissions', 'disabled' => !in_array('pm', $context['admin_features'])),
 		'profiles' => array('EditPermissionProfiles', 'manage_permissions'),
 		'settings' => array('GeneralPermissionSettings', 'admin_forum'),
 	);
 
 	call_integration_hook('integrate_manage_permissions', array(&$subActions));
 
-	$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : (allowedTo('manage_permissions') ? 'index' : 'settings');
+	$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) && empty($subActions[$_REQUEST['sa']]['disabled']) ? $_REQUEST['sa'] : (allowedTo('manage_permissions') ? 'index' : 'settings');
 	isAllowedTo($subActions[$_REQUEST['sa']][1]);
 
 	// Create the tabs for the template.

+ 12 - 0
Sources/ManageSettings.php

@@ -63,6 +63,14 @@ function ModifyFeatureSettings()
 
 	call_integration_hook('integrate_modify_features', array(&$subActions));
 
+	// If Advanced Profile Fields are disabled don't show the setting page
+	if (!in_array('cp', $context['admin_features']))
+		unset($subActions['profile']);
+
+	// Same for Karma
+	if (!in_array('k', $context['admin_features']))
+		unset($subActions['karma']);
+
 	loadGeneralSettingParameters($subActions, 'basic');
 
 	// Load up all the tabs...
@@ -107,6 +115,10 @@ function ModifySecuritySettings()
 
 	call_integration_hook('integrate_modify_security', array(&$subActions));
 
+	// If Warning System is disabled don't show the setting page
+	if (!in_array('w', $context['admin_features']))
+		unset($subActions['moderation']);
+
 	loadGeneralSettingParameters($subActions, 'general');
 
 	// Load up all the tabs...

+ 14 - 0
Sources/ManageSmileys.php

@@ -44,6 +44,20 @@ function ManageSmileys()
 
 	call_integration_hook('integrate_manage_smileys', array(&$subActions));
 
+	// If customized smileys is disabled don't show the setting page
+	if (empty($modSettings['smiley_enable']))
+	{
+		unset($subActions['addsmiley']);
+		unset($subActions['editsmileys']);
+		unset($subActions['setorder']);
+		unset($subActions['modifysmiley']);
+	}
+	if (empty($modSettings['messageIcons_enable']))
+	{
+		unset($subActions['editicon']);
+		unset($subActions['editicons']);
+	}
+
 	// Default the sub-action to 'edit smiley settings'.
 	$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'editsets';