Verzeichnisstruktur phpBB-2.0.0


Veröffentlicht
03.04.2002

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

      (Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

admin_groups.php

Zuletzt modifiziert: 09.10.2024, 12:51 - Dateigröße: 13.42 KiB


 001  <?php
 002  /***************************************************************************
 003   *                             admin_groups.php
 004   *                            -------------------
 005   *   begin                : Saturday, Feb 13, 2001
 006   *   copyright            : (C) 2001 The phpBB Group
 007   *   email                : support@phpbb.com
 008   *
 009   *   $Id$
 010   *
 011   *
 012   ***************************************************************************/
 013   
 014  /***************************************************************************
 015   *
 016   *   This program is free software; you can redistribute it and/or modify
 017   *   it under the terms of the GNU General Public License as published by
 018   *   the Free Software Foundation; either version 2 of the License, or
 019   *   (at your option) any later version.
 020   *
 021   ***************************************************************************/
 022   
 023  define('IN_PHPBB', 1);
 024   
 025  if ( !empty($setmodules) )
 026  {
 027      $filename = basename(__FILE__);
 028      $module['Groups']['Manage'] = $filename;
 029   
 030      return;
 031  }
 032   
 033  //
 034  // Load default header
 035  //
 036  $phpbb_root_path = './../';
 037  require($phpbb_root_path . 'extension.inc');
 038  require('./pagestart.' . $phpEx);
 039   
 040  if ( isset($HTTP_POST_VARS[POST_GROUPS_URL]) || isset($HTTP_GET_VARS[POST_GROUPS_URL]) )
 041  {
 042      $group_id = ( isset($HTTP_POST_VARS[POST_GROUPS_URL]) ) ? intval($HTTP_POST_VARS[POST_GROUPS_URL]) : intval($HTTP_GET_VARS[POST_GROUPS_URL]);
 043  }
 044  else
 045  {
 046      $group_id = 0;
 047  }
 048   
 049  if ( isset($HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']) )
 050  {
 051      $mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
 052      $mode = htmlspecialchars($mode);
 053  }
 054  else
 055  {
 056      $mode = '';
 057  }
 058   
 059  if ( isset($HTTP_POST_VARS['edit']) || isset($HTTP_POST_VARS['new']) )
 060  {
 061      //
 062      // Ok they are editing a group or creating a new group
 063      //
 064      $template->set_filenames(array(
 065          'body' => 'admin/group_edit_body.tpl')
 066      );
 067   
 068      if ( isset($HTTP_POST_VARS['edit']) )
 069      {
 070          //
 071          // They're editing. Grab the vars.
 072          //
 073          $sql = "SELECT *
 074              FROM " . GROUPS_TABLE . "
 075              WHERE group_single_user <> " . TRUE . "
 076              AND group_id = $group_id";
 077          if ( !($result = $db->sql_query($sql)) )
 078          {
 079              message_die(GENERAL_ERROR, 'Error getting group information', '', __LINE__, __FILE__, $sql);
 080          }
 081   
 082          if ( !($group_info = $db->sql_fetchrow($result)) )
 083          {
 084              message_die(GENERAL_MESSAGE, $lang['Group_not_exist']);
 085          }
 086   
 087          $mode = 'editgroup';
 088          $template->assign_block_vars('group_edit', array());
 089   
 090      }
 091      else if ( isset($HTTP_POST_VARS['new']) )
 092      {
 093          $group_info = array (
 094              'group_name' => '',
 095              'group_description' => '',
 096              'group_moderator' => '',
 097              'group_type' => GROUP_OPEN);
 098          $group_open = ' checked="checked"';
 099   
 100          $mode = 'newgroup';
 101   
 102      }
 103   
 104      //
 105      // Ok, now we know everything about them, let's show the page.
 106      //
 107      if ($group_info['group_moderator'] != '')
 108      {
 109          $sql = "SELECT user_id, username
 110              FROM " . USERS_TABLE . "
 111              WHERE user_id = " . $group_info['group_moderator'];
 112          if ( !($result = $db->sql_query($sql)) )
 113          {
 114              message_die(GENERAL_ERROR, 'Could not obtain user info for moderator list', '', __LINE__, __FILE__, $sql);
 115          }
 116   
 117          if ( !($row = $db->sql_fetchrow($result)) )
 118          {
 119              message_die(GENERAL_ERROR, 'Could not obtain user info for moderator list', '', __LINE__, __FILE__, $sql);
 120          }
 121   
 122          $group_moderator = $row['username'];
 123      }
 124      else
 125      {
 126          $group_moderator = '';
 127      }
 128   
 129      $group_open = ( $group_info['group_type'] == GROUP_OPEN ) ? ' checked="checked"' : '';
 130      $group_closed = ( $group_info['group_type'] == GROUP_CLOSED ) ? ' checked="checked"' : '';
 131      $group_hidden = ( $group_info['group_type'] == GROUP_HIDDEN ) ? ' checked="checked"' : '';
 132   
 133      $s_hidden_fields = '<input type="hidden" name="mode" value="' . $mode . '" /><input type="hidden" name="' . POST_GROUPS_URL . '" value="' . $group_id . '" />';
 134   
 135      $template->assign_vars(array(
 136          'GROUP_NAME' => $group_info['group_name'],
 137          'GROUP_DESCRIPTION' => $group_info['group_description'], 
 138          'GROUP_MODERATOR' => $group_moderator, 
 139   
 140          'L_GROUP_TITLE' => $lang['Group_administration'],
 141          'L_GROUP_EDIT_DELETE' => ( isset($HTTP_POST_VARS['new']) ) ? $lang['New_group'] : $lang['Edit_group'], 
 142          'L_GROUP_NAME' => $lang['group_name'],
 143          'L_GROUP_DESCRIPTION' => $lang['group_description'],
 144          'L_GROUP_MODERATOR' => $lang['group_moderator'], 
 145          'L_FIND_USERNAME' => $lang['Find_username'], 
 146          'L_GROUP_STATUS' => $lang['group_status'],
 147          'L_GROUP_OPEN' => $lang['group_open'],
 148          'L_GROUP_CLOSED' => $lang['group_closed'],
 149          'L_GROUP_HIDDEN' => $lang['group_hidden'],
 150          'L_GROUP_DELETE' => $lang['group_delete'],
 151          'L_GROUP_DELETE_CHECK' => $lang['group_delete_check'],
 152          'L_SUBMIT' => $lang['Submit'],
 153          'L_RESET' => $lang['Reset'],
 154          'L_DELETE_MODERATOR' => $lang['delete_group_moderator'],
 155          'L_DELETE_MODERATOR_EXPLAIN' => $lang['delete_moderator_explain'],
 156          'L_YES' => $lang['Yes'],
 157   
 158          'U_SEARCH_USER' => append_sid("../search.$phpEx?mode=searchuser"), 
 159   
 160          'S_GROUP_OPEN_TYPE' => GROUP_OPEN,
 161          'S_GROUP_CLOSED_TYPE' => GROUP_CLOSED,
 162          'S_GROUP_HIDDEN_TYPE' => GROUP_HIDDEN,
 163          'S_GROUP_OPEN_CHECKED' => $group_open,
 164          'S_GROUP_CLOSED_CHECKED' => $group_closed,
 165          'S_GROUP_HIDDEN_CHECKED' => $group_hidden,
 166          'S_GROUP_ACTION' => append_sid("admin_groups.$phpEx"),
 167          'S_HIDDEN_FIELDS' => $s_hidden_fields)
 168      );
 169   
 170      $template->pparse('body');
 171   
 172  }
 173  else if ( isset($HTTP_POST_VARS['group_update']) )
 174  {
 175      //
 176      // Ok, they are submitting a group, let's save the data based on if it's new or editing
 177      //
 178      if ( isset($HTTP_POST_VARS['group_delete']) )
 179      {
 180          //
 181          // Reset User Moderator Level
 182          //
 183   
 184          // Is Group moderating a forum ?
 185          $sql = "SELECT auth_mod FROM " . AUTH_ACCESS_TABLE . " 
 186              WHERE group_id = " . $group_id;
 187          if ( !($result = $db->sql_query($sql)) )
 188          {
 189              message_die(GENERAL_ERROR, 'Could not select auth_access', '', __LINE__, __FILE__, $sql);
 190          }
 191   
 192          $row = $db->sql_fetchrow($result);
 193          if (intval($row['auth_mod']) == 1)
 194          {
 195              // Yes, get the assigned users and update their Permission if they are no longer moderator of one of the forums
 196              $sql = "SELECT user_id FROM " . USER_GROUP_TABLE . "
 197                  WHERE group_id = " . $group_id;
 198              if ( !($result = $db->sql_query($sql)) )
 199              {
 200                  message_die(GENERAL_ERROR, 'Could not select user_group', '', __LINE__, __FILE__, $sql);
 201              }
 202   
 203              $rows = $db->sql_fetchrowset($result);
 204              for ($i = 0; $i < count($rows); $i++)
 205              {
 206                  $sql = "SELECT g.group_id FROM " . AUTH_ACCESS_TABLE . " a, " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug
 207                  WHERE (a.auth_mod = 1) AND (g.group_id = a.group_id) AND (a.group_id = ug.group_id) AND (g.group_id = ug.group_id) 
 208                      AND (ug.user_id = " . intval($rows[$i]['user_id']) . ") AND (ug.group_id <> " . $group_id . ")";
 209                  if ( !($result = $db->sql_query($sql)) )
 210                  {
 211                      message_die(GENERAL_ERROR, 'Could not obtain moderator permissions', '', __LINE__, __FILE__, $sql);
 212                  }
 213   
 214                  if ($db->sql_numrows($result) == 0)
 215                  {
 216                      $sql = "UPDATE " . USERS_TABLE . " SET user_level = " . USER . " 
 217                      WHERE user_level = " . MOD . " AND user_id = " . intval($rows[$i]['user_id']);
 218                      
 219                      if ( !$db->sql_query($sql) )
 220                      {
 221                          message_die(GENERAL_ERROR, 'Could not update moderator permissions', '', __LINE__, __FILE__, $sql);
 222                      }
 223                  }
 224              }
 225          }
 226   
 227          //
 228          // Delete Group
 229          //
 230          $sql = "DELETE FROM " . GROUPS_TABLE . "
 231              WHERE group_id = " . $group_id;
 232          if ( !$db->sql_query($sql) )
 233          {
 234              message_die(GENERAL_ERROR, 'Could not update group', '', __LINE__, __FILE__, $sql);
 235          }
 236   
 237          $sql = "DELETE FROM " . USER_GROUP_TABLE . "
 238              WHERE group_id = " . $group_id;
 239          if ( !$db->sql_query($sql) )
 240          {
 241              message_die(GENERAL_ERROR, 'Could not update user_group', '', __LINE__, __FILE__, $sql);
 242          }
 243   
 244          $sql = "DELETE FROM " . AUTH_ACCESS_TABLE . "
 245              WHERE group_id = " . $group_id;
 246          if ( !$db->sql_query($sql) )
 247          {
 248              message_die(GENERAL_ERROR, 'Could not update auth_access', '', __LINE__, __FILE__, $sql);
 249          }
 250   
 251          $message = $lang['Deleted_group'] . '<br /><br />' . sprintf($lang['Click_return_groupsadmin'], '<a href="' . append_sid("admin_groups.$phpEx") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>');
 252   
 253          message_die(GENERAL_MESSAGE, $message);
 254      }
 255      else
 256      {
 257          $group_type = isset($HTTP_POST_VARS['group_type']) ? intval($HTTP_POST_VARS['group_type']) : GROUP_OPEN;
 258          $group_name = isset($HTTP_POST_VARS['group_name']) ? htmlspecialchars(trim($HTTP_POST_VARS['group_name'])) : '';
 259          $group_description = isset($HTTP_POST_VARS['group_description']) ? trim($HTTP_POST_VARS['group_description']) : '';
 260          $group_moderator = isset($HTTP_POST_VARS['username']) ? $HTTP_POST_VARS['username'] : '';
 261          $delete_old_moderator = isset($HTTP_POST_VARS['delete_old_moderator']) ? true : false;
 262   
 263          if ( $group_name == '' )
 264          {
 265              message_die(GENERAL_MESSAGE, $lang['No_group_name']);
 266          }
 267          else if ( $group_moderator == '' )
 268          {
 269              message_die(GENERAL_MESSAGE, $lang['No_group_moderator']);
 270          }
 271          
 272          $this_userdata = get_userdata($group_moderator, true);
 273          $group_moderator = $this_userdata['user_id'];
 274   
 275          if ( !$group_moderator )
 276          {
 277              message_die(GENERAL_MESSAGE, $lang['No_group_moderator']);
 278          }
 279                  
 280          if( $mode == "editgroup" )
 281          {
 282              $sql = "SELECT *
 283                  FROM " . GROUPS_TABLE . "
 284                  WHERE group_single_user <> " . TRUE . "
 285                  AND group_id = " . $group_id;
 286              if ( !($result = $db->sql_query($sql)) )
 287              {
 288                  message_die(GENERAL_ERROR, 'Error getting group information', '', __LINE__, __FILE__, $sql);
 289              }
 290   
 291              if( !($group_info = $db->sql_fetchrow($result)) )
 292              {
 293                  message_die(GENERAL_MESSAGE, $lang['Group_not_exist']);
 294              }
 295          
 296              if ( $group_info['group_moderator'] != $group_moderator )
 297              {
 298                  if ( $delete_old_moderator )
 299                  {
 300                      $sql = "DELETE FROM " . USER_GROUP_TABLE . "
 301                          WHERE user_id = " . $group_info['group_moderator'] . " 
 302                              AND group_id = " . $group_id;
 303                      if ( !$db->sql_query($sql) )
 304                      {
 305                          message_die(GENERAL_ERROR, 'Could not update group moderator', '', __LINE__, __FILE__, $sql);
 306                      }
 307                  }
 308   
 309                  $sql = "SELECT user_id 
 310                      FROM " . USER_GROUP_TABLE . " 
 311                      WHERE user_id = $group_moderator 
 312                          AND group_id = $group_id";
 313                  if ( !($result = $db->sql_query($sql)) )
 314                  {
 315                      message_die(GENERAL_ERROR, 'Failed to obtain current group moderator info', '', __LINE__, __FILE__, $sql);
 316                  }
 317   
 318                  if ( !($row = $db->sql_fetchrow($result)) )
 319                  {
 320                      $sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending)
 321                          VALUES (" . $group_id . ", " . $group_moderator . ", 0)";
 322                      if ( !$db->sql_query($sql) )
 323                      {
 324                          message_die(GENERAL_ERROR, 'Could not update group moderator', '', __LINE__, __FILE__, $sql);
 325                      }
 326                  }
 327              }
 328   
 329              $sql = "UPDATE " . GROUPS_TABLE . "
 330                  SET group_type = $group_type, group_name = '" . str_replace("\'", "''", $group_name) . "', group_description = '" . str_replace("\'", "''", $group_description) . "', group_moderator = $group_moderator 
 331                  WHERE group_id = $group_id";
 332              if ( !$db->sql_query($sql) )
 333              {
 334                  message_die(GENERAL_ERROR, 'Could not update group', '', __LINE__, __FILE__, $sql);
 335              }
 336      
 337              $message = $lang['Updated_group'] . '<br /><br />' . sprintf($lang['Click_return_groupsadmin'], '<a href="' . append_sid("admin_groups.$phpEx") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>');;
 338   
 339              message_die(GENERAL_MESSAGE, $message);
 340          }
 341          else if( $mode == 'newgroup' )
 342          {
 343              $sql = "INSERT INTO " . GROUPS_TABLE . " (group_type, group_name, group_description, group_moderator, group_single_user) 
 344                  VALUES ($group_type, '" . str_replace("\'", "''", $group_name) . "', '" . str_replace("\'", "''", $group_description) . "', $group_moderator,    '0')";
 345              if ( !$db->sql_query($sql) )
 346              {
 347                  message_die(GENERAL_ERROR, 'Could not insert new group', '', __LINE__, __FILE__, $sql);
 348              }
 349              $new_group_id = $db->sql_nextid();
 350   
 351              $sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending)
 352                  VALUES ($new_group_id, $group_moderator, 0)";
 353              if ( !$db->sql_query($sql) )
 354              {
 355                  message_die(GENERAL_ERROR, 'Could not insert new user-group info', '', __LINE__, __FILE__, $sql);
 356              }
 357              
 358              $message = $lang['Added_new_group'] . '<br /><br />' . sprintf($lang['Click_return_groupsadmin'], '<a href="' . append_sid("admin_groups.$phpEx") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>');;
 359   
 360              message_die(GENERAL_MESSAGE, $message);
 361   
 362          }
 363          else
 364          {
 365              message_die(GENERAL_MESSAGE, $lang['No_group_action']);
 366          }
 367      }
 368  }
 369  else
 370  {
 371      $sql = "SELECT group_id, group_name
 372          FROM " . GROUPS_TABLE . "
 373          WHERE group_single_user <> " . TRUE . "
 374          ORDER BY group_name";
 375      if ( !($result = $db->sql_query($sql)) )
 376      {
 377          message_die(GENERAL_ERROR, 'Could not obtain group list', '', __LINE__, __FILE__, $sql);
 378      }
 379   
 380      $select_list = '';
 381      if ( $row = $db->sql_fetchrow($result) )
 382      {
 383          $select_list .= '<select name="' . POST_GROUPS_URL . '">';
 384          do
 385          {
 386              $select_list .= '<option value="' . $row['group_id'] . '">' . $row['group_name'] . '</option>';
 387          }
 388          while ( $row = $db->sql_fetchrow($result) );
 389          $select_list .= '</select>';
 390      }
 391   
 392      $template->set_filenames(array(
 393          'body' => 'admin/group_select_body.tpl')
 394      );
 395   
 396      $template->assign_vars(array(
 397          'L_GROUP_TITLE' => $lang['Group_administration'],
 398          'L_GROUP_EXPLAIN' => $lang['Group_admin_explain'],
 399          'L_GROUP_SELECT' => $lang['Select_group'],
 400          'L_LOOK_UP' => $lang['Look_up_group'],
 401          'L_CREATE_NEW_GROUP' => $lang['New_group'],
 402   
 403          'S_GROUP_ACTION' => append_sid("admin_groups.$phpEx"),
 404          'S_GROUP_SELECT' => $select_list)
 405      );
 406   
 407      if ( $select_list != '' )
 408      {
 409          $template->assign_block_vars('select_box', array());
 410      }
 411   
 412      $template->pparse('body');
 413  }
 414   
 415  include('./page_footer_admin.'.$phpEx);
 416   
 417  ?>
 418