function getPermission($category) { global $xoopsUser, $xoopsModule; static $_cachedCategoryPerms; if (forum_isAdministrator()) return true; if(!isset($_cachedCategoryPerms)){ $getpermission = &xoops_getmodulehandler('permission', 'xforum'); $_cachedCategoryPerms = $getpermission->getPermissions("category"); } $cat_id = is_object($category)? $category->getVar('cat_id'):intval($category); $permission = (isset($_cachedCategoryPerms[$cat_id]['category_access'])) ? 1 : 0; return $permission; }
function forum_checkSubjectPrefixPermission($xforum = 0, $user=-1) { global $xoopsUser, $xoopsModuleConfig; if($xoopsModuleConfig['subject_prefix_level']<1){ return false; } if($xoopsModuleConfig['subject_prefix_level']==1){ return true; } if(is_numeric($user) && $user == -1) $user =& $xoopsUser; if(!is_object($user) && intval($user)<1) return false; $uid = (is_object($user))?$user->getVar('uid'):intval($user); if($xoopsModuleConfig['subject_prefix_level']==2){ return true; } if($xoopsModuleConfig['subject_prefix_level']==3){ if(forum_isAdmin($xforum, $user)) return true; else return false; } if($xoopsModuleConfig['subject_prefix_level']==4){ if(forum_isAdministrator($user)) return true; } return false; }
function getPermission($xforum, $type = "access", $checkCategory = true) { global $xoopsUser, $xoopsModule; static $_cachedPerms; include_once XOOPS_ROOT_PATH.'/modules/xforum/include/functions.php'; if($type == "all") return true; if (forum_isAdministrator()) return true; if (!is_object($xforum)) $xforum =& $this->get($xforum); if ($xforum->getVar('forum_type')) return false;// if forum inactive, all has no access except admin if(!empty($checkCategory)){ $category_handler =& xoops_getmodulehandler('category', 'xforum'); $categoryPerm = $category_handler->getPermission($xforum->getVar('cat_id')); if (!$categoryPerm) return false; } $type = strtolower($type); if ("moderate" == $type) { $permission = (forum_isModerator($xforum))?1:0; } else { $perms = array_map("trim",explode(',', FORUM_PERM_ITEMS)); $perm_type = 'forum'; $perm_item = (in_array($type, $perms))?'forum_' . $type:"forum_access"; if (!isset($_cachedPerms[$perm_type])) { $getpermission =& xoops_getmodulehandler('permission', 'xforum'); $_cachedPerms[$perm_type] = $getpermission->getPermissions($perm_type); } $permission = (isset($_cachedPerms[$perm_type][$xforum->getVar('forum_id')][$perm_item])) ? 1 : 0; } return $permission; }