XCL Web Application Platform 2.5.0
The XoopsCube Legacy Project
Loading...
Searching...
No Matches
groupperm.php
1<?php
3 * @package xoops2
4 * @version $Id: groupperm.php,v 1.3 2008/09/25 15:12:38 kilica Exp $
5 * @copyright (c) 2000-2003 XOOPS.org
6 * @license GPL 2.0
7 * @brief This file has been moved from XOOPS2 for some things which need
8 * full-compatibility with XOOPS2.
9 */
10include '../../../include/cp_header.php';
11$modid = isset($_POST['modid']) ? (int)$_POST['modid'] : 0;
12
13//
14// Load Message catalog
15//
16$root =& XCube_Root::getSingleton();
17$root->mLanguageManager->loadModuleAdminMessageCatalog('legacy');
18
19// we don't want system module permissions to be changed here
20if ($modid <= 1 || !is_object($xoopsUser) || !$xoopsUser->isAdmin($modid)) {
21 redirect_header(XOOPS_URL.'/index.php', 1, _NOPERM);
22 exit();
23}
24$module_handler =& xoops_gethandler('module');
25$module =& $module_handler->get($modid);
26if (!is_object($module) || !$module->getVar('isactive')) {
27 redirect_header(XOOPS_URL.'/admin.php', 1, _MODULENOEXIST);
28 exit();
29}
30$member_handler =& xoops_gethandler('member');
31$group_list =& $member_handler->getGroupList();
32if (is_array($_POST['perms']) && !empty($_POST['perms'])) {
33 $gperm_handler = xoops_gethandler('groupperm');
34 foreach ($_POST['perms'] as $perm_name => $perm_data) {
35 if (false !== $gperm_handler->deleteByModule($modid, $perm_name)) {
36 if (isset($perm_data['groups']) && is_array($perm_data['groups'])) {
37 foreach ($perm_data['groups'] as $group_id => $item_ids) {
38 foreach ($item_ids as $item_id => $selected) {
39 if (1 == $selected) {
40 // make sure that all parent ids are selected as well
41 if ('' !== $perm_data['parents'][$item_id]) {
42 $parent_ids = explode(':', $perm_data['parents'][$item_id]);
43 foreach ($parent_ids as $pid) {
44 if (0 !== $pid && !array_key_exists($pid, $item_ids)) {
45 // one of the parent items were not selected, so skip this item
46 $msg[] = sprintf(_MD_AM_PERMADDNG, '<b>'.$perm_name.'</b>', '<b>'.$perm_data['itemname'][$item_id].'</b>', '<b>'.$group_list[$group_id].'</b>').' ('._MD_AM_PERMADDNGP.')';
47 continue 2;
48 }
49 }
50 }
51 $gperm =& $gperm_handler->create();
52 $gperm->setVar('gperm_groupid', $group_id);
53 $gperm->setVar('gperm_name', $perm_name);
54 $gperm->setVar('gperm_modid', $modid);
55 $gperm->setVar('gperm_itemid', $item_id);
56 if (!$gperm_handler->insert($gperm)) {
57 $msg[] = sprintf(_MD_AM_PERMADDNG, '<b>'.$perm_name.'</b>', '<b>'.$perm_data['itemname'][$item_id].'</b>', '<b>'.$group_list[$group_id].'</b>');
58 } else {
59 $msg[] = sprintf(_MD_AM_PERMADDOK, '<b>'.$perm_name.'</b>', '<b>'.$perm_data['itemname'][$item_id].'</b>', '<b>'.$group_list[$group_id].'</b>');
60 }
61 unset($gperm);
62 }
63 }
64 }
65 }
66 } else {
67 $msg[] = sprintf(_MD_AM_PERMRESETNG, $module->getVar('name').'('.$perm_name.')');
68 }
69 }
70}
71
72$backlink = XOOPS_URL.'/admin.php';
73if ($module->getVar('hasadmin')) {
74 $adminindex = $_POST['redirect_url'] ?? $module->getInfo('adminindex');
75 if ($adminindex) {
76 $backlink = XOOPS_URL.'/modules/'.$module->getVar('dirname').'/'.$adminindex;
77 }
78}
79
80$msg[] = '<br><br><a href="'.$backlink.'">'._BACK.'</a>';
81xoops_cp_header();
82xoops_result($msg);
83xoops_cp_footer();