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_ug_auth.php

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


 0001  <?php
 0002  /***************************************************************************
 0003   *                            admin_ug_auth.php
 0004   *                            -------------------
 0005   *   begin                : Saturday, Feb 13, 2001
 0006   *   copyright            : (C) 2001 The phpBB Group
 0007   *   email                : support@phpbb.com
 0008   *
 0009   *   $Id$
 0010   *
 0011   *
 0012   ***************************************************************************/
 0013   
 0014  /***************************************************************************
 0015   *
 0016   *   This program is free software; you can redistribute it and/or modify
 0017   *   it under the terms of the GNU General Public License as published by
 0018   *   the Free Software Foundation; either version 2 of the License, or
 0019   *   (at your option) any later version.
 0020   *
 0021   ***************************************************************************/
 0022   
 0023  define('IN_PHPBB', 1);
 0024   
 0025  if( !empty($setmodules) )
 0026  {
 0027      $filename = basename(__FILE__);
 0028      $module['Users']['Permissions'] = $filename . "?mode=user";
 0029      $module['Groups']['Permissions'] = $filename . "?mode=group";
 0030   
 0031      return;
 0032  }
 0033   
 0034  //
 0035  // Load default header
 0036  //
 0037  $no_page_header = TRUE;
 0038   
 0039  $phpbb_root_path = "./../";
 0040  require($phpbb_root_path . 'extension.inc');
 0041  require('./pagestart.' . $phpEx);
 0042   
 0043  $params = array('mode' => 'mode', 'user_id' => POST_USERS_URL, 'group_id' => POST_GROUPS_URL, 'adv' => 'adv');
 0044   
 0045  while( list($var, $param) = @each($params) )
 0046  {
 0047      if ( !empty($HTTP_POST_VARS[$param]) || !empty($HTTP_GET_VARS[$param]) )
 0048      {
 0049          $$var = ( !empty($HTTP_POST_VARS[$param]) ) ? $HTTP_POST_VARS[$param] : $HTTP_GET_VARS[$param];
 0050      }
 0051      else
 0052      {
 0053          $$var = "";
 0054      }
 0055  }
 0056   
 0057  $user_id = intval($user_id);
 0058  $group_id = intval($group_id);
 0059  $adv = intval($adv);
 0060  $mode = htmlspecialchars($mode);
 0061   
 0062  //
 0063  // Start program - define vars
 0064  //
 0065  $forum_auth_fields = array('auth_view', 'auth_read', 'auth_post', 'auth_reply', 'auth_edit', 'auth_delete', 'auth_sticky', 'auth_announce', 'auth_vote', 'auth_pollcreate');
 0066   
 0067  $auth_field_match = array(
 0068      'auth_view' => AUTH_VIEW,
 0069      'auth_read' => AUTH_READ,
 0070      'auth_post' => AUTH_POST,
 0071      'auth_reply' => AUTH_REPLY,
 0072      'auth_edit' => AUTH_EDIT,
 0073      'auth_delete' => AUTH_DELETE,
 0074      'auth_sticky' => AUTH_STICKY,
 0075      'auth_announce' => AUTH_ANNOUNCE, 
 0076      'auth_vote' => AUTH_VOTE, 
 0077      'auth_pollcreate' => AUTH_POLLCREATE);
 0078   
 0079  $field_names = array(
 0080      'auth_view' => $lang['View'],
 0081      'auth_read' => $lang['Read'],
 0082      'auth_post' => $lang['Post'],
 0083      'auth_reply' => $lang['Reply'],
 0084      'auth_edit' => $lang['Edit'],
 0085      'auth_delete' => $lang['Delete'],
 0086      'auth_sticky' => $lang['Sticky'],
 0087      'auth_announce' => $lang['Announce'], 
 0088      'auth_vote' => $lang['Vote'], 
 0089      'auth_pollcreate' => $lang['Pollcreate']);
 0090   
 0091  // ---------------
 0092  // Start Functions
 0093  //
 0094  function check_auth($type, $key, $u_access, $is_admin)
 0095  {
 0096      $auth_user = 0;
 0097   
 0098      if( count($u_access) )
 0099      {
 0100          for($j = 0; $j < count($u_access); $j++)
 0101          {
 0102              $result = 0;
 0103              switch($type)
 0104              {
 0105                  case AUTH_ACL:
 0106                      $result = $u_access[$j][$key];
 0107   
 0108                  case AUTH_MOD:
 0109                      $result = $result || $u_access[$j]['auth_mod'];
 0110   
 0111                  case AUTH_ADMIN:
 0112                      $result = $result || $is_admin;
 0113                      break;
 0114              }
 0115   
 0116              $auth_user = $auth_user || $result;
 0117          }
 0118      }
 0119      else
 0120      {
 0121          $auth_user = $is_admin;
 0122      }
 0123   
 0124      return $auth_user;
 0125  }
 0126  //
 0127  // End Functions
 0128  // -------------
 0129   
 0130  if ( isset($HTTP_POST_VARS['submit']) && ( ( $mode == 'user' && $user_id ) || ( $mode == 'group' && $group_id ) ) )
 0131  {
 0132      $user_level = '';
 0133      if ( $mode == 'user' )
 0134      {
 0135          //
 0136          // Get group_id for this user_id
 0137          //
 0138          $sql = "SELECT g.group_id, u.user_level
 0139              FROM " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u, " . GROUPS_TABLE . " g
 0140              WHERE u.user_id = $user_id 
 0141                  AND ug.user_id = u.user_id 
 0142                  AND g.group_id = ug.group_id 
 0143                  AND g.group_single_user = " . TRUE;
 0144          if ( !($result = $db->sql_query($sql)) )
 0145          {
 0146              message_die(GENERAL_ERROR, 'Could not select info from user/user_group table', '', __LINE__, __FILE__, $sql);
 0147          }
 0148   
 0149          $row = $db->sql_fetchrow($result);
 0150   
 0151          $group_id = $row['group_id'];
 0152          $user_level = $row['user_level'];
 0153   
 0154          $db->sql_freeresult($result);
 0155      }
 0156   
 0157      //
 0158      // Carry out requests
 0159      //
 0160      if ( $mode == 'user' && $HTTP_POST_VARS['userlevel'] == 'admin' && $user_level != ADMIN )
 0161      {
 0162          //
 0163          // Make user an admin (if already user)
 0164          //
 0165          if ( $userdata['user_id'] != $user_id )
 0166          {
 0167              $sql = "UPDATE " . USERS_TABLE . "
 0168                  SET user_level = " . ADMIN . "
 0169                  WHERE user_id = $user_id";
 0170              if ( !($result = $db->sql_query($sql)) )
 0171              {
 0172                  message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql);
 0173              }
 0174   
 0175              $sql = "DELETE FROM " . AUTH_ACCESS_TABLE . "
 0176                  WHERE group_id = $group_id 
 0177                      AND auth_mod = 0";
 0178              if ( !($result = $db->sql_query($sql)) )
 0179              {
 0180                  message_die(GENERAL_ERROR, "Couldn't delete auth access info", "", __LINE__, __FILE__, $sql);
 0181              }
 0182   
 0183              //
 0184              // Delete any entries in auth_access, they are not required if user is becoming an
 0185              // admin
 0186              //
 0187              $sql = "UPDATE " . AUTH_ACCESS_TABLE . "
 0188                  SET auth_view = 0, auth_read = 0, auth_post = 0, auth_reply = 0, auth_edit = 0, auth_delete = 0, auth_sticky = 0, auth_announce = 0
 0189                  WHERE group_id = $group_id"; 
 0190              if ( !($result = $db->sql_query($sql)) )
 0191              {
 0192                  message_die(GENERAL_ERROR, "Couldn't update auth access", "", __LINE__, __FILE__, $sql);
 0193              }
 0194          }
 0195   
 0196          $message = $lang['Auth_updated'] . '<br /><br />' . sprintf($lang['Click_return_userauth'], '<a href="' . append_sid("admin_ug_auth.$phpEx?mode=$mode") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>');
 0197          message_die(GENERAL_MESSAGE, $message);
 0198      }
 0199      else
 0200      {
 0201          if ( $mode == 'user' && $HTTP_POST_VARS['userlevel'] == 'user' && $user_level == ADMIN )
 0202          {
 0203              //
 0204              // Make admin a user (if already admin) ... ignore if you're trying
 0205              // to change yourself from an admin to user!
 0206              //
 0207              if ( $userdata['user_id'] != $user_id )
 0208              {
 0209                  $sql = "UPDATE " . AUTH_ACCESS_TABLE . "
 0210                      SET auth_view = 0, auth_read = 0, auth_post = 0, auth_reply = 0, auth_edit = 0, auth_delete = 0, auth_sticky = 0, auth_announce = 0
 0211                      WHERE group_id = $group_id";
 0212                  if ( !($result = $db->sql_query($sql)) )
 0213                  {
 0214                      message_die(GENERAL_ERROR, 'Could not update auth access', '', __LINE__, __FILE__, $sql);
 0215                  }
 0216   
 0217                  //
 0218                  // Update users level, reset to USER
 0219                  //
 0220                  $sql = "UPDATE " . USERS_TABLE . "
 0221                      SET user_level = " . USER . "
 0222                      WHERE user_id = $user_id";
 0223                  if ( !($result = $db->sql_query($sql)) )
 0224                  {
 0225                      message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql);
 0226                  }
 0227              }
 0228   
 0229              $message = $lang['Auth_updated'] . '<br /><br />' . sprintf($lang['Click_return_userauth'], '<a href="' . append_sid("admin_ug_auth.$phpEx?mode=$mode") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>');
 0230          }
 0231          else
 0232          {
 0233      
 0234              $change_mod_list = ( isset($HTTP_POST_VARS['moderator']) ) ? $HTTP_POST_VARS['moderator'] : array();
 0235   
 0236              if ( empty($adv) )
 0237              {
 0238                  $sql = "SELECT f.* 
 0239                      FROM " . FORUMS_TABLE . " f, " . CATEGORIES_TABLE . " c
 0240                      WHERE f.cat_id = c.cat_id
 0241                      ORDER BY c.cat_order, f.forum_order ASC";
 0242                  if ( !($result = $db->sql_query($sql)) )
 0243                  {
 0244                      message_die(GENERAL_ERROR, "Couldn't obtain forum information", "", __LINE__, __FILE__, $sql);
 0245                  }
 0246   
 0247                  $forum_access = $forum_auth_level_fields = array();
 0248                  while( $row = $db->sql_fetchrow($result) )
 0249                  {
 0250                      $forum_access[] = $row;
 0251                  }
 0252                  $db->sql_freeresult($result);
 0253   
 0254                  for($i = 0; $i < count($forum_access); $i++)
 0255                  {
 0256                      $forum_id = $forum_access[$i]['forum_id'];
 0257   
 0258                      for($j = 0; $j < count($forum_auth_fields); $j++)
 0259                      {
 0260                          $forum_auth_level_fields[$forum_id][$forum_auth_fields[$j]] = $forum_access[$i][$forum_auth_fields[$j]] == AUTH_ACL;
 0261                      }
 0262                  }
 0263   
 0264                  while( list($forum_id, $value) = @each($HTTP_POST_VARS['private']) )
 0265                  {
 0266                      while( list($auth_field, $exists) = @each($forum_auth_level_fields[$forum_id]) )
 0267                      {
 0268                          if ($exists)
 0269                          {
 0270                              $change_acl_list[$forum_id][$auth_field] = $value;
 0271                          }
 0272                      }
 0273                  }
 0274              }
 0275              else
 0276              {
 0277                  $change_acl_list = array();
 0278                  for($j = 0; $j < count($forum_auth_fields); $j++)
 0279                  {
 0280                      $auth_field = $forum_auth_fields[$j];
 0281   
 0282                      while( list($forum_id, $value) = @each($HTTP_POST_VARS['private_' . $auth_field]) )
 0283                      {
 0284                          $change_acl_list[$forum_id][$auth_field] = $value;
 0285                      }
 0286                  }
 0287              }
 0288   
 0289              $sql = 'SELECT f.* 
 0290                  FROM ' . FORUMS_TABLE . ' f, ' . CATEGORIES_TABLE . ' c
 0291                  WHERE f.cat_id = c.cat_id
 0292                  ORDER BY c.cat_order, f.forum_order';
 0293              if ( !($result = $db->sql_query($sql)) )
 0294              {
 0295                  message_die(GENERAL_ERROR, "Couldn't obtain forum information", "", __LINE__, __FILE__, $sql);
 0296              }
 0297   
 0298              $forum_access = array();
 0299              while( $row = $db->sql_fetchrow($result) )
 0300              {
 0301                  $forum_access[] = $row;
 0302              }
 0303              $db->sql_freeresult($result);
 0304   
 0305              $sql = ( $mode == 'user' ) ? "SELECT aa.* FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE. " g WHERE ug.user_id = $user_id AND g.group_id = ug.group_id AND aa.group_id = ug.group_id AND g.group_single_user = " . TRUE : "SELECT * FROM " . AUTH_ACCESS_TABLE . " WHERE group_id = $group_id";
 0306              if ( !($result = $db->sql_query($sql)) )
 0307              {
 0308                  message_die(GENERAL_ERROR, "Couldn't obtain user/group permissions", "", __LINE__, __FILE__, $sql);
 0309              }
 0310   
 0311              $auth_access = array();
 0312              while( $row = $db->sql_fetchrow($result) )
 0313              {
 0314                  $auth_access[$row['forum_id']] = $row;
 0315              }
 0316              $db->sql_freeresult($result);
 0317   
 0318              $forum_auth_action = array();
 0319              $update_acl_status = array();
 0320              $update_mod_status = array();
 0321   
 0322              for($i = 0; $i < count($forum_access); $i++)
 0323              {
 0324                  $forum_id = $forum_access[$i]['forum_id'];
 0325   
 0326                  if ( 
 0327                      ( isset($auth_access[$forum_id]['auth_mod']) && $change_mod_list[$forum_id] != $auth_access[$forum_id]['auth_mod'] ) || 
 0328                      ( !isset($auth_access[$forum_id]['auth_mod']) && !empty($change_mod_list[$forum_id]) ) 
 0329                  )
 0330                  {
 0331                      $update_mod_status[$forum_id] = $change_mod_list[$forum_id];
 0332   
 0333                      if ( !$update_mod_status[$forum_id] )
 0334                      {
 0335                          $forum_auth_action[$forum_id] = 'delete';
 0336                      }
 0337                      else if ( !isset($auth_access[$forum_id]['auth_mod']) )
 0338                      {
 0339                          $forum_auth_action[$forum_id] = 'insert';
 0340                      }
 0341                      else
 0342                      {
 0343                          $forum_auth_action[$forum_id] = 'update';
 0344                      }
 0345                  }
 0346   
 0347                  for($j = 0; $j < count($forum_auth_fields); $j++)
 0348                  {
 0349                      $auth_field = $forum_auth_fields[$j];
 0350   
 0351                      if( $forum_access[$i][$auth_field] == AUTH_ACL && isset($change_acl_list[$forum_id][$auth_field]) )
 0352                      {
 0353                          if ( ( empty($auth_access[$forum_id]['auth_mod']) && 
 0354                              ( isset($auth_access[$forum_id][$auth_field]) && $change_acl_list[$forum_id][$auth_field] != $auth_access[$forum_id][$auth_field] ) || 
 0355                              ( !isset($auth_access[$forum_id][$auth_field]) && !empty($change_acl_list[$forum_id][$auth_field]) ) ) ||
 0356                              !empty($update_mod_status[$forum_id])
 0357                          )
 0358                          {
 0359                              $update_acl_status[$forum_id][$auth_field] = ( !empty($update_mod_status[$forum_id]) ) ? 0 :  $change_acl_list[$forum_id][$auth_field];
 0360   
 0361                              if ( isset($auth_access[$forum_id][$auth_field]) && empty($update_acl_status[$forum_id][$auth_field]) && $forum_auth_action[$forum_id] != 'insert' && $forum_auth_action[$forum_id] != 'update' )
 0362                              {
 0363                                  $forum_auth_action[$forum_id] = 'delete';
 0364                              }
 0365                              else if ( !isset($auth_access[$forum_id][$auth_field]) && !( $forum_auth_action[$forum_id] == 'delete' && empty($update_acl_status[$forum_id][$auth_field]) ) )
 0366                              {
 0367                                  $forum_auth_action[$forum_id] = 'insert';
 0368                              }
 0369                              else if ( isset($auth_access[$forum_id][$auth_field]) && !empty($update_acl_status[$forum_id][$auth_field]) ) 
 0370                              {
 0371                                  $forum_auth_action[$forum_id] = 'update';
 0372                              }
 0373                          }
 0374                          else if ( ( empty($auth_access[$forum_id]['auth_mod']) && 
 0375                              ( isset($auth_access[$forum_id][$auth_field]) && $change_acl_list[$forum_id][$auth_field] == $auth_access[$forum_id][$auth_field] ) ) && $forum_auth_action[$forum_id] == 'delete' )
 0376                          {
 0377                              $forum_auth_action[$forum_id] = 'update';
 0378                          }
 0379                      }
 0380                  }
 0381              }
 0382   
 0383              //
 0384              // Checks complete, make updates to DB
 0385              //
 0386              $delete_sql = '';
 0387              while( list($forum_id, $action) = @each($forum_auth_action) )
 0388              {
 0389                  if ( $action == 'delete' )
 0390                  {
 0391                      $delete_sql .= ( ( $delete_sql != '' ) ? ', ' : '' ) . $forum_id;
 0392                  }
 0393                  else
 0394                  {
 0395                      if ( $action == 'insert' )
 0396                      {
 0397                          $sql_field = '';
 0398                          $sql_value = '';
 0399                          while ( list($auth_type, $value) = @each($update_acl_status[$forum_id]) )
 0400                          {
 0401                              $sql_field .= ( ( $sql_field != '' ) ? ', ' : '' ) . $auth_type;
 0402                              $sql_value .= ( ( $sql_value != '' ) ? ', ' : '' ) . $value;
 0403                          }
 0404                          $sql_field .= ( ( $sql_field != '' ) ? ', ' : '' ) . 'auth_mod';
 0405                          $sql_value .= ( ( $sql_value != '' ) ? ', ' : '' ) . ( ( !isset($update_mod_status[$forum_id]) ) ? 0 : $update_mod_status[$forum_id]);
 0406   
 0407                          $sql = "INSERT INTO " . AUTH_ACCESS_TABLE . " (forum_id, group_id, $sql_field) 
 0408                              VALUES ($forum_id, $group_id, $sql_value)";
 0409                      }
 0410                      else
 0411                      {
 0412                          $sql_values = '';
 0413                          while ( list($auth_type, $value) = @each($update_acl_status[$forum_id]) )
 0414                          {
 0415                              $sql_values .= ( ( $sql_values != '' ) ? ', ' : '' ) . $auth_type . ' = ' . $value;
 0416                          }
 0417                          $sql_values .= ( ( $sql_values != '' ) ? ', ' : '' ) . 'auth_mod = ' . ( ( !isset($update_mod_status[$forum_id]) ) ? 0 : $update_mod_status[$forum_id]);
 0418   
 0419                          $sql = "UPDATE " . AUTH_ACCESS_TABLE . " 
 0420                              SET $sql_values 
 0421                              WHERE group_id = $group_id 
 0422                                  AND forum_id = $forum_id";
 0423                      }
 0424                      if( !($result = $db->sql_query($sql)) )
 0425                      {
 0426                          message_die(GENERAL_ERROR, "Couldn't update private forum permissions", "", __LINE__, __FILE__, $sql);
 0427                      }
 0428                  }
 0429              }
 0430   
 0431              if ( $delete_sql != '' )
 0432              {
 0433                  $sql = "DELETE FROM " . AUTH_ACCESS_TABLE . " 
 0434                      WHERE group_id = $group_id 
 0435                          AND forum_id IN ($delete_sql)";
 0436                  if( !($result = $db->sql_query($sql)) )
 0437                  {
 0438                      message_die(GENERAL_ERROR, "Couldn't delete permission entries", "", __LINE__, __FILE__, $sql);
 0439                  }
 0440              }
 0441   
 0442              $l_auth_return = ( $mode == 'user' ) ? $lang['Click_return_userauth'] : $lang['Click_return_groupauth'];
 0443              $message = $lang['Auth_updated'] . '<br /><br />' . sprintf($l_auth_return, '<a href="' . append_sid("admin_ug_auth.$phpEx?mode=$mode") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>');
 0444          }
 0445   
 0446          //
 0447          // Update user level to mod for appropriate users
 0448          // 
 0449          $sql = "SELECT u.user_id 
 0450              FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u  
 0451              WHERE ug.group_id = aa.group_id 
 0452                  AND u.user_id = ug.user_id 
 0453                  AND ug.user_pending = 0
 0454                  AND u.user_level NOT IN (" . MOD . ", " . ADMIN . ") 
 0455              GROUP BY u.user_id 
 0456              HAVING SUM(aa.auth_mod) > 0";
 0457          if ( !($result = $db->sql_query($sql)) )
 0458          {
 0459              message_die(GENERAL_ERROR, "Couldn't obtain user/group permissions", "", __LINE__, __FILE__, $sql);
 0460          }
 0461   
 0462          $set_mod = '';
 0463          while( $row = $db->sql_fetchrow($result) )
 0464          {
 0465              $set_mod .= ( ( $set_mod != '' ) ? ', ' : '' ) . $row['user_id'];
 0466          }
 0467          $db->sql_freeresult($result);
 0468   
 0469          //
 0470          // Update user level to user for appropriate users
 0471          // 
 0472          switch ( SQL_LAYER )
 0473          {
 0474              case 'postgresql':
 0475                  $sql = "SELECT u.user_id 
 0476                      FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug, " . AUTH_ACCESS_TABLE . " aa
 0477                      WHERE ug.user_id = u.user_id 
 0478                          AND aa.group_id = ug.group_id 
 0479                          AND u.user_level NOT IN (" . USER . ", " . ADMIN . ")
 0480                      GROUP BY u.user_id 
 0481                      HAVING SUM(aa.auth_mod) = 0 
 0482                      UNION (
 0483                          SELECT u.user_id  
 0484                          FROM " . USERS_TABLE . " u 
 0485                          WHERE NOT EXISTS ( 
 0486                              SELECT aa.auth_mod 
 0487                              FROM " . USER_GROUP_TABLE . " ug, " . AUTH_ACCESS_TABLE . " aa 
 0488                              WHERE ug.user_id = u.user_id 
 0489                                  AND aa.group_id = ug.group_id
 0490                          )
 0491                          AND u.user_level NOT IN (" . USER . ", " . ADMIN . ")  
 0492                          GROUP BY u.user_id
 0493                      )";
 0494                  break;
 0495              case 'oracle':
 0496                  $sql = "SELECT u.user_id 
 0497                      FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug, " . AUTH_ACCESS_TABLE . " aa 
 0498                      WHERE ug.user_id = u.user_id(+)
 0499                          AND aa.group_id = ug.group_id(+) 
 0500                          AND u.user_level NOT IN (" . USER . ", " . ADMIN . ")
 0501                      GROUP BY u.user_id 
 0502                      HAVING SUM(aa.auth_mod) = 0";
 0503                  break;
 0504              default:
 0505                  $sql = "SELECT u.user_id 
 0506                      FROM ( ( " . USERS_TABLE . " u  
 0507                      LEFT JOIN " . USER_GROUP_TABLE . " ug ON ug.user_id = u.user_id ) 
 0508                      LEFT JOIN " . AUTH_ACCESS_TABLE . " aa ON aa.group_id = ug.group_id ) 
 0509                      WHERE u.user_level NOT IN (" . USER . ", " . ADMIN . ")
 0510                      GROUP BY u.user_id 
 0511                      HAVING SUM(aa.auth_mod) = 0";
 0512                  break;
 0513          }
 0514          if ( !($result = $db->sql_query($sql)) )
 0515          {
 0516              message_die(GENERAL_ERROR, "Couldn't obtain user/group permissions", "", __LINE__, __FILE__, $sql);
 0517          }
 0518   
 0519          $unset_mod = "";
 0520          while( $row = $db->sql_fetchrow($result) )
 0521          {
 0522              $unset_mod .= ( ( $unset_mod != '' ) ? ', ' : '' ) . $row['user_id'];
 0523          }
 0524          $db->sql_freeresult($result);
 0525   
 0526          if ( $set_mod != '' )
 0527          {
 0528              $sql = "UPDATE " . USERS_TABLE . " 
 0529                  SET user_level = " . MOD . " 
 0530                  WHERE user_id IN ($set_mod)";
 0531              if( !($result = $db->sql_query($sql)) )
 0532              {
 0533                  message_die(GENERAL_ERROR, "Couldn't update user level", "", __LINE__, __FILE__, $sql);
 0534              }
 0535          }
 0536   
 0537          if ( $unset_mod != '' )
 0538          {
 0539              $sql = "UPDATE " . USERS_TABLE . " 
 0540                  SET user_level = " . USER . " 
 0541                  WHERE user_id IN ($unset_mod)";
 0542              if( !($result = $db->sql_query($sql)) )
 0543              {
 0544                  message_die(GENERAL_ERROR, "Couldn't update user level", "", __LINE__, __FILE__, $sql);
 0545              }
 0546          }
 0547   
 0548          $sql = 'SELECT user_id FROM ' . USER_GROUP_TABLE . "
 0549              WHERE group_id = $group_id";
 0550          $result = $db->sql_query($sql);
 0551   
 0552          $group_user = array();
 0553          while ($row = $db->sql_fetchrow($result))
 0554          {
 0555              $group_user[$row['user_id']] = $row['user_id'];
 0556          }
 0557          $db->sql_freeresult($result);
 0558   
 0559          $sql = "SELECT ug.user_id, COUNT(auth_mod) AS is_auth_mod 
 0560              FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug 
 0561              WHERE ug.user_id IN (" . implode(', ', $group_user) . ") 
 0562                  AND aa.group_id = ug.group_id 
 0563                  AND aa.auth_mod = 1
 0564              GROUP BY ug.user_id";
 0565          if ( !($result = $db->sql_query($sql)) )
 0566          {
 0567              message_die(GENERAL_ERROR, 'Could not obtain moderator status', '', __LINE__, __FILE__, $sql);
 0568          }
 0569   
 0570          while ($row = $db->sql_fetchrow($result))
 0571          {
 0572              if ($row['is_auth_mod'])
 0573              {
 0574                  unset($group_user[$row['user_id']]);
 0575              }
 0576          }
 0577          $db->sql_freeresult($result);
 0578   
 0579          if (sizeof($group_user))
 0580          {
 0581              $sql = "UPDATE " . USERS_TABLE . " 
 0582                  SET user_level = " . USER . " 
 0583                  WHERE user_id IN (" . implode(', ', $group_user) . ") AND user_level = " . MOD;
 0584              if ( !($result = $db->sql_query($sql)) )
 0585              {
 0586                  message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql);
 0587              }
 0588          }
 0589   
 0590          message_die(GENERAL_MESSAGE, $message);
 0591      }
 0592  }
 0593  else if ( ( $mode == 'user' && ( isset($HTTP_POST_VARS['username']) || $user_id ) ) || ( $mode == 'group' && $group_id ) )
 0594  {
 0595      if ( isset($HTTP_POST_VARS['username']) )
 0596      {
 0597          $this_userdata = get_userdata($HTTP_POST_VARS['username'], true);
 0598          if ( !is_array($this_userdata) )
 0599          {
 0600              message_die(GENERAL_MESSAGE, $lang['No_such_user']);
 0601          }
 0602          $user_id = $this_userdata['user_id'];
 0603      }
 0604   
 0605      //
 0606      // Front end
 0607      //
 0608      $sql = "SELECT f.* 
 0609          FROM " . FORUMS_TABLE . " f, " . CATEGORIES_TABLE . " c
 0610          WHERE f.cat_id = c.cat_id
 0611          ORDER BY c.cat_order, f.forum_order ASC";
 0612      if ( !($result = $db->sql_query($sql)) )
 0613      {
 0614          message_die(GENERAL_ERROR, "Couldn't obtain forum information", "", __LINE__, __FILE__, $sql);
 0615      }
 0616   
 0617      $forum_access = array();
 0618      while( $row = $db->sql_fetchrow($result) )
 0619      {
 0620          $forum_access[] = $row;
 0621      }
 0622      $db->sql_freeresult($result);
 0623   
 0624      if( empty($adv) )
 0625      {
 0626          for($i = 0; $i < count($forum_access); $i++)
 0627          {
 0628              $forum_id = $forum_access[$i]['forum_id'];
 0629   
 0630              $forum_auth_level[$forum_id] = AUTH_ALL;
 0631   
 0632              for($j = 0; $j < count($forum_auth_fields); $j++)
 0633              {
 0634                  $forum_access[$i][$forum_auth_fields[$j]] . ' :: ';
 0635                  if ( $forum_access[$i][$forum_auth_fields[$j]] == AUTH_ACL )
 0636                  {
 0637                      $forum_auth_level[$forum_id] = AUTH_ACL;
 0638                      $forum_auth_level_fields[$forum_id][] = $forum_auth_fields[$j];
 0639                  }
 0640              }
 0641          }
 0642      }
 0643   
 0644      $sql = "SELECT u.user_id, u.username, u.user_level, g.group_id, g.group_name, g.group_single_user, ug.user_pending FROM " . USERS_TABLE . " u, " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug WHERE ";
 0645      $sql .= ( $mode == 'user' ) ? "u.user_id = $user_id AND ug.user_id = u.user_id AND g.group_id = ug.group_id" : "g.group_id = $group_id AND ug.group_id = g.group_id AND u.user_id = ug.user_id";
 0646      if ( !($result = $db->sql_query($sql)) )
 0647      {
 0648          message_die(GENERAL_ERROR, "Couldn't obtain user/group information", "", __LINE__, __FILE__, $sql);
 0649      }
 0650      $ug_info = array();
 0651      while( $row = $db->sql_fetchrow($result) )
 0652      {
 0653          $ug_info[] = $row;
 0654      }
 0655      $db->sql_freeresult($result);
 0656   
 0657      $sql = ( $mode == 'user' ) ? "SELECT aa.*, g.group_single_user FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE. " g WHERE ug.user_id = $user_id AND g.group_id = ug.group_id AND aa.group_id = ug.group_id AND g.group_single_user = 1" : "SELECT * FROM " . AUTH_ACCESS_TABLE . " WHERE group_id = $group_id";
 0658      if ( !($result = $db->sql_query($sql)) )
 0659      {
 0660          message_die(GENERAL_ERROR, "Couldn't obtain user/group permissions", "", __LINE__, __FILE__, $sql);
 0661      }
 0662   
 0663      $auth_access = array();
 0664      $auth_access_count = array();
 0665      while( $row = $db->sql_fetchrow($result) )
 0666      {
 0667          $auth_access[$row['forum_id']][] = $row; 
 0668          $auth_access_count[$row['forum_id']]++;
 0669      }
 0670      $db->sql_freeresult($result);
 0671   
 0672      $is_admin = ( $mode == 'user' ) ? ( ( $ug_info[0]['user_level'] == ADMIN && $ug_info[0]['user_id'] != ANONYMOUS ) ? 1 : 0 ) : 0;
 0673   
 0674      for($i = 0; $i < count($forum_access); $i++)
 0675      {
 0676          $forum_id = $forum_access[$i]['forum_id'];
 0677   
 0678          unset($prev_acl_setting);
 0679          for($j = 0; $j < count($forum_auth_fields); $j++)
 0680          {
 0681              $key = $forum_auth_fields[$j];
 0682              $value = $forum_access[$i][$key];
 0683   
 0684              switch( $value )
 0685              {
 0686                  case AUTH_ALL:
 0687                  case AUTH_REG:
 0688                      $auth_ug[$forum_id][$key] = 1;
 0689                      break;
 0690   
 0691                  case AUTH_ACL:
 0692                      $auth_ug[$forum_id][$key] = ( !empty($auth_access_count[$forum_id]) ) ? check_auth(AUTH_ACL, $key, $auth_access[$forum_id], $is_admin) : 0;
 0693                      $auth_field_acl[$forum_id][$key] = $auth_ug[$forum_id][$key];
 0694   
 0695                      if ( isset($prev_acl_setting) )
 0696                      {
 0697                          if ( $prev_acl_setting != $auth_ug[$forum_id][$key] && empty($adv) )
 0698                          {
 0699                              $adv = 1;
 0700                          }
 0701                      }
 0702   
 0703                      $prev_acl_setting = $auth_ug[$forum_id][$key];
 0704   
 0705                      break;
 0706   
 0707                  case AUTH_MOD:
 0708                      $auth_ug[$forum_id][$key] = ( !empty($auth_access_count[$forum_id]) ) ? check_auth(AUTH_MOD, $key, $auth_access[$forum_id], $is_admin) : 0;
 0709                      break;
 0710   
 0711                  case AUTH_ADMIN:
 0712                      $auth_ug[$forum_id][$key] = $is_admin;
 0713                      break;
 0714   
 0715                  default:
 0716                      $auth_ug[$forum_id][$key] = 0;
 0717                      break;
 0718              }
 0719          }
 0720   
 0721          //
 0722          // Is user a moderator?
 0723          //
 0724          $auth_ug[$forum_id]['auth_mod'] = ( !empty($auth_access_count[$forum_id]) ) ? check_auth(AUTH_MOD, 'auth_mod', $auth_access[$forum_id], 0) : 0;
 0725      }
 0726      
 0727      $i = 0;
 0728      @reset($auth_ug);
 0729      while( list($forum_id, $user_ary) = @each($auth_ug) )
 0730      {
 0731          if ( empty($adv) )
 0732          {
 0733              if ( $forum_auth_level[$forum_id] == AUTH_ACL )
 0734              {
 0735                  $allowed = 1;
 0736   
 0737                  for($j = 0; $j < count($forum_auth_level_fields[$forum_id]); $j++)
 0738                  {
 0739                      if ( !$auth_ug[$forum_id][$forum_auth_level_fields[$forum_id][$j]] )
 0740                      {
 0741                          $allowed = 0;
 0742                      }
 0743                  }
 0744   
 0745                  $optionlist_acl = '<select name="private[' . $forum_id . ']">';
 0746   
 0747                  if ( $is_admin || $user_ary['auth_mod'] )
 0748                  {
 0749                      $optionlist_acl .= '<option value="1">' . $lang['Allowed_Access'] . '</option>';
 0750                  }
 0751                  else if ( $allowed )
 0752                  {
 0753                      $optionlist_acl .= '<option value="1" selected="selected">' . $lang['Allowed_Access'] . '</option><option value="0">'. $lang['Disallowed_Access'] . '</option>';
 0754                  }
 0755                  else
 0756                  {
 0757                      $optionlist_acl .= '<option value="1">' . $lang['Allowed_Access'] . '</option><option value="0" selected="selected">' . $lang['Disallowed_Access'] . '</option>';
 0758                  }
 0759   
 0760                  $optionlist_acl .= '</select>';
 0761              }
 0762              else
 0763              {
 0764                  $optionlist_acl = '&nbsp;';
 0765              }
 0766          }
 0767          else
 0768          {
 0769              for($j = 0; $j < count($forum_access); $j++)
 0770              {
 0771                  if ( $forum_access[$j]['forum_id'] == $forum_id )
 0772                  {
 0773                      for($k = 0; $k < count($forum_auth_fields); $k++)
 0774                      {
 0775                          $field_name = $forum_auth_fields[$k];
 0776   
 0777                          if( $forum_access[$j][$field_name] == AUTH_ACL )
 0778                          {
 0779                              $optionlist_acl_adv[$forum_id][$k] = '<select name="private_' . $field_name . '[' . $forum_id . ']">';
 0780   
 0781                              if( isset($auth_field_acl[$forum_id][$field_name]) && !($is_admin || $user_ary['auth_mod']) )
 0782                              {
 0783                                  if( !$auth_field_acl[$forum_id][$field_name] )
 0784                                  {
 0785                                      $optionlist_acl_adv[$forum_id][$k] .= '<option value="1">' . $lang['ON'] . '</option><option value="0" selected="selected">' . $lang['OFF'] . '</option>';
 0786                                  }
 0787                                  else
 0788                                  {
 0789                                      $optionlist_acl_adv[$forum_id][$k] .= '<option value="1" selected="selected">' . $lang['ON'] . '</option><option value="0">' . $lang['OFF'] . '</option>';
 0790                                  }
 0791                              }
 0792                              else
 0793                              {
 0794                                  if( $is_admin || $user_ary['auth_mod'] )
 0795                                  {
 0796                                      $optionlist_acl_adv[$forum_id][$k] .= '<option value="1">' . $lang['ON'] . '</option>';
 0797                                  }
 0798                                  else
 0799                                  {
 0800                                      $optionlist_acl_adv[$forum_id][$k] .= '<option value="1">' . $lang['ON'] . '</option><option value="0" selected="selected">' . $lang['OFF'] . '</option>';
 0801                                  }
 0802                              }
 0803   
 0804                              $optionlist_acl_adv[$forum_id][$k] .= '</select>';
 0805   
 0806                          }
 0807                      }
 0808                  }
 0809              }
 0810          }
 0811   
 0812          $optionlist_mod = '<select name="moderator[' . $forum_id . ']">';
 0813          $optionlist_mod .= ( $user_ary['auth_mod'] ) ? '<option value="1" selected="selected">' . $lang['Is_Moderator'] . '</option><option value="0">' . $lang['Not_Moderator'] . '</option>' : '<option value="1">' . $lang['Is_Moderator'] . '</option><option value="0" selected="selected">' . $lang['Not_Moderator'] . '</option>';
 0814          $optionlist_mod .= '</select>';
 0815   
 0816          $row_class = ( !( $i % 2 ) ) ? 'row2' : 'row1';
 0817          $row_color = ( !( $i % 2 ) ) ? $theme['td_color1'] : $theme['td_color2'];
 0818   
 0819          $template->assign_block_vars('forums', array(
 0820              'ROW_COLOR' => '#' . $row_color,
 0821              'ROW_CLASS' => $row_class,
 0822              'FORUM_NAME' => $forum_access[$i]['forum_name'],
 0823   
 0824              'U_FORUM_AUTH' => append_sid("admin_forumauth.$phpEx?f=" . $forum_access[$i]['forum_id']),
 0825   
 0826              'S_MOD_SELECT' => $optionlist_mod)
 0827          );
 0828   
 0829          if( !$adv )
 0830          {
 0831              $template->assign_block_vars('forums.aclvalues', array(
 0832                  'S_ACL_SELECT' => $optionlist_acl)
 0833              );
 0834          }
 0835          else
 0836          {
 0837              for($j = 0; $j < count($forum_auth_fields); $j++)
 0838              {
 0839                  $template->assign_block_vars('forums.aclvalues', array(
 0840                      'S_ACL_SELECT' => $optionlist_acl_adv[$forum_id][$j])
 0841                  );
 0842              }
 0843          }
 0844   
 0845          $i++;
 0846      }
 0847  //    @reset($auth_user);
 0848      
 0849      if ( $mode == 'user' )
 0850      {
 0851          $t_username = $ug_info[0]['username'];
 0852          $s_user_type = ( $is_admin ) ? '<select name="userlevel"><option value="admin" selected="selected">' . $lang['Auth_Admin'] . '</option><option value="user">' . $lang['Auth_User'] . '</option></select>' : '<select name="userlevel"><option value="admin">' . $lang['Auth_Admin'] . '</option><option value="user" selected="selected">' . $lang['Auth_User'] . '</option></select>';
 0853      }
 0854      else
 0855      {
 0856          $t_groupname = $ug_info[0]['group_name'];
 0857      }
 0858   
 0859      $name = array();
 0860      $id = array();
 0861      for($i = 0; $i < count($ug_info); $i++)
 0862      {
 0863          if( ( $mode == 'user' && !$ug_info[$i]['group_single_user'] ) || $mode == 'group' )
 0864          {
 0865              $name[] = ( $mode == 'user' ) ? $ug_info[$i]['group_name'] :  $ug_info[$i]['username'];
 0866              $id[] = ( $mode == 'user' ) ? intval($ug_info[$i]['group_id']) : intval($ug_info[$i]['user_id']);
 0867          }
 0868      }
 0869   
 0870      $t_usergroup_list = $t_pending_list = '';
 0871      if( count($name) )
 0872      {
 0873          for($i = 0; $i < count($ug_info); $i++)
 0874          {
 0875              $ug = ( $mode == 'user' ) ? 'group&amp;' . POST_GROUPS_URL : 'user&amp;' . POST_USERS_URL;
 0876   
 0877              if (!$ug_info[$i]['user_pending'])
 0878              {
 0879                  $t_usergroup_list .= ( ( $t_usergroup_list != '' ) ? ', ' : '' ) . '<a href="' . append_sid("admin_ug_auth.$phpEx?mode=$ug=" . $id[$i]) . '">' . $name[$i] . '</a>';
 0880              }
 0881              else
 0882              {
 0883                  $t_pending_list .= ( ( $t_pending_list != '' ) ? ', ' : '' ) . '<a href="' . append_sid("admin_ug_auth.$phpEx?mode=$ug=" . $id[$i]) . '">' . $name[$i] . '</a>';
 0884              }
 0885          }
 0886      }
 0887   
 0888      $t_usergroup_list = ($t_usergroup_list == '') ? $lang['None'] : $t_usergroup_list;
 0889      $t_pending_list = ($t_pending_list == '') ? $lang['None'] : $t_pending_list;
 0890   
 0891      $s_column_span = 2; // Two columns always present
 0892      if( !$adv )
 0893      {
 0894          $template->assign_block_vars('acltype', array(
 0895              'L_UG_ACL_TYPE' => $lang['Simple_Permission'])
 0896          );
 0897          $s_column_span++;
 0898      }
 0899      else
 0900      {
 0901          for($i = 0; $i < count($forum_auth_fields); $i++)
 0902          {
 0903              $cell_title = $field_names[$forum_auth_fields[$i]];
 0904   
 0905              $template->assign_block_vars('acltype', array(
 0906                  'L_UG_ACL_TYPE' => $cell_title)
 0907              );
 0908              $s_column_span++;
 0909          }
 0910      }
 0911   
 0912      //
 0913      // Dump in the page header ...
 0914      //
 0915      include('./page_header_admin.'.$phpEx);
 0916   
 0917      $template->set_filenames(array(
 0918          "body" => 'admin/auth_ug_body.tpl')
 0919      );
 0920   
 0921      $adv_switch = ( empty($adv) ) ? 1 : 0;
 0922      $u_ug_switch = ( $mode == 'user' ) ? POST_USERS_URL . "=" . $user_id : POST_GROUPS_URL . "=" . $group_id;
 0923      $switch_mode = append_sid("admin_ug_auth.$phpEx?mode=$mode&amp;" . $u_ug_switch . "&amp;adv=$adv_switch");
 0924      $switch_mode_text = ( empty($adv) ) ? $lang['Advanced_mode'] : $lang['Simple_mode'];
 0925      $u_switch_mode = '<a href="' . $switch_mode . '">' . $switch_mode_text . '</a>';
 0926   
 0927      $s_hidden_fields = '<input type="hidden" name="mode" value="' . $mode . '" /><input type="hidden" name="adv" value="' . $adv . '" />';
 0928      $s_hidden_fields .= ( $mode == 'user' ) ? '<input type="hidden" name="' . POST_USERS_URL . '" value="' . $user_id . '" />' : '<input type="hidden" name="' . POST_GROUPS_URL . '" value="' . $group_id . '" />';
 0929   
 0930      if ( $mode == 'user' )
 0931      {
 0932          $template->assign_block_vars('switch_user_auth', array());
 0933   
 0934          $template->assign_vars(array(
 0935              'USERNAME' => $t_username,
 0936              'USER_LEVEL' => $lang['User_Level'] . " : " . $s_user_type,
 0937              'USER_GROUP_MEMBERSHIPS' => $lang['Group_memberships'] . ' : ' . $t_usergroup_list)
 0938          );
 0939      }
 0940      else
 0941      {
 0942          $template->assign_block_vars("switch_group_auth", array());
 0943   
 0944          $template->assign_vars(array(
 0945              'USERNAME' => $t_groupname,
 0946              'GROUP_MEMBERSHIP' => $lang['Usergroup_members'] . ' : ' . $t_usergroup_list . '<br />' . $lang['Pending_members'] . ' : ' . $t_pending_list)
 0947          );
 0948      }
 0949   
 0950      $template->assign_vars(array(
 0951          'L_USER_OR_GROUPNAME' => ( $mode == 'user' ) ? $lang['Username'] : $lang['Group_name'],
 0952   
 0953          'L_AUTH_TITLE' => ( $mode == 'user' ) ? $lang['Auth_Control_User'] : $lang['Auth_Control_Group'],
 0954          'L_AUTH_EXPLAIN' => ( $mode == 'user' ) ? $lang['User_auth_explain'] : $lang['Group_auth_explain'],
 0955          'L_MODERATOR_STATUS' => $lang['Moderator_status'],
 0956          'L_PERMISSIONS' => $lang['Permissions'],
 0957          'L_SUBMIT' => $lang['Submit'],
 0958          'L_RESET' => $lang['Reset'], 
 0959          'L_FORUM' => $lang['Forum'], 
 0960   
 0961          'U_USER_OR_GROUP' => append_sid("admin_ug_auth.$phpEx"),
 0962          'U_SWITCH_MODE' => $u_switch_mode,
 0963   
 0964          'S_COLUMN_SPAN' => $s_column_span,
 0965          'S_AUTH_ACTION' => append_sid("admin_ug_auth.$phpEx"), 
 0966          'S_HIDDEN_FIELDS' => $s_hidden_fields)
 0967      );
 0968  }
 0969  else
 0970  {
 0971      //
 0972      // Select a user/group
 0973      //
 0974      include('./page_header_admin.'.$phpEx);
 0975   
 0976      $template->set_filenames(array(
 0977          'body' => ( $mode == 'user' ) ? 'admin/user_select_body.tpl' : 'admin/auth_select_body.tpl')
 0978      );
 0979   
 0980      if ( $mode == 'user' )
 0981      {
 0982          $template->assign_vars(array(
 0983              'L_FIND_USERNAME' => $lang['Find_username'],
 0984   
 0985              'U_SEARCH_USER' => append_sid("../search.$phpEx?mode=searchuser"))
 0986          );
 0987      }
 0988      else
 0989      {
 0990          $sql = "SELECT group_id, group_name
 0991              FROM " . GROUPS_TABLE . "
 0992              WHERE group_single_user <> " . TRUE;
 0993          if ( !($result = $db->sql_query($sql)) )
 0994          {
 0995              message_die(GENERAL_ERROR, "Couldn't get group list", "", __LINE__, __FILE__, $sql);
 0996          }
 0997   
 0998          if ( $row = $db->sql_fetchrow($result) )
 0999          {
 1000              $select_list = '<select name="' . POST_GROUPS_URL . '">';
 1001              do
 1002              {
 1003                  $select_list .= '<option value="' . $row['group_id'] . '">' . $row['group_name'] . '</option>';
 1004              }
 1005              while ( $row = $db->sql_fetchrow($result) );
 1006              $select_list .= '</select>';
 1007          }
 1008   
 1009          $template->assign_vars(array(
 1010              'S_AUTH_SELECT' => $select_list)
 1011          );
 1012      }
 1013   
 1014      $s_hidden_fields = '<input type="hidden" name="mode" value="' . $mode . '" />';
 1015   
 1016      $l_type = ( $mode == 'user' ) ? 'USER' : 'AUTH';
 1017   
 1018      $template->assign_vars(array(
 1019          'L_' . $l_type . '_TITLE' => ( $mode == 'user' ) ? $lang['Auth_Control_User'] : $lang['Auth_Control_Group'],
 1020          'L_' . $l_type . '_EXPLAIN' => ( $mode == 'user' ) ? $lang['User_auth_explain'] : $lang['Group_auth_explain'],
 1021          'L_' . $l_type . '_SELECT' => ( $mode == 'user' ) ? $lang['Select_a_User'] : $lang['Select_a_Group'],
 1022          'L_LOOK_UP' => ( $mode == 'user' ) ? $lang['Look_up_User'] : $lang['Look_up_Group'],
 1023   
 1024          'S_HIDDEN_FIELDS' => $s_hidden_fields, 
 1025          'S_' . $l_type . '_ACTION' => append_sid("admin_ug_auth.$phpEx"))
 1026      );
 1027   
 1028  }
 1029   
 1030  $template->pparse('body');
 1031   
 1032  include('./page_footer_admin.'.$phpEx);
 1033   
 1034  ?>