Bladeren bron

Warn admins when trying to delete a group that is assigned to moderate boards

Signed-off-by: Michael Eshom <[email protected]>
Michael Eshom 11 jaren geleden
bovenliggende
commit
17bf743a86

+ 15 - 0
Sources/ManageMembergroups.php

@@ -659,6 +659,21 @@ function EditMembergroup()
 	if (empty($_REQUEST['group']))
 		fatal_lang_error('membergroup_does_not_exist', false);
 
+	// Can this group moderate any boards?
+	$request = $smcFunc['db_query']('', '
+		SELECT COUNT(id_board)
+		FROM {db_prefix}moderator_groups
+		WHERE id_group = {int:current_group}',
+		array(
+			'current_group' => $_REQUEST['group'],
+		)
+	);
+	
+	// Why don't we have a $smcFunc['db_result'] function?
+	$result = $smcFunc['db_fetch_row']($request);
+	$context['is_moderator_group'] = ($result[0] > 0);
+	$smcFunc['db_free_result']($request);
+
 	// The delete this membergroup button was pressed.
 	if (isset($_POST['delete']))
 	{

+ 1 - 1
Themes/default/ManageMembergroups.template.php

@@ -325,7 +325,7 @@ function template_edit_group()
 	echo '
 					</dl>
 					<input type="submit" name="save" value="', $txt['membergroups_edit_save'], '" class="button_submit" />', $context['group']['allow_delete'] ? '
-					<input type="submit" name="delete" value="' . $txt['membergroups_delete'] . '" onclick="return confirm(\'' . $txt['membergroups_confirm_delete'] . '\');" class="button_submit" />' : '', '
+					<input type="submit" name="delete" value="' . $txt['membergroups_delete'] . '" onclick="return confirm(\'' . ($context['is_moderator_group']) ? $txt['membergroups_confirm_delete_mod'] : $txt['membergroups_confirm_delete'] . '\');" class="button_submit" />' : '', '
 				</div>
 			</div>
 			<input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" />

+ 1 - 0
Themes/default/languages/ManageMembers.english.php

@@ -55,6 +55,7 @@ $txt['membergroups_max_messages_note'] = '0 = unlimited';
 $txt['membergroups_edit_save'] = 'Save';
 $txt['membergroups_delete'] = 'Delete';
 $txt['membergroups_confirm_delete'] = 'Are you sure you want to delete this group?';
+$txt['membergroups_confirm_delete_mod'] = 'This group is assigned to moderate one or more boards. Are you sure you want to delete it?';
 
 $txt['membergroups_members_title'] = 'Viewing Group';
 $txt['membergroups_members_group_members'] = 'Group Members';