Example #1
0
    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;
    }
Example #2
0
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;
}
Example #3
0
    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;
    }