1: <?php
2: 3: 4: 5: 6: 7: 8: 9:
10:
11: 12: 13:
14: class Legacy_RoleManager
15: {
16: 17: 18: 19: 20: 21:
22: function loadRolesByModule(&$module)
23: {
24: static $cache;
25:
26: $root =& XCube_Root::getSingleton();
27: $context =& $root->mContext;
28:
29: if ($module == null) {
30: return;
31: }
32:
33: if (isset($cache[$module->get('mid')])) {
34: return;
35: }
36:
37: $groups = is_object($context->mXoopsUser) ? $context->mXoopsUser->getGroups() : array(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:
57: 58: 59: 60: 61:
62: 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:
72: 73: 74: 75: 76: 77:
78: 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: }
88:
89: ?>
90: