onokazu
onoka****@users*****
2005年 6月 11日 (土) 11:32:51 JST
Index: xoops2jp/html/modules/system/admin/groups/groupform.php diff -u xoops2jp/html/modules/system/admin/groups/groupform.php:1.2 xoops2jp/html/modules/system/admin/groups/groupform.php:1.3 --- xoops2jp/html/modules/system/admin/groups/groupform.php:1.2 Fri Mar 18 21:52:38 2005 +++ xoops2jp/html/modules/system/admin/groups/groupform.php Sat Jun 11 11:32:51 2005 @@ -1,5 +1,5 @@ <?php -// $Id: groupform.php,v 1.2 2005/03/18 12:52:38 onokazu Exp $ +// $Id: groupform.php,v 1.3 2005/06/11 02:32:51 onokazu Exp $ // ------------------------------------------------------------------------ // // XOOPS - PHP Content Management System // // Copyright (c) 2000 XOOPS.org // @@ -95,6 +95,7 @@ $fct_hidden = new XoopsFormHidden("fct", "groups"); $submit_button = new XoopsFormButton("", "groupsubmit", $submit_value, "submit"); $form = new XoopsThemeForm($form_title, "groupform", "admin.php"); +$form->addElement(new XoopsFormToken(XoopsMultiTokenHandler::quickCreate('groups_'.$op_value))); $form->addElement($name_text); $form->addElement($desc_text); $form->addElement($s_cat_checkbox); Index: xoops2jp/html/modules/system/admin/groups/groups.php diff -u xoops2jp/html/modules/system/admin/groups/groups.php:1.2 xoops2jp/html/modules/system/admin/groups/groups.php:1.3 --- xoops2jp/html/modules/system/admin/groups/groups.php:1.2 Fri Mar 18 21:52:38 2005 +++ xoops2jp/html/modules/system/admin/groups/groups.php Sat Jun 11 11:32:51 2005 @@ -1,5 +1,5 @@ <?php -// $Id: groups.php,v 1.2 2005/03/18 12:52:38 onokazu Exp $ +// $Id: groups.php,v 1.3 2005/06/11 02:32:51 onokazu Exp $ // ------------------------------------------------------------------------ // // XOOPS - PHP Content Management System // // Copyright (c) 2000 XOOPS.org // @@ -30,7 +30,18 @@ // ------------------------------------------------------------------------- // if ( !is_object($xoopsUser) || !is_object($xoopsModule) || !$xoopsUser->isAdmin($xoopsModule->mid()) ) { - exit("Access Denied"); + exit("Access Denied"); +} + +/** + * Display error message & exit (Tentative) + */ +function system_groups_error($message) +{ + xoops_cp_header(); + xoops_error($message); + xoops_cp_footer(); + exit(); } /*********************************************************/ @@ -38,158 +49,167 @@ /*********************************************************/ function displayGroups() { - xoops_cp_header(); - //OpenTable(); - echo "<h4 style='text-align:left'>"._AM_EDITADG."</h4>"; - $member_handler =& xoops_gethandler('member'); - $groups =& $member_handler->getGroups(); + xoops_cp_header(); + //OpenTable(); + echo "<h4 style='text-align:left'>"._AM_EDITADG."</h4>"; + $member_handler =& xoops_gethandler('member'); + $groups =& $member_handler->getGroups(); echo "<table class='outer' width='40%' cellpadding='4' cellspacing='1'><tr><th colspan='2'>"._AM_EDITADG."</th></tr>"; - $count = count($groups); - for ($i = 0; $i < $count; $i++) { - $id = $groups[$i]->getVar('groupid'); + $count = count($groups); + for ($i = 0; $i < $count; $i++) { + $id = $groups[$i]->getVar('groupid'); echo '<tr><td class="head">'.$groups[$i]->getVar('name').'</td>'; - echo '<td class="even"><a href="admin.php?fct=groups&op=modify&g_id='.$id.'">'._AM_MODIFY.'</a>'; - if (XOOPS_GROUP_ADMIN == $id || XOOPS_GROUP_USERS == $id || XOOPS_GROUP_ANONYMOUS == $id) { - echo '</td></tr>'; - } else { - echo ' <a href="admin.php?fct=groups&op=del&g_id='.$id.'">'._AM_DELETE.'</a></td></tr>'; - } - } - echo "</table>"; - $name_value = ""; - $desc_value = ""; - $s_cat_value = ''; - $a_mod_value = array(); - $r_mod_value = array(); - $r_block_value = array(); - $op_value = "add"; - $submit_value = _AM_CREATENEWADG; - $g_id_value = ""; - $type_value = ""; - $form_title = _AM_CREATENEWADG; - include XOOPS_ROOT_PATH."/modules/system/admin/groups/groupform.php"; - //CloseTable(); - xoops_cp_footer(); + echo '<td class="even"><a href="admin.php?fct=groups&op=modify&g_id='.$id.'">'._AM_MODIFY.'</a>'; + if (XOOPS_GROUP_ADMIN == $id || XOOPS_GROUP_USERS == $id || XOOPS_GROUP_ANONYMOUS == $id) { + echo '</td></tr>'; + } else { + echo ' <a href="admin.php?fct=groups&op=del&g_id='.$id.'">'._AM_DELETE.'</a></td></tr>'; + } + } + echo "</table>"; + $name_value = ""; + $desc_value = ""; + $s_cat_value = ''; + $a_mod_value = array(); + $r_mod_value = array(); + $r_block_value = array(); + $op_value = "add"; + $submit_value = _AM_CREATENEWADG; + $g_id_value = ""; + $type_value = ""; + $form_title = _AM_CREATENEWADG; + include XOOPS_ROOT_PATH."/modules/system/admin/groups/groupform.php"; + //CloseTable(); + xoops_cp_footer(); } function modifyGroup($g_id) { - $userstart = $memstart = 0; - if ( !empty($_POST['userstart']) ) { - $userstart = intval($_POST['userstart']); - } elseif (!empty($_GET['userstart'])) { - $userstart = intval($_GET['userstart']); - } - if ( !empty($_POST['memstart']) ) { - $memstart = intval($_POST['memstart']); - } elseif (!empty($_GET['memstart'])) { - $memstart = intval($_GET['memstart']); - } - xoops_cp_header(); - //OpenTable(); - echo '<a href="admin.php?fct=groups">'. _AM_GROUPSMAIN .'</a> <span style="font-weight:bold;">»»</span> '. _AM_MODIFYADG.'<br /><br />'; - $member_handler =& xoops_gethandler('member'); - $thisgroup =& $member_handler->getGroup($g_id); - $name_value = $thisgroup->getVar("name", "E"); - $desc_value = $thisgroup->getVar("description", "E"); - $moduleperm_handler =& xoops_gethandler('groupperm'); - $a_mod_value =& $moduleperm_handler->getItemIds('module_admin', $thisgroup->getVar('groupid')); - $r_mod_value =& $moduleperm_handler->getItemIds('module_read', $thisgroup->getVar('groupid')); - $r_block_value =& XoopsBlock::getAllBlocksByGroup($thisgroup->getVar("groupid"), false); - $op_value = "update"; - $submit_value = _AM_UPDATEADG; - $g_id_value = $thisgroup->getVar("groupid"); - $type_value = $thisgroup->getVar("group_type", "E"); - $form_title = _AM_MODIFYADG; - if (XOOPS_GROUP_ADMIN == $g_id) { - $s_cat_disable = true; - } - - $sysperm_handler =& xoops_gethandler('groupperm'); - $s_cat_value =& $sysperm_handler->getItemIds('system_admin', $g_id); - - include XOOPS_ROOT_PATH."/modules/system/admin/groups/groupform.php"; - echo "<br /><h4 style='text-align:left'>"._AM_EDITMEMBER."</h4>"; - $usercount = $member_handler->getUserCount(new Criteria('level', 0, '>')); - $member_handler =& xoops_gethandler('member'); - $membercount = $member_handler->getUserCountByGroup($g_id); - if ($usercount < 200 && $membercount < 200) { - // do the old way only when counts are small - $mlist = array(); - $members =& $member_handler->getUsersByGroup($g_id, false); - if (count($members) > 0) { - $member_criteria = new Criteria('uid', "(".implode(',', $members).")", "IN"); - $member_criteria->setSort('uname'); - $mlist = $member_handler->getUserList($member_criteria); - } - $criteria = new Criteria('level', 0, '>'); - $criteria->setSort('uname'); - $userslist =& $member_handler->getUserList($criteria); - $users =& array_diff($userslist, $mlist); - echo '<table class="outer"> - <tr><th align="center">'._AM_NONMEMBERS.'<br />'; - - echo '</th><th></th><th align="center">'._AM_MEMBERS.'<br />'; - echo '</th></tr> - <tr><td class="even"> - <form action="admin.php" method="post"> - <select name="uids[]" size="10" multiple="multiple">'."\n"; - foreach ($users as $u_id => $u_name) { - echo '<option value="'.$u_id.'">'.$u_name.'</option>'."\n"; - } - echo '</select>'; - echo "</td><td align='center' class='odd'> - <input type='hidden' name='op' value='addUser' /> - <input type='hidden' name='fct' value='groups' /> - <input type='hidden' name='groupid' value='".$thisgroup->getVar("groupid")."' /> - <input type='submit' name='submit' value='"._AM_ADDBUTTON."' /> - </form><br /> - <form action='admin.php' method='post' /> - <input type='hidden' name='op' value='delUser' /> - <input type='hidden' name='fct' value='groups' /> - <input type='hidden' name='groupid' value='".$thisgroup->getVar("groupid")."' /> - <input type='submit' name='submit' value='"._AM_DELBUTTON."' /> - </td> - <td class='even'>"; - echo "<select name='uids[]' size='10' multiple='multiple'>"; - foreach ($mlist as $m_id => $m_name) { - echo '<option value="'.$m_id.'">'.$m_name.'</option>'."\n"; - } - echo "</select>"; - echo '</td></tr> - </form> - </table>'; - } else { - $members =& $member_handler->getUsersByGroup($g_id, false, 200, $memstart); - $mlist = array(); - if (count($members) > 0) { - $member_criteria = new Criteria('uid', "(".implode(',', $members).")", "IN"); - $member_criteria->setSort('uname'); - $mlist = $member_handler->getUserList($member_criteria); - } - echo '<a href="'.XOOPS_URL.'/modules/system/admin.php?fct=findusers&group='.$g_id.'">'._AM_FINDU4GROUP.'</a><br />'; - echo '<form action="admin.php" method="post"> - <table class="outer"> - <tr><th align="center">'._AM_MEMBERS.'<br />'; - $nav = new XoopsPageNav($membercount, 200, $memstart, "memstart", "fct=groups&op=modify&g_id=".$g_id); - echo $nav->renderNav(4); - echo "</th></tr> - <tr><td class='even' align='center'> - <input type='hidden' name='op' value='delUser' /> - <input type='hidden' name='fct' value='groups' /> - <input type='hidden' name='groupid' value='".$thisgroup->getVar("groupid")."' /> - <input type='hidden' name='memstart' value='".$memstart."' /> - <select name='uids[]' size='10' multiple='multiple'>"; - foreach ($mlist as $m_id => $m_name ) { - echo '<option value="'.$m_id.'">'.$m_name.'</option>'."\n"; - } - echo "</select><br /> - <input type='submit' name='submit' value='"._DELETE."' /> - </td></tr> - </table> - </form>"; - } - //CloseTable(); - xoops_cp_footer(); + $userstart = $memstart = 0; + if ( !empty($_POST['userstart']) ) { + $userstart = intval($_POST['userstart']); + } elseif (!empty($_GET['userstart'])) { + $userstart = intval($_GET['userstart']); + } + if ( !empty($_POST['memstart']) ) { + $memstart = intval($_POST['memstart']); + } elseif (!empty($_GET['memstart'])) { + $memstart = intval($_GET['memstart']); + } + xoops_cp_header(); + //OpenTable(); + echo '<a href="admin.php?fct=groups">'. _AM_GROUPSMAIN .'</a> <span style="font-weight:bold;">»»</span> '. _AM_MODIFYADG.'<br /><br />'; + $member_handler =& xoops_gethandler('member'); + $thisgroup =& $member_handler->getGroup($g_id); + $name_value = $thisgroup->getVar("name", "E"); + $desc_value = $thisgroup->getVar("description", "E"); + $moduleperm_handler =& xoops_gethandler('groupperm'); + $a_mod_value =& $moduleperm_handler->getItemIds('module_admin', $thisgroup->getVar('groupid')); + $r_mod_value =& $moduleperm_handler->getItemIds('module_read', $thisgroup->getVar('groupid')); + $r_block_value =& XoopsBlock::getAllBlocksByGroup($thisgroup->getVar("groupid"), false); + $op_value = "update"; + $submit_value = _AM_UPDATEADG; + $g_id_value = $thisgroup->getVar("groupid"); + $type_value = $thisgroup->getVar("group_type", "E"); + $form_title = _AM_MODIFYADG; + if (XOOPS_GROUP_ADMIN == $g_id) { + $s_cat_disable = true; + } + + $sysperm_handler =& xoops_gethandler('groupperm'); + $s_cat_value =& $sysperm_handler->getItemIds('system_admin', $g_id); + + include XOOPS_ROOT_PATH."/modules/system/admin/groups/groupform.php"; + echo "<br /><h4 style='text-align:left'>"._AM_EDITMEMBER."</h4>"; + $usercount = $member_handler->getUserCount(new Criteria('level', 0, '>')); + $member_handler =& xoops_gethandler('member'); + $membercount = $member_handler->getUserCountByGroup($g_id); + $token=&XoopsMultiTokenHandler::quickCreate('groups_User'); + if ($usercount < 200 && $membercount < 200) { + // do the old way only when counts are small + $mlist = array(); + $members =& $member_handler->getUsersByGroup($g_id, false); + if (count($members) > 0) { + $member_criteria = new Criteria('uid', "(".implode(',', $members).")", "IN"); + $member_criteria->setSort('uname'); + $mlist = $member_handler->getUserList($member_criteria); + } + $criteria = new Criteria('level', 0, '>'); + $criteria->setSort('uname'); + $userslist =& $member_handler->getUserList($criteria); + $users =& array_diff($userslist, $mlist); + echo '<table class="outer"> + <tr><th align="center">'._AM_NONMEMBERS.'<br />'; + echo '</th><th></th><th align="center">'._AM_MEMBERS.'<br />'; + echo '</th></tr> + <tr><td class="even"> + <form action="admin.php" method="post">'; + + echo $token->getHtml(); + + echo '<select name="uids[]" size="10" multiple="multiple">'."\n"; + foreach ($users as $u_id => $u_name) { + echo '<option value="'.$u_id.'">'.$u_name.'</option>'."\n"; + } + echo '</select>'; + + + echo "</td><td align='center' class='odd'> + <input type='hidden' name='op' value='addUser' /> + <input type='hidden' name='fct' value='groups' /> + <input type='hidden' name='groupid' value='".$thisgroup->getVar("groupid")."' /> + <input type='submit' name='submit' value='"._AM_ADDBUTTON."' /> + </form><br /> + <form action='admin.php' method='post' />"; + + echo $token->getHtml(); + + echo "<input type='hidden' name='op' value='delUser' /> + <input type='hidden' name='fct' value='groups' /> + <input type='hidden' name='groupid' value='".$thisgroup->getVar("groupid")."' /> + <input type='submit' name='submit' value='"._AM_DELBUTTON."' /> + </td> + <td class='even'>"; + echo "<select name='uids[]' size='10' multiple='multiple'>"; + foreach ($mlist as $m_id => $m_name) { + echo '<option value="'.$m_id.'">'.$m_name.'</option>'."\n"; + } + echo "</select>"; + echo '</td></tr> + </form> + </table>'; + } else { + $members =& $member_handler->getUsersByGroup($g_id, false, 200, $memstart); + $mlist = array(); + if (count($members) > 0) { + $member_criteria = new Criteria('uid', "(".implode(',', $members).")", "IN"); + $member_criteria->setSort('uname'); + $mlist = $member_handler->getUserList($member_criteria); + } + echo '<a href="'.XOOPS_URL.'/modules/system/admin.php?fct=findusers&group='.$g_id.'">'._AM_FINDU4GROUP.'</a><br />'; + echo '<form action="admin.php" method="post"> + <table class="outer"> + <tr><th align="center">'._AM_MEMBERS.'<br />'; + $nav = new XoopsPageNav($membercount, 200, $memstart, "memstart", "fct=groups&op=modify&g_id=".$g_id); + echo $token->getHtml(); + echo $nav->renderNav(4); + echo "</th></tr> + <tr><td class='even' align='center'> + <input type='hidden' name='op' value='delUser' /> + <input type='hidden' name='fct' value='groups' /> + <input type='hidden' name='groupid' value='".$thisgroup->getVar("groupid")."' /> + <input type='hidden' name='memstart' value='".$memstart."' /> + <select name='uids[]' size='10' multiple='multiple'>"; + foreach ($mlist as $m_id => $m_name ) { + echo '<option value="'.$m_id.'">'.$m_name.'</option>'."\n"; + } + echo "</select><br /> + <input type='submit' name='submit' value='"._DELETE."' /> + </td></tr> + </table> + </form>"; + } + //CloseTable(); + xoops_cp_footer(); } ?> \ No newline at end of file Index: xoops2jp/html/modules/system/admin/groups/main.php diff -u xoops2jp/html/modules/system/admin/groups/main.php:1.2 xoops2jp/html/modules/system/admin/groups/main.php:1.3 --- xoops2jp/html/modules/system/admin/groups/main.php:1.2 Fri Mar 18 21:52:38 2005 +++ xoops2jp/html/modules/system/admin/groups/main.php Sat Jun 11 11:32:51 2005 @@ -1,5 +1,5 @@ <?php -// $Id: main.php,v 1.2 2005/03/18 12:52:38 onokazu Exp $ +// $Id: main.php,v 1.3 2005/06/11 02:32:51 onokazu Exp $ // ------------------------------------------------------------------------ // // XOOPS - PHP Content Management System // // Copyright (c) 2000 XOOPS.org // @@ -30,210 +30,235 @@ // ------------------------------------------------------------------------- // if ( !is_object($xoopsUser) || !is_object($xoopsModule) || !$xoopsUser->isAdmin($xoopsModule->mid()) ) { - exit("Access Denied"); + exit("Access Denied"); } else { - include_once XOOPS_ROOT_PATH.'/class/xoopsblock.php'; - include_once XOOPS_ROOT_PATH."/modules/system/admin/groups/groups.php"; - $op = "display"; - if ( isset($_POST) ) { - foreach ( $_POST as $k => $v ) { - $$k = $v; - } - } - if ( isset($_GET['op']) ) { - if ($_GET['op'] == "modify" || $_GET['op'] == "del") { - $op = $_GET['op']; - $g_id = $_GET['g_id']; - } - } - - // from finduser section - if ( !empty($memberslist_id) && is_array($memberslist_id) ) { - $op = "addUser"; - $uids =& $memberslist_id; - } - - switch ($op) { - case "modify": - include_once XOOPS_ROOT_PATH.'/class/pagenav.php'; - modifyGroup($g_id); - break; - case "update": - $system_catids = empty($system_catids) ? array() : $system_catids; - $admin_mids = empty($admin_mids) ? array() : $admin_mids; - $read_mids = empty($read_mids) ? array() : $read_mids; - $read_bids = empty($read_bids) ? array() : $read_bids; - $member_handler =& xoops_gethandler('member'); - $group =& $member_handler->getGroup($g_id); - $group->setVar('name', $name); - $group->setVar('description', $desc); - // if this group is not one of the default groups - if (!in_array($group->getVar('groupid'), array(XOOPS_GROUP_ADMIN, XOOPS_GROUP_USERS, XOOPS_GROUP_ANONYMOUS))) { - if (count($system_catids) > 0) { - $group->setVar('group_type', 'Admin'); - } else { - $group->setVar('group_type', ''); - } - } - if (!$member_handler->insertGroup($group)) { - xoops_cp_header(); - echo $group->getHtmlErrors(); - xoops_cp_footer(); - } else { - $groupid = $group->getVar('groupid'); - $gperm_handler =& xoops_gethandler('groupperm'); - $criteria = new CriteriaCompo(new Criteria('gperm_groupid', $groupid)); - $criteria->add(new Criteria('gperm_modid', 1)); - $criteria2 = new CriteriaCompo(new Criteria('gperm_name', 'system_admin')); - $criteria2->add(new Criteria('gperm_name', 'module_admin'), 'OR'); - $criteria2->add(new Criteria('gperm_name', 'module_read'), 'OR'); - $criteria2->add(new Criteria('gperm_name', 'block_read'), 'OR'); - $criteria->add($criteria2); - $gperm_handler->deleteAll($criteria); - if (count($system_catids) > 0) { - array_push($admin_mids, 1); - foreach ($system_catids as $s_cid) { - $sysperm =& $gperm_handler->create(); - $sysperm->setVar('gperm_groupid', $groupid); - $sysperm->setVar('gperm_itemid', $s_cid); - $sysperm->setVar('gperm_name', 'system_admin'); - $sysperm->setVar('gperm_modid', 1); - $gperm_handler->insert($sysperm); - } - } - foreach ($admin_mids as $a_mid) { - $modperm =& $gperm_handler->create(); - $modperm->setVar('gperm_groupid', $groupid); - $modperm->setVar('gperm_itemid', $a_mid); - $modperm->setVar('gperm_name', 'module_admin'); - $modperm->setVar('gperm_modid', 1); - $gperm_handler->insert($modperm); - } - array_push($read_mids, 1); - foreach ($read_mids as $r_mid) { - $modperm =& $gperm_handler->create(); - $modperm->setVar('gperm_groupid', $groupid); - $modperm->setVar('gperm_itemid', $r_mid); - $modperm->setVar('gperm_name', 'module_read'); - $modperm->setVar('gperm_modid', 1); - $gperm_handler->insert($modperm); - } - foreach ($read_bids as $r_bid) { - $blockperm =& $gperm_handler->create(); - $blockperm->setVar('gperm_groupid', $groupid); - $blockperm->setVar('gperm_itemid', $r_bid); - $blockperm->setVar('gperm_name', 'block_read'); - $blockperm->setVar('gperm_modid', 1); - $gperm_handler->insert($blockperm); - } - redirect_header("admin.php?fct=groups&op=adminMain",1,_AM_DBUPDATED); - } - break; - case "add": - if (!$name) { - xoops_cp_header(); - echo _AM_UNEED2ENTER; - xoops_cp_footer(); - exit(); - } - $system_catids = empty($system_catids) ? array() : $system_catids; - $admin_mids = empty($admin_mids) ? array() : $admin_mids; - $read_mids = empty($read_mids) ? array() : $read_mids; - $read_bids = empty($read_bids) ? array() : $read_bids; - $member_handler =& xoops_gethandler('member'); - $group =& $member_handler->createGroup(); - $group->setVar("name", $name); - $group->setVar("description", $desc); - if (count($system_catids) > 0) { - $group->setVar("group_type", 'Admin'); - } - if (!$member_handler->insertGroup($group)) { - xoops_cp_header(); - echo $group->getHtmlErrors(); - xoops_cp_footer(); - } else { - $groupid = $group->getVar('groupid'); - $gperm_handler =& xoops_gethandler('groupperm'); - if (count($system_catids) > 0) { - array_push($admin_mids, 1); - foreach ($system_catids as $s_cid) { - $sysperm =& $gperm_handler->create(); - $sysperm->setVar('gperm_groupid', $groupid); - $sysperm->setVar('gperm_itemid', $s_cid); - $sysperm->setVar('gperm_name', 'system_admin'); - $sysperm->setVar('gperm_modid', 1); - $gperm_handler->insert($sysperm); - } - } - foreach ($admin_mids as $a_mid) { - $modperm =& $gperm_handler->create(); - $modperm->setVar('gperm_groupid', $groupid); - $modperm->setVar('gperm_itemid', $a_mid); - $modperm->setVar('gperm_name', 'module_admin'); - $modperm->setVar('gperm_modid', 1); - $gperm_handler->insert($modperm); - } - array_push($read_mids, 1); - foreach ($read_mids as $r_mid) { - $modperm =& $gperm_handler->create(); - $modperm->setVar('gperm_groupid', $groupid); - $modperm->setVar('gperm_itemid', $r_mid); - $modperm->setVar('gperm_name', 'module_read'); - $modperm->setVar('gperm_modid', 1); - $gperm_handler->insert($modperm); - } - foreach ($read_bids as $r_bid) { - $blockperm =& $gperm_handler->create(); - $blockperm->setVar('gperm_groupid', $groupid); - $blockperm->setVar('gperm_itemid', $r_bid); - $blockperm->setVar('gperm_name', 'block_read'); - $blockperm->setVar('gperm_modid', 1); - $gperm_handler->insert($blockperm); - } - redirect_header("admin.php?fct=groups&op=adminMain",1,_AM_DBUPDATED); - } + include_once XOOPS_ROOT_PATH.'/class/xoopsblock.php'; + include_once XOOPS_ROOT_PATH."/modules/system/admin/groups/groups.php"; + $op = "display"; + + if ( isset($_GET['op']) ) { + if ($_GET['op'] == "modify" || $_GET['op'] == "del") { + $op = $_GET['op']; + $g_id = $_GET['g_id']; + } + } elseif (isset($_POST['op'])) { + $op = $_POST['op']; + } + + // from finduser section + if ( !empty($_POST['memberslist_id']) && is_array($_POST['memberslist_id']) ) { + $op = "addUser"; + $_POST['uids'] = $_POST['memberslist_id']; + } + + switch ($op) { + case "modify": + include_once XOOPS_ROOT_PATH.'/class/pagenav.php'; + modifyGroup($g_id); + break; + case "update": + if(!XoopsMultiTokenHandler::quickValidate('groups_update')) + system_groups_error("Ticket Error"); + + $g_id = !empty($_POST['g_id']) ? intval($_POST['g_id']) : 0; + if ($g_id <= 0) { + exit(); + } + $system_catids = empty($_POST['system_catids']) ? array() : $_POST['system_catids']; + $admin_mids = empty($_POST['admin_mids']) ? array() : $_POST['admin_mids']; + $read_mids = empty($_POST['read_mids']) ? array() : $_POST['read_mids']; + $read_bids = empty($_POST['read_bids']) ? array() : $_POST['read_bids']; + $member_handler =& xoops_gethandler('member'); + $group =& $member_handler->getGroup($g_id); + $group->setVar('name', $_POST['name']); + $group->setVar('description', $_POST['desc']); + // if this group is not one of the default groups + if (!in_array($group->getVar('groupid'), array(XOOPS_GROUP_ADMIN, XOOPS_GROUP_USERS, XOOPS_GROUP_ANONYMOUS))) { + if (count($system_catids) > 0) { + $group->setVar('group_type', 'Admin'); + } else { + $group->setVar('group_type', ''); + } + } + if (!$member_handler->insertGroup($group)) { + xoops_cp_header(); + echo $group->getHtmlErrors(); + xoops_cp_footer(); + } else { + $groupid = $group->getVar('groupid'); + $gperm_handler =& xoops_gethandler('groupperm'); + $criteria = new CriteriaCompo(new Criteria('gperm_groupid', $groupid)); + $criteria->add(new Criteria('gperm_modid', 1)); + $criteria2 = new CriteriaCompo(new Criteria('gperm_name', 'system_admin')); + $criteria2->add(new Criteria('gperm_name', 'module_admin'), 'OR'); + $criteria2->add(new Criteria('gperm_name', 'module_read'), 'OR'); + $criteria2->add(new Criteria('gperm_name', 'block_read'), 'OR'); + $criteria->add($criteria2); + $gperm_handler->deleteAll($criteria); + if (count($system_catids) > 0) { + array_push($admin_mids, 1); + foreach ($system_catids as $s_cid) { + $sysperm =& $gperm_handler->create(); + $sysperm->setVar('gperm_groupid', $groupid); + $sysperm->setVar('gperm_itemid', $s_cid); + $sysperm->setVar('gperm_name', 'system_admin'); + $sysperm->setVar('gperm_modid', 1); + $gperm_handler->insert($sysperm); + } + } + foreach ($admin_mids as $a_mid) { + $modperm =& $gperm_handler->create(); + $modperm->setVar('gperm_groupid', $groupid); + $modperm->setVar('gperm_itemid', $a_mid); + $modperm->setVar('gperm_name', 'module_admin'); + $modperm->setVar('gperm_modid', 1); + $gperm_handler->insert($modperm); + } + array_push($read_mids, 1); + foreach ($read_mids as $r_mid) { + $modperm =& $gperm_handler->create(); + $modperm->setVar('gperm_groupid', $groupid); + $modperm->setVar('gperm_itemid', $r_mid); + $modperm->setVar('gperm_name', 'module_read'); + $modperm->setVar('gperm_modid', 1); + $gperm_handler->insert($modperm); + } + foreach ($read_bids as $r_bid) { + $blockperm =& $gperm_handler->create(); + $blockperm->setVar('gperm_groupid', $groupid); + $blockperm->setVar('gperm_itemid', $r_bid); + $blockperm->setVar('gperm_name', 'block_read'); + $blockperm->setVar('gperm_modid', 1); + $gperm_handler->insert($blockperm); + } + redirect_header("admin.php?fct=groups&op=adminMain",1,_AM_DBUPDATED); + } + break; + case "add": + if(!XoopsMultiTokenHandler::quickValidate('groups_add')) + system_groups_error("Ticket Error"); + + $name = !empty($_POST['name']) ? trim($_POST['name']) : ''; + if ($name == '') { + xoops_cp_header(); + echo _AM_UNEED2ENTER; + xoops_cp_footer(); + exit(); + } + $system_catids = empty($_POST['system_catids']) ? array() : $_POST['system_catids']; + $admin_mids = empty($_POST['admin_mids']) ? array() : $_POST['admin_mids']; + $read_mids = empty($_POST['read_mids']) ? array() : $_POST['read_mids']; + $read_bids = empty($_POST['read_bids']) ? array() : $_POST['read_bids']; + $member_handler =& xoops_gethandler('member'); + $group =& $member_handler->createGroup(); + $group->setVar("name", $name); + $group->setVar("description", $_POST['desc']); + if (count($system_catids) > 0) { + $group->setVar("group_type", 'Admin'); + } + if (!$member_handler->insertGroup($group)) { + xoops_cp_header(); + echo $group->getHtmlErrors(); + xoops_cp_footer(); + } else { + $groupid = $group->getVar('groupid'); + $gperm_handler =& xoops_gethandler('groupperm'); + if (count($system_catids) > 0) { + array_push($admin_mids, 1); + foreach ($system_catids as $s_cid) { + $sysperm =& $gperm_handler->create(); + $sysperm->setVar('gperm_groupid', $groupid); + $sysperm->setVar('gperm_itemid', $s_cid); + $sysperm->setVar('gperm_name', 'system_admin'); + $sysperm->setVar('gperm_modid', 1); + $gperm_handler->insert($sysperm); + } + } + foreach ($admin_mids as $a_mid) { + $modperm =& $gperm_handler->create(); + $modperm->setVar('gperm_groupid', $groupid); + $modperm->setVar('gperm_itemid', $a_mid); + $modperm->setVar('gperm_name', 'module_admin'); + $modperm->setVar('gperm_modid', 1); + $gperm_handler->insert($modperm); + } + array_push($read_mids, 1); + foreach ($read_mids as $r_mid) { + $modperm =& $gperm_handler->create(); + $modperm->setVar('gperm_groupid', $groupid); + $modperm->setVar('gperm_itemid', $r_mid); + $modperm->setVar('gperm_name', 'module_read'); + $modperm->setVar('gperm_modid', 1); + $gperm_handler->insert($modperm); + } + foreach ($read_bids as $r_bid) { + $blockperm =& $gperm_handler->create(); + $blockperm->setVar('gperm_groupid', $groupid); + $blockperm->setVar('gperm_itemid', $r_bid); + $blockperm->setVar('gperm_name', 'block_read'); + $blockperm->setVar('gperm_modid', 1); + $gperm_handler->insert($blockperm); + } + redirect_header("admin.php?fct=groups&op=adminMain",1,_AM_DBUPDATED); + } break; case "del": - xoops_cp_header(); - xoops_confirm(array('fct' => 'groups', 'op' => 'delConf', 'g_id' => $g_id), 'admin.php', _AM_AREUSUREDEL); + xoops_cp_header(); + $member_handler =& xoops_gethandler('member'); + $group =& $member_handler->getGroup($g_id); + xoops_token_confirm(array('fct' => 'groups', 'op' => 'delConf', 'g_id' => $g_id), 'admin.php', sprintf(_AM_AREUSUREDEL,$group->getVar('name'))); xoops_cp_footer(); break; - case "delConf": - if (intval($g_id) > 0 && !in_array($g_id, array(XOOPS_GROUP_ADMIN, XOOPS_GROUP_USERS, XOOPS_GROUP_ANONYMOUS))) { - $member_handler =& xoops_gethandler('member'); - $group =& $member_handler->getGroup($g_id); - $member_handler->deleteGroup($group); - $gperm_handler =& xoops_gethandler('groupperm'); - $gperm_handler->deleteByGroup($g_id); - } - redirect_header("admin.php?fct=groups&op=adminMain",1,_AM_DBUPDATED); - break; - case "addUser": - $member_handler =& xoops_gethandler('member'); - $size = count($uids); - for ( $i = 0; $i < $size; $i++ ) { - $member_handler->addUserToGroup($groupid, $uids[$i]); - } - redirect_header("admin.php?fct=groups&op=modify&g_id=".$groupid."",0,_AM_DBUPDATED); - break; - case "delUser": - if (intval($groupid) > 0) { - $member_handler =& xoops_gethandler('member'); - $memstart = isset($memstart) ? intval($memstart) : 0; - if ($groupid == XOOPS_GROUP_ADMIN) { - if ($member_handler->getUserCountByGroup($groupid) > count($uids)){ - $member_handler->removeUsersFromGroup($groupid, $uids); - } - } else { - $member_handler->removeUsersFromGroup($groupid, $uids); - } - redirect_header('admin.php?fct=groups&op=modify&g_id='.$groupid.'&memstart='.$memstart,0,_AM_DBUPDATED); - } - break; - case "display": - default: - displayGroups(); - break; - } + case "delConf": + if(!xoops_confirm_validate()) + system_groups_error("Ticket Error"); + + $g_id = !empty($_POST['g_id']) ? intval($_POST['g_id']) : 0; + if ($g_id > 0 && !in_array($g_id, array(XOOPS_GROUP_ADMIN, XOOPS_GROUP_USERS, XOOPS_GROUP_ANONYMOUS))) { + $member_handler =& xoops_gethandler('member'); + $group =& $member_handler->getGroup($g_id); + $member_handler->deleteGroup($group); + $gperm_handler =& xoops_gethandler('groupperm'); + $gperm_handler->deleteByGroup($g_id); + } + redirect_header("admin.php?fct=groups&op=adminMain",1,_AM_DBUPDATED); + break; + case "addUser": + if(!XoopsMultiTokenHandler::quickValidate('groups_User')) + system_groups_error("Ticket Error"); + + $member_handler =& xoops_gethandler('member'); + $groupid = intval($_POST['groupid']); + if ($groupid > 0) { + $size = count($_POST['uids']); + for ( $i = 0; $i < $size; $i++ ) { + $member_handler->addUserToGroup($_POST['groupid'], $_POST['uids'][$i]); + } + } + redirect_header("admin.php?fct=groups&op=modify&g_id=".$groupid, 0, _AM_DBUPDATED); + break; + case "delUser": + if(!XoopsMultiTokenHandler::quickValidate('groups_User')) + system_groups_error("Ticket Error"); + + $groupid = !empty($_POST['groupid']) ? intval($_POST['groupid']) : 0; + if ($groupid > 0) { + $member_handler =& xoops_gethandler('member'); + $memstart = isset($_POST['memstart']) ? intval($_POST['memstart']) : 0; + if ($groupid == XOOPS_GROUP_ADMIN) { + if ($member_handler->getUserCountByGroup($groupid) > count($_POST['uids'])){ + $member_handler->removeUsersFromGroup($groupid, $_POST['uids']); + } + } else { + $member_handler->removeUsersFromGroup($groupid, $_POST['uids']); + } + redirect_header('admin.php?fct=groups&op=modify&g_id='.$groupid.'&memstart='.$memstart,0,_AM_DBUPDATED); + } + break; + case "display": + default: + displayGroups(); + break; + } } ?> \ No newline at end of file