XCL Web Application Platform 2.5.0
The XoopsCube Legacy Project
Loading...
Searching...
No Matches
Legacy_RoleManager.class.php
1<?php
10
15{
22 public function loadRolesByModule(&$module)
23 {
24 static $cache;
25
26 $root =& XCube_Root::getSingleton();
27 $context =& $root->mContext;
28
29 if (null == $module) {
30 return;
31 }
32
33 if (isset($cache[$module->get('mid')])) {
34 return;
35 }
36
37 $groups = is_object($context->mXoopsUser) ? $context->mXoopsUser->getGroups() : [XOOPS_GROUP_ANONYMOUS];
38
39 $handler =& xoops_gethandler('groupperm');
40 if ($handler->checkRight('module_read', $module->get('mid'), $groups)) {
41 $context->mUser->addRole('Module.' . $module->get('dirname') . '.Visitor');
42 }
43
44 if (is_object($context->mXoopsUser) && $handler->checkRight('module_admin', $module->get('mid'), $groups)) {
45 $context->mUser->addRole('Module.' . $module->get('dirname') . '.Admin');
46 }
47
48 $handler =& xoops_getmodulehandler('group_permission', 'legacy');
49 $roleArr = $handler->getRolesByModule($module->get('mid'), $groups);
50 foreach ($roleArr as $role) {
51 $context->mUser->addRole('Module.' . $module->get('dirname') . '.' . $role);
52 }
53
54 $cache[$module->get('mid')] = true;
55 }
56
62 public function loadRolesByMid($mid)
63 {
64 $handler =& xoops_gethandler('module');
65 $module =& $handler->get($mid);
66
67 if (is_object($module)) {
68 $this->loadRolesByModule($module);
69 }
70 }
71
78 public function loadRolesByDirname($dirname)
79 {
80 $handler =& xoops_gethandler('module');
81 $module =& $handler->getByDirname($dirname);
82
83 if (is_object($module)) {
84 $this->loadRolesByModule($module);
85 }
86 }
87}