26 $root =& XCube_Root::getSingleton();
27 $context =& $root->mContext;
29 if (
null == $module) {
33 if (isset($cache[$module->get(
'mid')])) {
37 $groups = is_object($context->mXoopsUser) ? $context->mXoopsUser->getGroups() : [XOOPS_GROUP_ANONYMOUS];
39 $handler =& xoops_gethandler(
'groupperm');
40 if ($handler->checkRight(
'module_read', $module->get(
'mid'), $groups)) {
41 $context->mUser->addRole(
'Module.' . $module->get(
'dirname') .
'.Visitor');
44 if (is_object($context->mXoopsUser) && $handler->checkRight(
'module_admin', $module->get(
'mid'), $groups)) {
45 $context->mUser->addRole(
'Module.' . $module->get(
'dirname') .
'.Admin');
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);
54 $cache[$module->get(
'mid')] =
true;