CBlogUser::GetUserPerms: Bitrix method

      
<?php 
//  CBlogUser :: GetUserPerms()
//  /dist/bitrix/modules/blog/general/blog_user.php:494

    
public static function GetUserPerms($arGroups$blogID$postID 0$permsType BLOG_PERMS_POST$selectType BLOG_BY_BLOG_USER_ID)
    {
        global 
$DB;

        
$blogID IntVal($blogID);
        
$postID IntVal($postID);
        
$permsType = (($permsType == BLOG_PERMS_COMMENT) ? BLOG_PERMS_COMMENT BLOG_PERMS_POST);
        
$selectType = (($selectType == BLOG_BY_USER_ID) ? BLOG_BY_USER_ID BLOG_BY_BLOG_USER_ID);

        if (!
is_array($arGroups))
        {
            
$ID IntVal($arGroups);
            
$arGroups CBlogUser::GetUserGroups($ID$blogID"Y"$selectType);
        }

        
$strGroups "";
        foreach(
$arGroups as $val)
        {
            if (
strlen($strGroups) > 0)
                
$strGroups .= ",";

            
$strGroups .= IntVal($val);
        }

        
$varName "BLOG_USER_PERMS_CACHE_".$blogID."_".$postID."_".$permsType;

        if (isset(
$GLOBALS["BLOG_USER"][$varName]) && is_array($GLOBALS["BLOG_USER"][$varName])
            && isset(
$GLOBALS["BLOG_USER"][$varName][$strGroups]) && is_array($GLOBALS["BLOG_USER"][$varName][$strGroups]))
        {
            return 
$GLOBALS["BLOG_USER"][$varName][$strGroups];
        }
        else
        {
            if (
$postID 0)
            {
                
$strSql =
                    
"SELECT MAX(P.PERMS) as PERMS ".
                    
"FROM b_blog_user_group_perms P ".
                    
"WHERE P.BLOG_ID = ".$blogID." ".
                    
"    AND P.USER_GROUP_ID IN (".$strGroups.") ".
                    
"    AND P.PERMS_TYPE = '".$DB->ForSql($permsType)."' ".
                    
"    AND P.POST_ID = ".$postID." ";
                
$dbResult $DB->Query($strSqlFalse"File: ".__FILE__."<br>Line: ".__LINE__);
                if ((
$arResult $dbResult->Fetch()) && (strlen($arResult["PERMS"]) > 0))
                {
                    
$GLOBALS["BLOG_USER"][$varName][$strGroups] = $arResult["PERMS"];
                    return 
$arResult["PERMS"];
                }
            }

            
$strSql =
                
"SELECT MAX(P.PERMS) as PERMS ".
                
"FROM b_blog_user_group_perms P ".
                
"WHERE P.BLOG_ID = ".$blogID." ".
                
"    AND P.USER_GROUP_ID IN (".$strGroups.") ".
                
"    AND P.PERMS_TYPE = '".$DB->ForSql($permsType)."' ".
                
"    AND P.POST_ID IS NULL ";
            
$dbResult $DB->Query($strSqlFalse"File: ".__FILE__."<br>Line: ".__LINE__);
            if ((
$arResult $dbResult->Fetch()) && (strlen($arResult["PERMS"]) > 0))
            {
                
$GLOBALS[$varName][$strGroups] = $arResult["PERMS"];
                return 
$arResult["PERMS"];
            }

            return 
False;
        }
    }