Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/PermissionSet.php
<?php

namespace XF;

class
PermissionSet
{
    protected
$permCache;
    protected
$permissionCombinationId;

    protected
$globalPerms = [];

    public function
__construct(PermissionCache $permCache, $permissionCombinationId)
    {
       
$this->permCache = $permCache;
       
$this->permissionCombinationId = $permissionCombinationId;
    }

    public function
getPermissionCache()
    {
        return
$this->permCache;
    }

    public function
getPermissionCombinationId()
    {
        return
$this->permissionCombinationId;
    }

    public function
getGlobalPerms()
    {
        return
$this->permCache->getGlobalPerms($this->permissionCombinationId);
    }

    public function
hasGlobalPermission($group, $permission)
    {
       
$permissions = $this->permCache->getGlobalPerms($this->permissionCombinationId);
        if (!
$permissions || !isset($permissions[$group][$permission]))
        {
            return
false;
        }

        return
$permissions[$group][$permission];
    }

    public function
getContentPerms($contentType, $contentId)
    {
        return
$this->permCache->getContentPerms($this->permissionCombinationId, $contentType, $contentId);
    }

    public function
hasContentPermission($contentType, $contentId, $permission)
    {
       
$permissions = $this->permCache->getContentPerms($this->permissionCombinationId, $contentType, $contentId);
        if (!
$permissions || !isset($permissions[$permission]))
        {
            return
false;
        }

        return
$permissions[$permission];
    }

    public function
cacheAllContentPerms($contentType)
    {
       
$this->permCache->cacheAllContentPerms($this->permissionCombinationId, $contentType);
    }
}