CBlogPost::GetBlogUserPostPerms: Bitrix method

      
<?php 
//  CBlogPost :: GetBlogUserPostPerms()
//  /dist/bitrix/modules/blog/general/blog_post.php:83

    
public static function GetBlogUserPostPerms($ID$userID)
    {
        global 
$APPLICATION;

        
$ID IntVal($ID);
        
$userID IntVal($userID);

        
$arAvailPerms array_keys($GLOBALS["AR_BLOG_PERMS"]);
        
$blogModulePermissions $APPLICATION->GetGroupRight("blog");
        if (
$blogModulePermissions >= "W")
            return 
$arAvailPerms[count($arAvailPerms) - 1];

        
$arPost CBlogPost::GetByID($ID);
        if (!
$arPost)
            return 
$arAvailPerms[0];

        if (
CBlog::IsBlogOwner($arPost["BLOG_ID"], $userID))
            return 
$arAvailPerms[count($arAvailPerms) - 1];
        
        
$arUserGroups CBlogUser::GetUserGroups($userID$arPost["BLOG_ID"], "Y"BLOG_BY_USER_ID);
        
$permGroups CBlogUser::GetUserPerms($arUserGroups$arPost["BLOG_ID"], $IDBLOG_PERMS_POSTBLOG_BY_USER_ID);
        
//        if for user unset option "WRITE TO BLOG", they can only read (even if all user can write), or smaller rights, if group have smaller
        
$arBlogUser CBlogUser::GetByID($userIDBLOG_BY_USER_ID);
        if (
$arBlogUser && $arBlogUser["ALLOW_POST"] != "Y")
        {
            if(
$permGroups && in_array(BLOG_PERMS_READ$arAvailPerms))
                return 
min(BLOG_PERMS_READ$permGroups);
            else
                return 
$arAvailPerms[0];
        }

        if (
$permGroups)
            return 
$permGroups;

        return 
$arAvailPerms[0];
    }