Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Permission/Access/Entity/PageOwnerEntity.php
Строк: 106
<?php
namespace ConcreteCorePermissionAccessEntity;

use 
ConcreteCorePagePage;
use 
Database;
use 
PermissionAccess;
use 
Config;
use 
UserInfo;
use 
ConcreteCorePermissionAccessPageAccess as PagePermissionAccess;
use 
ConcreteCorePermissionAccessAreaAccess as AreaPermissionAccess;
use 
ConcreteCorePermissionAccessBlockAccess as BlockPermissionAccess;

class 
PageOwnerEntity extends Entity
{
    public function 
getAccessEntityUsers(PermissionAccess $pae)
    {
        
$c null;
        if (
$pae instanceof PagePermissionAccess) {
            
$c $pae->getPermissionObject();
        } else {
            if (
$pae instanceof AreaPermissionAccess) {
                
$c $pae->getPermissionObject()->getAreaCollectionObject();
            } else {
                if (
$pae instanceof BlockPermissionAccess) {
                    
$a $pae->getPermissionObject()->getBlockAreaObject();
                    
$c $a->getAreaCollectionObject();
                }
            }
        }
        if (
is_object($c) && ($c instanceof Page)) {
            
$ui UserInfo::getByID($c->getCollectionUserID());
            
$users = array($ui);

            return 
$users;
        }
    }

    public function 
validate(PermissionAccess $pae)
    {
        
$users $this->getAccessEntityUsers($pae);
        if (
count($users) == 0) {
            return 
false;
        } else {
            if (
is_object($users[0])) {
                
$u = new User();

                return 
$users[0]->getUserID() == $u->getUserID();
            }
        }
    }

    public function 
getAccessEntityTypeLinkHTML()
    {
        
$html '<a href="javascript:void(0)" onclick="ccm_choosePermissionAccessEntityPageOwner()">' tc('PermissionAccessEntityTypeName',
                
'Page Owner') . '</a>';

        return 
$html;
    }

    public static function 
getAccessEntitiesForUser($user)
    {
        
$entities = array();
        if (
$user->isRegistered()) {
            
$db Database::connection();
            
$pae = static::getOrCreate();
            
$r $db->fetchColumn('select cID from Pages where uID = ?', array($user->getUserID()));
            if (
$r 0) {
                
$entities[] = $pae;
            }
        }

        return 
$entities;
    }

    public static function 
getOrCreate()
    {
        
$db Database::connection();
        
$petID $db->fetchColumn('select petID from PermissionAccessEntityTypes where petHandle = 'page_owner'');
        
$peID $db->fetchColumn('select peID from PermissionAccessEntities where petID = ?', array($petID));
        if (!
$peID) {
            
$db->executeQuery("insert into PermissionAccessEntities (petID) values(?)", array($petID));
            
$peID $db->lastInsertId();
            
Config::save('concrete.misc.access_entity_updated'time());
        }

        return 
ConcreteCorePermissionAccessEntityEntity::getByID($peID);
    }

    public function 
load()
    {
        
$this->label t('Page Owner');
    }
}
Онлайн: 1
Реклама