[1] | 1 | <?php |
---|
| 2 | /*********************************************************************** |
---|
| 3 | |
---|
| 4 | Copyright (C) 2002-2005 Rickard Andersson (rickard@punbb.org) |
---|
| 5 | |
---|
| 6 | This file is part of PunBB. |
---|
| 7 | |
---|
| 8 | PunBB is free software; you can redistribute it and/or modify it |
---|
| 9 | under the terms of the GNU General Public License as published |
---|
| 10 | by the Free Software Foundation; either version 2 of the License, |
---|
| 11 | or (at your option) any later version. |
---|
| 12 | |
---|
| 13 | PunBB is distributed in the hope that it will be useful, but |
---|
| 14 | WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
| 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
| 16 | GNU General Public License for more details. |
---|
| 17 | |
---|
| 18 | You should have received a copy of the GNU General Public License |
---|
| 19 | along with this program; if not, write to the Free Software |
---|
| 20 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
---|
| 21 | MA 02111-1307 USA |
---|
| 22 | |
---|
| 23 | ************************************************************************/ |
---|
| 24 | |
---|
| 25 | |
---|
| 26 | // Tell header.php to use the admin template |
---|
| 27 | define('PUN_ADMIN_CONSOLE', 1); |
---|
| 28 | |
---|
| 29 | define('PUN_ROOT', './'); |
---|
| 30 | require PUN_ROOT.'include/common.php'; |
---|
| 31 | require PUN_ROOT.'include/common_admin.php'; |
---|
| 32 | |
---|
| 33 | |
---|
| 34 | if ($pun_user['g_id'] > PUN_ADMIN) |
---|
| 35 | message($lang_common['No permission']); |
---|
| 36 | |
---|
| 37 | |
---|
| 38 | // Add/edit a group (stage 1) |
---|
| 39 | if (isset($_POST['add_group']) || isset($_GET['edit_group'])) |
---|
| 40 | { |
---|
| 41 | if (isset($_POST['add_group'])) |
---|
| 42 | { |
---|
| 43 | $base_group = intval($_POST['base_group']); |
---|
| 44 | |
---|
| 45 | $result = $db->query('SELECT * FROM '.$db->prefix.'groups WHERE g_id='.$base_group) or error('Impossible de retrouver les informations de groupes utilisateurs', __FILE__, __LINE__, $db->error()); |
---|
| 46 | $group = $db->fetch_assoc($result); |
---|
| 47 | |
---|
| 48 | $mode = 'add'; |
---|
| 49 | } |
---|
| 50 | else // We are editing a group |
---|
| 51 | { |
---|
| 52 | $group_id = intval($_GET['edit_group']); |
---|
| 53 | if ($group_id < 1) |
---|
| 54 | message($lang_common['Bad request']); |
---|
| 55 | |
---|
| 56 | $result = $db->query('SELECT * FROM '.$db->prefix.'groups WHERE g_id='.$group_id) or error('Impossible de retrouver les informations de groupes utilisateurs', __FILE__, __LINE__, $db->error()); |
---|
| 57 | if (!$db->num_rows($result)) |
---|
| 58 | message($lang_common['Bad request']); |
---|
| 59 | |
---|
| 60 | $group = $db->fetch_assoc($result); |
---|
| 61 | |
---|
| 62 | $mode = 'edit'; |
---|
| 63 | } |
---|
| 64 | |
---|
| 65 | |
---|
| 66 | $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Groupes'; |
---|
| 67 | $required_fields = array('req_title' => 'Nom groupe'); |
---|
| 68 | $focus_element = array('groups2', 'req_title'); |
---|
| 69 | require PUN_ROOT.'header.php'; |
---|
| 70 | |
---|
| 71 | generate_admin_menu('groups'); |
---|
| 72 | |
---|
| 73 | ?> |
---|
| 74 | <div class="blockform"> |
---|
| 75 | <h2><span>Réglages du groupe</span></h2> |
---|
| 76 | <div class="box"> |
---|
| 77 | <form id="groups2" method="post" action="admin_groups.php" onsubmit="return process_form(this)"> |
---|
| 78 | <p class="submittop"><input type="submit" name="add_edit_group" value=" Enregistrer " /></p> |
---|
| 79 | <div class="inform"> |
---|
| 80 | <input type="hidden" name="mode" value="<?php echo $mode ?>" /> |
---|
| 81 | <?php if ($mode == 'edit'): ?> <input type="hidden" name="group_id" value="<?php echo $group_id ?>" /> |
---|
| 82 | <?php endif; ?><?php if ($mode == 'add'): ?> <input type="hidden" name="base_group" value="<?php echo $base_group ?>" /> |
---|
| 83 | <?php endif; ?> <fieldset> |
---|
| 84 | <legend>Réglages des options et des permissions de groupe</legend> |
---|
| 85 | <div class="infldset"> |
---|
| 86 | <p>Les options et permissions ci-dessous sont les permissions par défaut pour le groupe. Ces options s'appliquent s'il n'y a pas de réglages de permissions spécifiques à un forum.</p> |
---|
| 87 | <table class="aligntop" cellspacing="0"> |
---|
| 88 | <tr> |
---|
| 89 | <th scope="row">Nom groupe</th> |
---|
| 90 | <td> |
---|
| 91 | <input type="text" name="req_title" size="25" maxlength="50" value="<?php if ($mode == 'edit') echo pun_htmlspecialchars($group['g_title']); ?>" tabindex="1" /> |
---|
| 92 | </td> |
---|
| 93 | </tr> |
---|
| 94 | <tr> |
---|
| 95 | <th scope="row">Titre utilisateur</th> |
---|
| 96 | <td> |
---|
| 97 | <input type="text" name="user_title" size="25" maxlength="50" value="<?php echo pun_htmlspecialchars($group['g_user_title']) ?>" tabindex="2" /> |
---|
| 98 | <span>Ce titre remplacera n'importe quel nom de rang que les utilisateurs de ce groupe auront atteint. Laissez vide pour utiliser le titre par défaut ou le rang.</span> |
---|
| 99 | </td> |
---|
| 100 | </tr> |
---|
| 101 | <?php if ($group['g_id'] != PUN_ADMIN): ?> <tr> |
---|
| 102 | <th scope="row">Lire forums</th> |
---|
| 103 | <td> |
---|
| 104 | <input type="radio" name="read_board" value="1"<?php if ($group['g_read_board'] == '1') echo ' checked="checked"' ?> tabindex="3" /> <strong>Oui</strong>   <input type="radio" name="read_board" value="0"<?php if ($group['g_read_board'] == '0') echo ' checked="checked"' ?> tabindex="4" /> <strong>Non</strong> |
---|
| 105 | <span>Autoriser les utilisateurs de ce groupe à voir les forums. Ce réglage s'applique à tous les aspects des forums et ne peut être outrepassé par les permissions spécifiques aux forums. Avec cette option à non les utilisateurs de ce groupe ne pourront que s'identifier/se déconnecter.</span> |
---|
| 106 | </td> |
---|
| 107 | </tr> |
---|
| 108 | <tr> |
---|
| 109 | <th scope="row">Ãcrire des réponses</th> |
---|
| 110 | <td> |
---|
| 111 | <input type="radio" name="post_replies" value="1"<?php if ($group['g_post_replies'] == '1') echo ' checked="checked"' ?> tabindex="5" /> <strong>Oui</strong>   <input type="radio" name="post_replies" value="0"<?php if ($group['g_post_replies'] == '0') echo ' checked="checked"' ?> tabindex="6" /> <strong>Non</strong> |
---|
| 112 | <span>Autoriser les utilisateurs de ce groupe à écrire des réponses aux discussions.</span> |
---|
| 113 | </td> |
---|
| 114 | </tr> |
---|
| 115 | <tr> |
---|
| 116 | <th scope="row">Lancer des discussions</th> |
---|
| 117 | <td> |
---|
| 118 | <input type="radio" name="post_topics" value="1"<?php if ($group['g_post_topics'] == '1') echo ' checked="checked"' ?> tabindex="7" /> <strong>Oui</strong>   <input type="radio" name="post_topics" value="0"<?php if ($group['g_post_topics'] == '0') echo ' checked="checked"' ?> tabindex="8" /> <strong>Non</strong> |
---|
| 119 | <span>Autoriser les utilisateurs de ce groupe à lancer des nouveaux sujets.</span> |
---|
| 120 | </td> |
---|
| 121 | </tr> |
---|
| 122 | <?php if ($group['g_id'] != PUN_GUEST): ?> <tr> |
---|
| 123 | <th scope="row">Modifier messages</th> |
---|
| 124 | <td> |
---|
| 125 | <input type="radio" name="edit_posts" value="1"<?php if ($group['g_edit_posts'] == '1') echo ' checked="checked"' ?> tabindex="11" /> <strong>Oui</strong>   <input type="radio" name="edit_posts" value="0"<?php if ($group['g_edit_posts'] == '0') echo ' checked="checked"' ?> tabindex="12" /> <strong>Non</strong> |
---|
| 126 | <span>Autoriser les utilisateurs de ce groupe à modifier leurs propres messages.</span> |
---|
| 127 | </td> |
---|
| 128 | </tr> |
---|
| 129 | <tr> |
---|
| 130 | <th scope="row">Effacer les messages</th> |
---|
| 131 | <td> |
---|
| 132 | <input type="radio" name="delete_posts" value="1"<?php if ($group['g_delete_posts'] == '1') echo ' checked="checked"' ?> tabindex="13" /> <strong>Oui</strong>   <input type="radio" name="delete_posts" value="0"<?php if ($group['g_delete_posts'] == '0') echo ' checked="checked"' ?> tabindex="14" /> <strong>Non</strong> |
---|
| 133 | <span>Autoriser les utilisateurs de ce groupe à effacer leurs propres messages.</span> |
---|
| 134 | </td> |
---|
| 135 | </tr> |
---|
| 136 | <tr> |
---|
| 137 | <th scope="row">Effacer les discussions</th> |
---|
| 138 | <td> |
---|
| 139 | <input type="radio" name="delete_topics" value="1"<?php if ($group['g_delete_topics'] == '1') echo ' checked="checked"' ?> tabindex="15" /> <strong>Oui</strong>   <input type="radio" name="delete_topics" value="0"<?php if ($group['g_delete_topics'] == '0') echo ' checked="checked"' ?> tabindex="16" /> <strong>Non</strong> |
---|
| 140 | <span>Autoriser les utilisateurs de ce groupe à effacer leurs propres sujets (y compris toutes les réponses).</span> |
---|
| 141 | </td> |
---|
| 142 | </tr> |
---|
| 143 | <tr> |
---|
| 144 | <th scope="row">Titre personnalisé</th> |
---|
| 145 | <td> |
---|
| 146 | <input type="radio" name="set_title" value="1"<?php if ($group['g_set_title'] == '1') echo ' checked="checked"' ?> tabindex="17" /> <strong>Oui</strong>   <input type="radio" name="set_title" value="0"<?php if ($group['g_set_title'] == '0') echo ' checked="checked"' ?> tabindex="18" /> |
---|
| 147 |  <strong>Non</strong> |
---|
| 148 | <span>Autoriser les utilisateurs de ce groupe à modifier leur propre titre utilisateur.</span> |
---|
| 149 | </td> |
---|
| 150 | </tr> |
---|
| 151 | <?php endif; ?> <tr> |
---|
| 152 | <th scope="row">Utiliser la recherche</th> |
---|
| 153 | <td> |
---|
| 154 | <input type="radio" name="search" value="1"<?php if ($group['g_search'] == '1') echo ' checked="checked"' ?> tabindex="19" /> <strong>Oui</strong>   <input type="radio" name="search" value="0"<?php if ($group['g_search'] == '0') echo ' checked="checked"' ?> tabindex="20" /> <strong>Non</strong> |
---|
| 155 | <span>Autoriser les utilisateurs de ce groupe à utiliser la fonction de recherche sur les forums.</span> |
---|
| 156 | </td> |
---|
| 157 | </tr> |
---|
| 158 | <tr> |
---|
| 159 | <th scope="row">Recherche d'utilisateur</th> |
---|
| 160 | <td> |
---|
| 161 | <input type="radio" name="search_users" value="1"<?php if ($group['g_search_users'] == '1') echo ' checked="checked"' ?> tabindex="21" /> <strong>Oui</strong>   <input type="radio" name="search_users" value="0"<?php if ($group['g_search_users'] == '0') echo ' checked="checked"' ?> tabindex="22" /> <strong>Non</strong> |
---|
| 162 | <span>Autoriser les utilisateurs de ce groupe à utiliser un texte libre pour rechercher dans la liste des utilisateurs.</span> |
---|
| 163 | </td> |
---|
| 164 | </tr> |
---|
| 165 | <?php if ($group['g_id'] != PUN_GUEST): ?> <tr> |
---|
| 166 | <th scope="row">Intervalle pour modifier le sujet d'une discussion</th> |
---|
| 167 | <td> |
---|
| 168 | <input type="text" name="edit_subjects_interval" size="5" maxlength="5" value="<?php echo $group['g_edit_subjects_interval'] ?>" tabindex="23" /> |
---|
| 169 | <span>Nombre de secondes aprÚs que le message ait été envoyé pendant lesquelles les utilisateurs de ce groupe pourront modifier le sujet d'une discussion qu'ils viennent de lancer. Mettre à 0 pour permettre la modification du sujet des discussions sans restriction dans le temps.</span> |
---|
| 170 | </td> |
---|
| 171 | </tr> |
---|
| 172 | <tr> |
---|
| 173 | <th scope="row">Intervalle de contrÃŽle de flood sur les messages</th> |
---|
| 174 | <td> |
---|
| 175 | <input type="text" name="post_flood" size="5" maxlength="4" value="<?php echo $group['g_post_flood'] ?>" tabindex="24" /> |
---|
| 176 | <span>Nombre de secondes pendant lesquelles les utilisateurs de ce groupe devront patienter entre deux messages. Mettre à 0 pour désactiver le contrÎle de flood sur les messages.</span> |
---|
| 177 | </td> |
---|
| 178 | </tr> |
---|
| 179 | <tr> |
---|
| 180 | <th scope="row">Intervalle de contrÃŽle de flood sur les recherches</th> |
---|
| 181 | <td> |
---|
| 182 | <input type="text" name="search_flood" size="5" maxlength="4" value="<?php echo $group['g_search_flood'] ?>" tabindex="25" /> |
---|
| 183 | <span>Nombre de secondes pendant lesquelles les utilisateurs de ce groupe devront patienter entre deux recherches. Mettre à 0 pour désactiver le contrÎle de flood sur les recherches.</span> |
---|
| 184 | </td> |
---|
| 185 | </tr> |
---|
| 186 | <?php endif; ?><?php endif; ?> </table> |
---|
| 187 | <?php if ($group['g_id'] == PUN_MOD ): ?> <p class="warntext">Pour qu'un utilisateur de ce groupe acquiÚre les compétences de modérateur, il devra nécessairement être désigné comme modérateur d'un ou de plusieurs forums. Ceci est possible depuis la page d'administration du profil de l'utilisateur.</p> |
---|
| 188 | <?php endif; ?> </div> |
---|
| 189 | </fieldset> |
---|
| 190 | </div> |
---|
| 191 | <p class="submitend"><input type="submit" name="add_edit_group" value=" Enregistrer " tabindex="26" /></p> |
---|
| 192 | </form> |
---|
| 193 | </div> |
---|
| 194 | </div> |
---|
| 195 | <div class="clearer"></div> |
---|
| 196 | </div> |
---|
| 197 | <?php |
---|
| 198 | |
---|
| 199 | require PUN_ROOT.'footer.php'; |
---|
| 200 | } |
---|
| 201 | |
---|
| 202 | |
---|
| 203 | // Add/edit a group (stage 2) |
---|
| 204 | else if (isset($_POST['add_edit_group'])) |
---|
| 205 | { |
---|
| 206 | confirm_referrer('admin_groups.php'); |
---|
| 207 | |
---|
| 208 | // Is this the admin group? (special rules apply) |
---|
| 209 | $is_admin_group = (isset($_POST['group_id']) && $_POST['group_id'] == PUN_ADMIN) ? true : false; |
---|
| 210 | |
---|
| 211 | $title = trim($_POST['req_title']); |
---|
| 212 | $user_title = trim($_POST['user_title']); |
---|
| 213 | $read_board = isset($_POST['read_board']) ? intval($_POST['read_board']) : '1'; |
---|
| 214 | $post_replies = isset($_POST['post_replies']) ? intval($_POST['post_replies']) : '1'; |
---|
| 215 | $post_topics = isset($_POST['post_topics']) ? intval($_POST['post_topics']) : '1'; |
---|
| 216 | $edit_posts = isset($_POST['edit_posts']) ? intval($_POST['edit_posts']) : ($is_admin_group) ? '1' : '0'; |
---|
| 217 | $delete_posts = isset($_POST['delete_posts']) ? intval($_POST['delete_posts']) : ($is_admin_group) ? '1' : '0'; |
---|
| 218 | $delete_topics = isset($_POST['delete_topics']) ? intval($_POST['delete_topics']) : ($is_admin_group) ? '1' : '0'; |
---|
| 219 | $set_title = isset($_POST['set_title']) ? intval($_POST['set_title']) : ($is_admin_group) ? '1' : '0'; |
---|
| 220 | $search = isset($_POST['search']) ? intval($_POST['search']) : '1'; |
---|
| 221 | $search_users = isset($_POST['search_users']) ? intval($_POST['search_users']) : '1'; |
---|
| 222 | $edit_subjects_interval = isset($_POST['edit_subjects_interval']) ? intval($_POST['edit_subjects_interval']) : '0'; |
---|
| 223 | $post_flood = isset($_POST['post_flood']) ? intval($_POST['post_flood']) : '0'; |
---|
| 224 | $search_flood = isset($_POST['search_flood']) ? intval($_POST['search_flood']) : '0'; |
---|
| 225 | |
---|
| 226 | if ($title == '') |
---|
| 227 | message('Vous devez saisir un nom de groupe.'); |
---|
| 228 | |
---|
| 229 | $user_title = ($user_title != '') ? '\''.$db->escape($user_title).'\'' : 'NULL'; |
---|
| 230 | |
---|
| 231 | if ($_POST['mode'] == 'add') |
---|
| 232 | { |
---|
| 233 | $result = $db->query('SELECT 1 FROM '.$db->prefix.'groups WHERE g_title=\''.$db->escape($title).'\'') or error('Impossible de vérifier si un groupe porte déjà ce nom', __FILE__, __LINE__, $db->error()); |
---|
| 234 | if ($db->num_rows($result)) |
---|
| 235 | message('Il existe déjà un groupe nommé \''.pun_htmlspecialchars($title).'\'.'); |
---|
| 236 | |
---|
| 237 | $db->query('INSERT INTO '.$db->prefix.'groups (g_title, g_user_title, g_read_board, g_post_replies, g_post_topics, g_edit_posts, g_delete_posts, g_delete_topics, g_set_title, g_search, g_search_users, g_edit_subjects_interval, g_post_flood, g_search_flood) VALUES(\''.$db->escape($title).'\', '.$user_title.', '.$read_board.', '.$post_replies.', '.$post_topics.', '.$edit_posts.', '.$delete_posts.', '.$delete_topics.', '.$set_title.', '.$search.', '.$search_users.', '.$edit_subjects_interval.', '.$post_flood.', '.$search_flood.')') or error('Impossible d\'ajouter le groupe', __FILE__, __LINE__, $db->error()); |
---|
| 238 | $new_group_id = $db->insert_id(); |
---|
| 239 | |
---|
| 240 | // Now lets copy the forum specific permissions from the group which this group is based on |
---|
| 241 | $result = $db->query('SELECT forum_id, read_forum, post_replies, post_topics FROM '.$db->prefix.'forum_perms WHERE group_id='.intval($_POST['base_group'])) or error('Impossible de retrouver la liste des permissions de groupes du forum', __FILE__, __LINE__, $db->error()); |
---|
| 242 | while ($cur_forum_perm = $db->fetch_assoc($result)) |
---|
| 243 | $db->query('INSERT INTO '.$db->prefix.'forum_perms (group_id, forum_id, read_forum, post_replies, post_topics) VALUES('.$new_group_id.', '.$cur_forum_perm['forum_id'].', '.$cur_forum_perm['read_forum'].', '.$cur_forum_perm['post_replies'].', '.$cur_forum_perm['post_topics'].')') or error('Impossible d\'insérer les permissions de groupes du forum', __FILE__, __LINE__, $db->error()); |
---|
| 244 | } |
---|
| 245 | else |
---|
| 246 | { |
---|
| 247 | $result = $db->query('SELECT 1 FROM '.$db->prefix.'groups WHERE g_title=\''.$db->escape($title).'\' AND g_id!='.intval($_POST['group_id'])) or error('impossible de vérifier une éventuelle collision des titres de groupes', __FILE__, __LINE__, $db->error()); |
---|
| 248 | if ($db->num_rows($result)) |
---|
| 249 | message('Il existe déjà un groupe nommé \''.pun_htmlspecialchars($title).'\'.'); |
---|
| 250 | |
---|
| 251 | $db->query('UPDATE '.$db->prefix.'groups SET g_title=\''.$db->escape($title).'\', g_user_title='.$user_title.', g_read_board='.$read_board.', g_post_replies='.$post_replies.', g_post_topics='.$post_topics.', g_edit_posts='.$edit_posts.', g_delete_posts='.$delete_posts.', g_delete_topics='.$delete_topics.', g_set_title='.$set_title.', g_search='.$search.', g_search_users='.$search_users.', g_edit_subjects_interval='.$edit_subjects_interval.', g_post_flood='.$post_flood.', g_search_flood='.$search_flood.' WHERE g_id='.intval($_POST['group_id'])) or error('Impossible de modifier le groupe', __FILE__, __LINE__, $db->error()); |
---|
| 252 | } |
---|
| 253 | |
---|
| 254 | // Regenerate the quickjump cache |
---|
| 255 | require_once PUN_ROOT.'include/cache.php'; |
---|
| 256 | generate_quickjump_cache(); |
---|
| 257 | |
---|
| 258 | redirect('admin_groups.php', 'Groupe '.(($_POST['mode'] == 'edit') ? 'modifié' : 'ajouté').'. Redirection ...'); |
---|
| 259 | } |
---|
| 260 | |
---|
| 261 | |
---|
| 262 | // Set default group |
---|
| 263 | else if (isset($_POST['set_default_group'])) |
---|
| 264 | { |
---|
| 265 | confirm_referrer('admin_groups.php'); |
---|
| 266 | |
---|
| 267 | $group_id = intval($_POST['default_group']); |
---|
| 268 | if ($group_id < 1) |
---|
| 269 | message($lang_common['Bad request']); |
---|
| 270 | |
---|
| 271 | $db->query('UPDATE '.$db->prefix.'config SET conf_value='.$group_id.' WHERE conf_name=\'o_default_user_group\'') or error('Impossible de modifier la configuration des forums', __FILE__, __LINE__, $db->error()); |
---|
| 272 | |
---|
| 273 | // Regenerate the config cache |
---|
| 274 | require_once PUN_ROOT.'include/cache.php'; |
---|
| 275 | generate_config_cache(); |
---|
| 276 | |
---|
| 277 | redirect('admin_groups.php', 'Groupe par défaut réglé. Redirection ...'); |
---|
| 278 | } |
---|
| 279 | |
---|
| 280 | |
---|
| 281 | // Remove a group |
---|
| 282 | else if (isset($_GET['del_group'])) |
---|
| 283 | { |
---|
| 284 | confirm_referrer('admin_groups.php'); |
---|
| 285 | |
---|
| 286 | $group_id = intval($_GET['del_group']); |
---|
| 287 | if ($group_id < 5) |
---|
| 288 | message($lang_common['Bad request']); |
---|
| 289 | |
---|
| 290 | // Make sure we don't remove the default group |
---|
| 291 | if ($group_id == $pun_config['o_default_user_group']) |
---|
| 292 | message('Le groupe par défaut ne peut être supprimé. Vous devez d\'abord définir un groupe par défaut différent.'); |
---|
| 293 | |
---|
| 294 | |
---|
| 295 | // Check if this group has any members |
---|
| 296 | $result = $db->query('SELECT g.g_title, COUNT(u.id) FROM '.$db->prefix.'groups AS g INNER JOIN '.$db->prefix.'users AS u ON g.g_id=u.group_id WHERE g.g_id='.$group_id.' GROUP BY g.g_id, g_title') or error('Impossible de retrouver les informations du groupe', __FILE__, __LINE__, $db->error()); |
---|
| 297 | |
---|
| 298 | // If the group doesn't have any members or if we've already selected a group to move the members to |
---|
| 299 | if (!$db->num_rows($result) || isset($_POST['del_group'])) |
---|
| 300 | { |
---|
| 301 | if (isset($_POST['del_group'])) |
---|
| 302 | { |
---|
| 303 | $move_to_group = intval($_POST['move_to_group']); |
---|
| 304 | $db->query('UPDATE '.$db->prefix.'users SET group_id='.$move_to_group.' WHERE group_id='.$group_id) or error('Impossible de déplacer les utilisateurs dans le groupe', __FILE__, __LINE__, $db->error()); |
---|
| 305 | } |
---|
| 306 | |
---|
| 307 | // Delete the group and any forum specific permissions |
---|
| 308 | $db->query('DELETE FROM '.$db->prefix.'groups WHERE g_id='.$group_id) or error('Impossible de supprimer le groupe', __FILE__, __LINE__, $db->error()); |
---|
| 309 | $db->query('DELETE FROM '.$db->prefix.'forum_perms WHERE group_id='.$group_id) or error('Impossible de supprimer les permissions de groupe du forum', __FILE__, __LINE__, $db->error()); |
---|
| 310 | |
---|
| 311 | // Regenerate the quickjump cache |
---|
| 312 | require_once PUN_ROOT.'include/cache.php'; |
---|
| 313 | generate_quickjump_cache(); |
---|
| 314 | |
---|
| 315 | redirect('admin_groups.php', 'Groupe supprimé. Redirection ...'); |
---|
| 316 | } |
---|
| 317 | |
---|
| 318 | |
---|
| 319 | list($group_title, $group_members) = $db->fetch_row($result); |
---|
| 320 | |
---|
| 321 | $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Groupes'; |
---|
| 322 | require PUN_ROOT.'header.php'; |
---|
| 323 | |
---|
| 324 | generate_admin_menu('groups'); |
---|
| 325 | |
---|
| 326 | ?> |
---|
| 327 | <div class="blockform"> |
---|
| 328 | <h2><span>Supprimer groupe</span></h2> |
---|
| 329 | <div class="box"> |
---|
| 330 | <form id="groups" method="post" action="admin_groups.php?del_group=<?php echo $group_id ?>"> |
---|
| 331 | <div class="inform"> |
---|
| 332 | <fieldset> |
---|
| 333 | <legend>Déplacer les utilisateur de ce groupe</legend> |
---|
| 334 | <div class="infldset"> |
---|
| 335 | <p>Il y a actuellement <?php echo $group_members ?> membres dans le groupe "<?php echo pun_htmlspecialchars($group_title) ?>". Veuillez sélectionner un groupe dans lequel ces utilisateurs seront déplacés.</p> |
---|
| 336 | <label>Déplacer les utilisateurs dans |
---|
| 337 | <select name="move_to_group"> |
---|
| 338 | <?php |
---|
| 339 | |
---|
| 340 | $result = $db->query('SELECT g_id, g_title FROM '.$db->prefix.'groups WHERE g_id!='.PUN_GUEST.' AND g_id!='.$group_id.' ORDER BY g_title') or error('Impossible de retrouver la liste des groupes', __FILE__, __LINE__, $db->error()); |
---|
| 341 | |
---|
| 342 | while ($cur_group = $db->fetch_assoc($result)) |
---|
| 343 | { |
---|
| 344 | if ($cur_group['g_id'] == PUN_MEMBER) // Pre-select the pre-defined Members group |
---|
| 345 | echo "\t\t\t\t\t\t\t\t\t\t".'<option value="'.$cur_group['g_id'].'" selected="selected">'.pun_htmlspecialchars($cur_group['g_title']).'</option>'."\n"; |
---|
| 346 | else |
---|
| 347 | echo "\t\t\t\t\t\t\t\t\t\t".'<option value="'.$cur_group['g_id'].'">'.pun_htmlspecialchars($cur_group['g_title']).'</option>'."\n"; |
---|
| 348 | } |
---|
| 349 | |
---|
| 350 | ?> |
---|
| 351 | </select> |
---|
| 352 | </br></label> |
---|
| 353 | </div> |
---|
| 354 | </fieldset> |
---|
| 355 | </div> |
---|
| 356 | <p><input type="submit" name="del_group" value=" Supprimer groupe " /></p> |
---|
| 357 | </form> |
---|
| 358 | </div> |
---|
| 359 | </div> |
---|
| 360 | <div class="clearer"></div> |
---|
| 361 | </div> |
---|
| 362 | <?php |
---|
| 363 | |
---|
| 364 | require PUN_ROOT.'footer.php'; |
---|
| 365 | } |
---|
| 366 | |
---|
| 367 | |
---|
| 368 | $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Groupes'; |
---|
| 369 | require PUN_ROOT.'header.php'; |
---|
| 370 | |
---|
| 371 | generate_admin_menu('groups'); |
---|
| 372 | |
---|
| 373 | ?> |
---|
| 374 | <div class="blockform"> |
---|
| 375 | <h2><span>Ajouter/régler groupes</span></h2> |
---|
| 376 | <div class="box"> |
---|
| 377 | <form id="groups" method="post" action="admin_groups.php?action=foo"> |
---|
| 378 | <div class="inform"> |
---|
| 379 | <fieldset> |
---|
| 380 | <legend>Ajouter un groupe</legend> |
---|
| 381 | <div class="infldset"> |
---|
| 382 | <table class="aligntop" cellspacing="0"> |
---|
| 383 | <tr> |
---|
| 384 | <th scope="row">Nouveau groupe basé sur le groupe<div><input type="submit" name="add_group" value=" Ajouter " tabindex="2" /></div></th> |
---|
| 385 | <td> |
---|
| 386 | <select id="base_group" name="base_group" tabindex="1"> |
---|
| 387 | <?php |
---|
| 388 | |
---|
| 389 | $result = $db->query('SELECT g_id, g_title FROM '.$db->prefix.'groups WHERE g_id>'.PUN_GUEST.' ORDER BY g_title') or error('Impossible de retrouver la liste des groupes', __FILE__, __LINE__, $db->error()); |
---|
| 390 | |
---|
| 391 | while ($cur_group = $db->fetch_assoc($result)) |
---|
| 392 | { |
---|
| 393 | if ($cur_group['g_id'] == $pun_config['o_default_user_group']) |
---|
| 394 | echo "\t\t\t\t\t\t\t\t\t\t\t".'<option value="'.$cur_group['g_id'].'" selected="selected">'.pun_htmlspecialchars($cur_group['g_title']).'</option>'."\n"; |
---|
| 395 | else |
---|
| 396 | echo "\t\t\t\t\t\t\t\t\t\t\t".'<option value="'.$cur_group['g_id'].'">'.pun_htmlspecialchars($cur_group['g_title']).'</option>'."\n"; |
---|
| 397 | } |
---|
| 398 | |
---|
| 399 | ?> |
---|
| 400 | </select> |
---|
| 401 | <span>Choisissez un groupe d'utilisateurs duquel le nouveau groupe héritera les propriétés. La page suivante vous permettra d'affiner ces réglages.</span> |
---|
| 402 | </td> |
---|
| 403 | </tr> |
---|
| 404 | </table> |
---|
| 405 | </div> |
---|
| 406 | </fieldset> |
---|
| 407 | </div> |
---|
| 408 | <div class="inform"> |
---|
| 409 | <fieldset> |
---|
| 410 | <legend>Définir le groupe par défaut</legend> |
---|
| 411 | <div class="infldset"> |
---|
| 412 | <table class="aligntop" cellspacing="0"> |
---|
| 413 | <tr> |
---|
| 414 | <th scope="row">Groupe par défaut<div><input type="submit" name="set_default_group" value=" Enregistrer " tabindex="4" /></div></th> |
---|
| 415 | <td> |
---|
| 416 | <select id="default_group" name="default_group" tabindex="3"> |
---|
| 417 | <?php |
---|
| 418 | |
---|
| 419 | $result = $db->query('SELECT g_id, g_title FROM '.$db->prefix.'groups WHERE g_id>'.PUN_GUEST.' ORDER BY g_title') or error('Impossible de retrouver la liste des groupes', __FILE__, __LINE__, $db->error()); |
---|
| 420 | |
---|
| 421 | while ($cur_group = $db->fetch_assoc($result)) |
---|
| 422 | { |
---|
| 423 | if ($cur_group['g_id'] == $pun_config['o_default_user_group']) |
---|
| 424 | echo "\t\t\t\t\t\t\t\t\t\t\t".'<option value="'.$cur_group['g_id'].'" selected="selected">'.pun_htmlspecialchars($cur_group['g_title']).'</option>'."\n"; |
---|
| 425 | else |
---|
| 426 | echo "\t\t\t\t\t\t\t\t\t\t\t".'<option value="'.$cur_group['g_id'].'">'.pun_htmlspecialchars($cur_group['g_title']).'</option>'."\n"; |
---|
| 427 | } |
---|
| 428 | |
---|
| 429 | ?> |
---|
| 430 | </select> |
---|
| 431 | <span>Choisissez le groupe que vous voulez définir par défaut. C'est à dire le groupe où les utilisateurs seront placés quand ils s'inscriront. Pour des raisons de sécurité, par défaut les utilisateurs ne peuvent être mis ni dans le groupe modérateur ni dans le groupe administrateur.</span> |
---|
| 432 | </td> |
---|
| 433 | </tr> |
---|
| 434 | </table> |
---|
| 435 | </div> |
---|
| 436 | </fieldset> |
---|
| 437 | </div> |
---|
| 438 | </form> |
---|
| 439 | </div> |
---|
| 440 | |
---|
| 441 | <h2 class="block2"><span>Groupes existants</span></h2> |
---|
| 442 | <div class="box"> |
---|
| 443 | <div class="fakeform"> |
---|
| 444 | <div class="inform"> |
---|
| 445 | <fieldset> |
---|
| 446 | <legend>Modifier/supprimer les groupes</legend> |
---|
| 447 | <div class="infldset"> |
---|
| 448 | <p>Les groupes pré-définis Invités, Administrateurs, Modérateurs et Membres ne peuvent être supprimés. Il peuvent par contre être modifiés. Mais suivant le groupe certaines options ne sont pas disponibles (<abbr title="exemple">ex.</abbr> la permission <em>modifier messages</em> pour les invités). Les Administrateurs ont toujours toutes les permisssions.</p> |
---|
| 449 | <table cellspacing="0"> |
---|
| 450 | <?php |
---|
| 451 | |
---|
| 452 | $result = $db->query('SELECT g_id, g_title FROM '.$db->prefix.'groups ORDER BY g_id') or error('Impossible de retrouver la liste des groupes', __FILE__, __LINE__, $db->error()); |
---|
| 453 | |
---|
| 454 | while ($cur_group = $db->fetch_assoc($result)) |
---|
| 455 | echo "\t\t\t\t\t\t\t\t".'<tr><th scope="row"><a href="admin_groups.php?edit_group='.$cur_group['g_id'].'">Modifier</a>'.(($cur_group['g_id'] > PUN_MEMBER) ? ' - <a href="admin_groups.php?del_group='.$cur_group['g_id'].'">Supprimer</a>' : '').'</th><td>'.pun_htmlspecialchars($cur_group['g_title']).'</td></tr>'."\n"; |
---|
| 456 | |
---|
| 457 | ?> |
---|
| 458 | </table> |
---|
| 459 | </div> |
---|
| 460 | </fieldset> |
---|
| 461 | </div> |
---|
| 462 | </div> |
---|
| 463 | </div> |
---|
| 464 | </div> |
---|
| 465 | <div class="clearer"></div> |
---|
| 466 | </div> |
---|
| 467 | <?php |
---|
| 468 | |
---|
| 469 | require PUN_ROOT.'footer.php'; |
---|