Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Permission/Key/FileKey.php
Строк: 50
<?php
namespace ConcreteCorePermissionKey;

use 
ConcreteCorePermissionAccessAccess;
use 
Loader;
use 
User;
use 
ConcreteCorePermissionDuration as PermissionDuration;
use 
PermissionKey;

class 
FileKey extends Key
{


    public function 
validate()
    {
        
$u = new User();
        if (
$u->isSuperUser()) {
            return 
true;
        }
        
$pae = $this->getPermissionAccessObject();
        if (!
is_object($pae)) {
            return 
false;
        }

        
$accessEntities = $u->getUserAccessEntityObjects();
        
$accessEntities = $pae->validateAndFilterAccessEntities($accessEntities);
        
$valid = false;
        
$list = $this->getAccessListItems(PermissionKey::ACCESS_TYPE_ALL, $accessEntities);
        
$list = PermissionDuration::filterByActive($list);
        foreach (
$list as $l) {
            if (
$l->getAccessType() == PermissionKey::ACCESS_TYPE_INCLUDE) {
                
$valid = true;
            }
            if (
$l->getAccessType() == PermissionKey::ACCESS_TYPE_EXCLUDE) {
                
$valid = false;
            }
        }
        return 
$valid;
    }


    public function 
copyFromFileSetToFile()
    {
        
$opa = $this->getPermissionAccessObject();
        
$paID = false;
        if (
is_object($opa)) {
            
$paID = $opa->getPermissionAccessID();
        }

        if (
$paID == -1) {
            
// this is proceeding from a merged file set assignment (copying from multiple file sets)
            
$npa = Access::create($this);
            
$ids = $opa->getPermissionAccessIDList();
            foreach(
$ids as $paID) {
                
$pax = Access::getByID($paID, $this);
                
$pax->duplicate($npa);
            }
            
$paID = $npa->getPermissionAccessID();
        }
        if (
$paID) {
            
$db = Loader::db();
            
$db->Replace(
                
'FilePermissionAssignments',
                array(
                    
'fID' => $this->permissionObject->getFileID(),
                    
'pkID' => $this->getPermissionKeyID(),
                    
'paID' => $paID
                
),
                array(
'fID', 'paID', 'pkID'),
                
true
            
);

        }
    }


}
Онлайн: 3
Реклама