1: <?php
2: 3: 4: 5:
6:
7: if (!defined('XOOPS_ROOT_PATH')) exit();
8:
9: require_once XOOPS_ROOT_PATH."/core/XCube_PageNavigator.class.php";
10: require_once XOOPS_MODULE_PATH."/user/admin/class/Permission.class.php";
11:
12: 13: 14: 15: 16:
17: class User_GroupPropertyAction extends User_Action
18: {
19: var $_mActiveModules = array();
20: var $_mActiveModulesLoadedFlag = false;
21: var $_mActiveBlocks = array();
22: var $_mActiveBlocksLoadedFlag = false;
23:
24: var $mGroup;
25: var $mPermissions;
26: var $mSystemPermissions;
27: var $mBlockPermissions;
28:
29: var $mUsers;
30: var $mPageNavi;
31:
32: function getDefaultView(&$controller, &$xoopsUser)
33: {
34: $this->_loadGroup();
35:
36: if (!is_object($this->mGroup)) {
37: return USER_FRAME_VIEW_ERROR;
38: }
39:
40: $root =& XCube_Root::getSingleton();
41: $root->mLanguageManager->loadModuleAdminMessageCatalog("system");
42: $root->mLanguageManager->loadModinfoMessageCatalog("system");
43:
44:
45:
46:
47: $memberHandler =& xoops_gethandler('member');
48:
49: $total = $memberHandler->getUserCountByGroup($this->mGroup->getVar('groupid'));
50: $this->mPageNavi =new XCube_PageNavigator("./index.php?action=GroupProperty", XCUBE_PAGENAVI_START | XCUBE_PAGENAVI_PERPAGE);
51: $this->mPageNavi->setTotalItems($total);
52: $this->mPageNavi->addExtra('groupid', $this->mGroup->get('groupid'));
53:
54: $this->mPageNavi->fetch();
55:
56: $this->mUsers =& $memberHandler->getUsersByGroup($this->mGroup->getVar('groupid'), true, $this->mPageNavi->getPerPage(), $this->mPageNavi->getStart());
57:
58: $moduleHandler =& xoops_gethandler('module');
59:
60:
61:
62: if (file_exists(XOOPS_ROOT_PATH . "/modules/system/constants.php")) {
63: if ($moduleHandler->getByDirname('system')) {
64: require_once XOOPS_ROOT_PATH . "/modules/system/constants.php";
65: $fileHandler = opendir(XOOPS_ROOT_PATH . "/modules/system/admin");
66: while ($file = readdir($fileHandler)) {
67: $infoFile = XOOPS_ROOT_PATH . "/modules/system/admin/" . $file . "/xoops_version.php";
68: if (file_exists($infoFile)) {
69: require_once $infoFile;
70: if (!empty($modversion['category'])) {
71: $item =new User_PermissionSystemAdminItem($modversion['category'], $modversion['name']);
72: $this->mSystemPermissions[] =new User_Permission($this->mGroup->getVar('groupid'), $item);
73:
74: unset($item);
75: }
76: unset($modversion);
77: }
78: }
79: }
80: }
81:
82:
83:
84: $this->_loadActiveModules();
85:
86: $t_activeModuleIDs = array();
87:
88: foreach ($this->_mActiveModules as $module) {
89: $item =new User_PermissionModuleItem($module);
90: $this->mPermissions[] =new User_Permission($this->mGroup->getVar('groupid'), $item);
91:
92: $t_activeModuleIDs[] = $module->get('mid');
93:
94: unset($module);
95: unset($item);
96: }
97:
98:
99:
100:
101: $blockHandler = xoops_gethandler('block');
102: $this->_loadActiveBlocks();
103: $idx = 0;
104: foreach (array(0, 1, 3, 4, 5) as $side) {
105: $this->mBlockPermissions[$idx] = array();
106:
107: foreach ($this->_mActiveBlocks[$side] as $block) {
108: $item =new User_PermissionBlockItem($block);
109: $this->mBlockPermissions[$idx][] =new User_Permission($this->mGroup->get('groupid'), $item);
110: unset ($item);
111: unset ($block);
112: }
113:
114: $idx++;
115: }
116:
117: return USER_FRAME_VIEW_INDEX;
118: }
119:
120: function _loadActiveModules()
121: {
122: if ($this->_mActiveModulesLoadedFlag) {
123: return;
124: }
125:
126: $moduleHandler =& xoops_gethandler('module');
127: $this->_mActiveModules =& $moduleHandler->getObjects(new Criteria('isactive', 1));
128:
129: $this->_mActiveModulesLoadedFlag = true;
130: }
131:
132: function _loadActiveBlocks()
133: {
134: if ($this->_mActiveBlocksLoadedFlag) {
135: return;
136: }
137:
138: $this->_loadActiveModules();
139:
140: $t_activeModuleIDs = array();
141: foreach ($this->_mActiveModules as $module) {
142: $t_activeModuleIDs[] = $module->get('mid');
143: }
144: $t_activeModuleIDs[] = 0;
145:
146: $blockHandler = xoops_gethandler('block');
147: foreach (array(0, 1, 3, 4, 5) as $side) {
148: $this->_mActiveBlocks[$side] = array();
149: $blockArr =& $blockHandler->getAllBlocks("object", $side, null);
150:
151: foreach ($blockArr as $block) {
152: if ($block->get('visible') && in_array($block->get('mid'), $t_activeModuleIDs)) {
153: $this->_mActiveBlocks[$side][] =& $block;
154: }
155: unset ($block);
156: }
157:
158: unset($blockArr);
159: }
160:
161: $this->_mActiveBlocksLoadedFlag = true;
162: }
163:
164: function _loadGroup()
165: {
166: $id = xoops_getrequest('groupid');
167:
168: $handler =& xoops_getmodulehandler('groups');
169: $this->mGroup =& $handler->get($id);
170: }
171:
172: function executeViewIndex(&$controller,&$xoopsUser,&$render)
173: {
174: $render->setTemplateName("group_property.html");
175: $render->setAttribute("group", $this->mGroup);
176: $render->setAttribute("modulePermissions", $this->mPermissions);
177: $render->setAttribute("blockPermissions", $this->mBlockPermissions);
178: $render->setAttribute("systemPermissions", $this->mSystemPermissions);
179: $render->setAttribute("users", $this->mUsers);
180: $render->setAttribute("pageNavi", $this->mPageNavi);
181: }
182: }
183:
184: ?>
185: