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

use 
Loader;
use 
ConcreteCoreUserGroupGroup;
use 
Config;
use 
PermissionAccess;
use 
URL;

class 
GroupEntity extends Entity
{

    protected 
$group false;

    public function 
getGroupObject()
    {
        return 
$this->group;
    }

    public function 
getAccessEntityUsers(PermissionAccess $pa)
    {
        return 
$this->group->getGroupMembers();
    }

    public function 
getAccessEntityTypeLinkHTML()
    {
        
$html '<a href="' URL::to('/ccm/system/dialogs/group/search') . '" class="dialog-launch" dialog-width="640" dialog-height="480" dialog-modal="false" dialog-title="' t('Add Group') . '">' tc('PermissionAccessEntityTypeName',
                
'Group') . '</a>';
        return 
$html;
    }

    public static function 
configureFromImport(SimpleXMLElement $element)
    {
        
$g Group::getByName((string) $element['name']);
        if (!
is_object($g)) {
            
$g Group::add((string) $element['name'], (string) $element['description']);
        }
        return static::
getOrCreate($g);
    }

    public static function 
getAccessEntitiesForUser($user)
    {
        
$entities = array();
        
$ingids = array();
        
$db Loader::db();
        foreach (
$user->getUserGroups() as $key => $val) {
            
$ingids[] = $key;
        }
        
$instr implode(','$ingids);
        
$peIDs $db->GetCol('select pae.peID from PermissionAccessEntities pae inner join PermissionAccessEntityTypes paet on pae.petID = paet.petID inner join PermissionAccessEntityGroups paeg on pae.peID = paeg.peID where petHandle = 'group' and paeg.gID in (' $instr ')');
        if (
is_array($peIDs)) {
            foreach (
$peIDs as $peID) {
                
$entity ConcreteCorePermissionAccessEntityEntity::getByID($peID);
                if (
is_object($entity)) {
                    
$entities[] = $entity;
                }
            }
        }

        return 
$entities;
    }

    public static function 
getOrCreate(Group $g)
    {
        
$db Loader::db();
        
$petID $db->GetOne('select petID from PermissionAccessEntityTypes where petHandle = 'group'');
        
$peID $db->GetOne('select pae.peID from PermissionAccessEntities pae inner join PermissionAccessEntityGroups paeg on pae.peID = paeg.peID where petID = ? and paeg.gID = ?',
            array(
$petID$g->getGroupID()));
        if (!
$peID) {
            
$db->Execute("insert into PermissionAccessEntities (petID) values(?)", array($petID));
            
$peID $db->Insert_ID();
            
Config::save('concrete.misc.access_entity_updated'time());
            
$db->Execute('insert into PermissionAccessEntityGroups (peID, gID) values (?, ?)',
                array(
$peID$g->getGroupID()));
        }
        return 
ConcreteCorePermissionAccessEntityEntity::getByID($peID);
    }

    public function 
load()
    {
        
$db Loader::db();
        
$gID $db->GetOne('select gID from PermissionAccessEntityGroups where peID = ?', array($this->peID));
        if (
$gID) {
            
$g Group::getByID($gID);
            if (
is_object($g)) {
                
$this->group $g;
                
$this->label $g->getGroupDisplayName();
            } else {
                
$this->label t('(Deleted Group)');
            }
        }
    }
}
Онлайн: 1
Реклама