[ Index ] |
|
Code source de XOOPS 2.0.17.1 |
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&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&op=adminMain",1,_AM_DBUPDATED); 133 } 134 break; 135 case "add": 136 if (!$GLOBALS['xoopsSecurity']->check()) { 137 redirect_header("admin.php?fct=groups&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&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&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&op=adminMain",1,_AM_DBUPDATED); 219 break; 220 case "addUser": 221 if (!$GLOBALS['xoopsSecurity']->check()) { 222 redirect_header("admin.php?fct=groups&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&op=modify&g_id=".$groupid."",0,_AM_DBUPDATED); 230 break; 231 case "delUser": 232 if (!$GLOBALS['xoopsSecurity']->check()) { 233 redirect_header("admin.php?fct=groups&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&op=modify&g_id='.$groupid.'&memstart='.$memstart,0,_AM_DBUPDATED); 246 } 247 break; 248 case "display": 249 default: 250 displayGroups(); 251 break; 252 } 253 } 254 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Nov 25 11:44:32 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |