[ Index ]
 

Code source de XOOPS 2.0.17.1

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/htdocs/modules/system/admin/groups/ -> main.php (source)

   1  <?php
   2  // $Id: main.php 2 2005-11-02 18:23:29Z skalpa $

   3  //  ------------------------------------------------------------------------ //

   4  //                XOOPS - PHP Content Management System                      //

   5  //                    Copyright (c) 2000 XOOPS.org                           //

   6  //                       <http://www.xoops.org/>                             //

   7  //  ------------------------------------------------------------------------ //

   8  //  This program is free software; you can redistribute it and/or modify     //

   9  //  it under the terms of the GNU General Public License as published by     //

  10  //  the Free Software Foundation; either version 2 of the License, or        //

  11  //  (at your option) any later version.                                      //

  12  //                                                                           //

  13  //  You may not change or alter any portion of this comment or credits       //

  14  //  of supporting developers from this source code or any supporting         //

  15  //  source code which is considered copyrighted (c) material of the          //

  16  //  original comment or credit authors.                                      //

  17  //                                                                           //

  18  //  This program is distributed in the hope that it will be useful,          //

  19  //  but WITHOUT ANY WARRANTY; without even the implied warranty of           //

  20  //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            //

  21  //  GNU General Public License for more details.                             //

  22  //                                                                           //

  23  //  You should have received a copy of the GNU General Public License        //

  24  //  along with this program; if not, write to the Free Software              //

  25  //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA //

  26  //  ------------------------------------------------------------------------ //

  27  // Author: Kazumi Ono (AKA onokazu)                                          //

  28  // URL: http://www.myweb.ne.jp/, http://www.xoops.org/, http://jp.xoops.org/ //

  29  // Project: The XOOPS Project                                                //

  30  // ------------------------------------------------------------------------- //

  31  
  32  if ( !is_object($xoopsUser) || !is_object($xoopsModule) || !$xoopsUser->isAdmin($xoopsModule->mid()) ) {
  33      exit("Access Denied");
  34  } else {
  35      include_once  XOOPS_ROOT_PATH.'/class/xoopsblock.php';
  36      include_once XOOPS_ROOT_PATH."/modules/system/admin/groups/groups.php";
  37      $op = "display";
  38      if ( isset($_POST) ) {
  39          foreach ( $_POST as $k => $v ) {
  40              $$k = $v;
  41          }
  42      }
  43      if ( isset($_GET['op']) ) {
  44          if ($_GET['op'] == "modify" || $_GET['op'] == "del") {
  45              $op = $_GET['op'];
  46              $g_id = $_GET['g_id'];
  47          }
  48      }
  49  
  50      // from finduser section

  51      if ( !empty($memberslist_id) && is_array($memberslist_id) ) {
  52          $op = "addUser";
  53          $uids =& $memberslist_id;
  54      }
  55  
  56      switch ($op) {
  57      case "modify":
  58          include_once  XOOPS_ROOT_PATH.'/class/pagenav.php';
  59          modifyGroup($g_id);
  60          break;
  61      case "update":
  62          if (!$GLOBALS['xoopsSecurity']->check()) {
  63              redirect_header("admin.php?fct=groups&amp;op=adminMain", 3, implode('<br />', $GLOBALS['xoopsSecurity']->getErrors()));
  64          }
  65          $system_catids = empty($system_catids) ? array() : $system_catids;
  66          $admin_mids = empty($admin_mids) ? array() : $admin_mids;
  67          $read_mids = empty($read_mids) ? array() : $read_mids;
  68          $read_bids = empty($read_bids) ? array() : $read_bids;
  69          $member_handler =& xoops_gethandler('member');
  70          $group =& $member_handler->getGroup($g_id);
  71          $group->setVar('name', $name);
  72          $group->setVar('description', $desc);
  73          // if this group is not one of the default groups

  74          if (!in_array($group->getVar('groupid'), array(XOOPS_GROUP_ADMIN, XOOPS_GROUP_USERS, XOOPS_GROUP_ANONYMOUS))) {
  75              if (count($system_catids) > 0) {
  76                  $group->setVar('group_type', 'Admin');
  77              } else {
  78                  $group->setVar('group_type', '');
  79              }
  80          }
  81          if (!$member_handler->insertGroup($group)) {
  82              xoops_cp_header();
  83              echo $group->getHtmlErrors();
  84              xoops_cp_footer();
  85          } else {
  86              $groupid = $group->getVar('groupid');
  87              $gperm_handler =& xoops_gethandler('groupperm');
  88              $criteria = new CriteriaCompo(new Criteria('gperm_groupid', $groupid));
  89              $criteria->add(new Criteria('gperm_modid', 1));
  90              $criteria2 = new CriteriaCompo(new Criteria('gperm_name', 'system_admin'));
  91              $criteria2->add(new Criteria('gperm_name', 'module_admin'), 'OR');
  92              $criteria2->add(new Criteria('gperm_name', 'module_read'), 'OR');
  93              $criteria2->add(new Criteria('gperm_name', 'block_read'), 'OR');
  94              $criteria->add($criteria2);
  95              $gperm_handler->deleteAll($criteria);
  96              if (count($system_catids) > 0) {
  97                  array_push($admin_mids, 1);
  98                  foreach ($system_catids as $s_cid) {
  99                      $sysperm =& $gperm_handler->create();
 100                      $sysperm->setVar('gperm_groupid', $groupid);
 101                      $sysperm->setVar('gperm_itemid', $s_cid);
 102                      $sysperm->setVar('gperm_name', 'system_admin');
 103                      $sysperm->setVar('gperm_modid', 1);
 104                      $gperm_handler->insert($sysperm);
 105                  }
 106              }
 107              foreach ($admin_mids as $a_mid) {
 108                  $modperm =& $gperm_handler->create();
 109                  $modperm->setVar('gperm_groupid', $groupid);
 110                  $modperm->setVar('gperm_itemid', $a_mid);
 111                  $modperm->setVar('gperm_name', 'module_admin');
 112                  $modperm->setVar('gperm_modid', 1);
 113                  $gperm_handler->insert($modperm);
 114              }
 115              array_push($read_mids, 1);
 116              foreach ($read_mids as $r_mid) {
 117                  $modperm =& $gperm_handler->create();
 118                  $modperm->setVar('gperm_groupid', $groupid);
 119                  $modperm->setVar('gperm_itemid', $r_mid);
 120                  $modperm->setVar('gperm_name', 'module_read');
 121                  $modperm->setVar('gperm_modid', 1);
 122                  $gperm_handler->insert($modperm);
 123              }
 124              foreach ($read_bids as $r_bid) {
 125                  $blockperm =& $gperm_handler->create();
 126                  $blockperm->setVar('gperm_groupid', $groupid);
 127                  $blockperm->setVar('gperm_itemid', $r_bid);
 128                  $blockperm->setVar('gperm_name', 'block_read');
 129                  $blockperm->setVar('gperm_modid', 1);
 130                  $gperm_handler->insert($blockperm);
 131              }
 132              redirect_header("admin.php?fct=groups&amp;op=adminMain",1,_AM_DBUPDATED);
 133          }
 134          break;
 135      case "add":
 136          if (!$GLOBALS['xoopsSecurity']->check()) {
 137              redirect_header("admin.php?fct=groups&amp;op=adminMain", 3, implode('<br />', $GLOBALS['xoopsSecurity']->getErrors()));
 138          }
 139          if (!$name) {
 140              xoops_cp_header();
 141              echo _AM_UNEED2ENTER;
 142              xoops_cp_footer();
 143              exit();
 144          }
 145          $system_catids = empty($system_catids) ? array() : $system_catids;
 146          $admin_mids = empty($admin_mids) ? array() : $admin_mids;
 147          $read_mids = empty($read_mids) ? array() : $read_mids;
 148          $read_bids = empty($read_bids) ? array() : $read_bids;
 149          $member_handler =& xoops_gethandler('member');
 150          $group =& $member_handler->createGroup();
 151          $group->setVar("name", $name);
 152          $group->setVar("description", $desc);
 153          if (count($system_catids) > 0) {
 154              $group->setVar("group_type", 'Admin');
 155          }
 156          if (!$member_handler->insertGroup($group)) {
 157              xoops_cp_header();
 158              echo $group->getHtmlErrors();
 159              xoops_cp_footer();
 160          } else {
 161              $groupid = $group->getVar('groupid');
 162              $gperm_handler =& xoops_gethandler('groupperm');
 163              if (count($system_catids) > 0) {
 164                  array_push($admin_mids, 1);
 165                  foreach ($system_catids as $s_cid) {
 166                      $sysperm =& $gperm_handler->create();
 167                      $sysperm->setVar('gperm_groupid', $groupid);
 168                      $sysperm->setVar('gperm_itemid', $s_cid);
 169                      $sysperm->setVar('gperm_name', 'system_admin');
 170                      $sysperm->setVar('gperm_modid', 1);
 171                      $gperm_handler->insert($sysperm);
 172                  }
 173              }
 174              foreach ($admin_mids as $a_mid) {
 175                  $modperm =& $gperm_handler->create();
 176                  $modperm->setVar('gperm_groupid', $groupid);
 177                  $modperm->setVar('gperm_itemid', $a_mid);
 178                  $modperm->setVar('gperm_name', 'module_admin');
 179                  $modperm->setVar('gperm_modid', 1);
 180                  $gperm_handler->insert($modperm);
 181              }
 182              array_push($read_mids, 1);
 183              foreach ($read_mids as $r_mid) {
 184                  $modperm =& $gperm_handler->create();
 185                  $modperm->setVar('gperm_groupid', $groupid);
 186                  $modperm->setVar('gperm_itemid', $r_mid);
 187                  $modperm->setVar('gperm_name', 'module_read');
 188                  $modperm->setVar('gperm_modid', 1);
 189                  $gperm_handler->insert($modperm);
 190              }
 191              foreach ($read_bids as $r_bid) {
 192                  $blockperm =& $gperm_handler->create();
 193                  $blockperm->setVar('gperm_groupid', $groupid);
 194                  $blockperm->setVar('gperm_itemid', $r_bid);
 195                  $blockperm->setVar('gperm_name', 'block_read');
 196                  $blockperm->setVar('gperm_modid', 1);
 197                  $gperm_handler->insert($blockperm);
 198              }
 199              redirect_header("admin.php?fct=groups&amp;op=adminMain",1,_AM_DBUPDATED);
 200          }
 201          break;
 202      case "del":
 203          xoops_cp_header();
 204          xoops_confirm(array('fct' => 'groups', 'op' => 'delConf', 'g_id' => $g_id), 'admin.php', _AM_AREUSUREDEL);
 205          xoops_cp_footer();
 206          break;
 207      case "delConf":
 208          if (!$GLOBALS['xoopsSecurity']->check()) {
 209              redirect_header("admin.php?fct=groups&amp;op=adminMain", 3, implode('<br />', $GLOBALS['xoopsSecurity']->getErrors()));
 210          }
 211          if (intval($g_id) > 0 && !in_array($g_id, array(XOOPS_GROUP_ADMIN, XOOPS_GROUP_USERS, XOOPS_GROUP_ANONYMOUS))) {
 212              $member_handler =& xoops_gethandler('member');
 213              $group =& $member_handler->getGroup($g_id);
 214              $member_handler->deleteGroup($group);
 215              $gperm_handler =& xoops_gethandler('groupperm');
 216              $gperm_handler->deleteByGroup($g_id);
 217          }
 218          redirect_header("admin.php?fct=groups&amp;op=adminMain",1,_AM_DBUPDATED);
 219          break;
 220      case "addUser":
 221          if (!$GLOBALS['xoopsSecurity']->check()) {
 222              redirect_header("admin.php?fct=groups&amp;op=adminMain", 3, implode('<br />', $GLOBALS['xoopsSecurity']->getErrors()));
 223          }
 224          $member_handler =& xoops_gethandler('member');
 225          $size = count($uids);
 226          for ( $i = 0; $i < $size; $i++ ) {
 227              $member_handler->addUserToGroup($groupid, $uids[$i]);
 228          }
 229          redirect_header("admin.php?fct=groups&amp;op=modify&amp;g_id=".$groupid."",0,_AM_DBUPDATED);
 230          break;
 231      case "delUser":
 232          if (!$GLOBALS['xoopsSecurity']->check()) {
 233              redirect_header("admin.php?fct=groups&amp;op=adminMain", 3, implode('<br />', $GLOBALS['xoopsSecurity']->getErrors()));
 234          }
 235          if (intval($groupid) > 0) {
 236              $member_handler =& xoops_gethandler('member');
 237              $memstart = isset($memstart) ? intval($memstart) : 0;
 238              if ($groupid == XOOPS_GROUP_ADMIN) {
 239                  if ($member_handler->getUserCountByGroup($groupid) > count($uids)){
 240                      $member_handler->removeUsersFromGroup($groupid, $uids);
 241                  }
 242              } else {
 243                  $member_handler->removeUsersFromGroup($groupid, $uids);
 244              }
 245              redirect_header('admin.php?fct=groups&amp;op=modify&amp;g_id='.$groupid.'&amp;memstart='.$memstart,0,_AM_DBUPDATED);
 246          }
 247          break;
 248      case "display":
 249          default:
 250          displayGroups();
 251          break;
 252      }
 253  }
 254  ?>


Généré le : Sun Nov 25 11:44:32 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics