Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Permission/Access/Entity/GroupSetEntity.php
Строк: 97
<?php
namespace ConcreteCorePermissionAccessEntity;
use 
Loader;
use 
PermissionAccess;
use 
URL;
use 
Config;
use 
ConcreteCoreUserGroupGroupSet;
class 
GroupSetEntity extends Entity {

    protected 
$groupset;

    public function 
getGroupSet() {
        return 
$this->groupset;
    }

    public function 
getAccessEntityTypeLinkHTML() {
        
$html '<a href="' REL_DIR_FILES_TOOLS_REQUIRED '/permissions/dialogs/access/entity/types/group_set" dialog-width="400" dialog-height="300" class="dialog-launch" dialog-modal="false" dialog-title="' t('Add Group Set') . '">' tc('PermissionAccessEntityTypeName''Group Set') . '</a>';
        return 
$html;
    }

    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 peID from PermissionAccessEntityGroupSets paegs inner join GroupSetGroups gsg on paegs.gsID = gsg.gsID where gsg.gID in (' $instr ')');
        if (
is_array($peIDs)) {
            foreach(
$peIDs as $peID) {
                
$entity Entity::getByID($peID);
                if (
is_object($entity)) {
                    
$entities[] = $entity;
                }
            }
        }

        return 
$entities;
    }

    public function 
getAccessEntityUsers(PermissionAccess $pa) {
        if (!isset(
$this->groupset)) {
            
$this->load();
        }
        
$groups $this->groupset->getGroups();
        
$users = array();
        
$ingids = array();
        
$db Loader::db();
        foreach(
$groups as $group) {
            
$ingids[] = $group->getGroupID();
        }
        
$instr implode(',',$ingids);
        
$r $db->Execute('select uID from UserGroups where gID in (' $instr ')');
        
$users = array();
        while (
$row $r->FetchRow()) {
            
$ui UserInfo::getByID($row['uID']);
            if (
is_object($ui)) {
                
$users[] = $ui;
            }
        }
        return 
$users;
    }

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

    public function 
load() {
        
$db Loader::db();
        
$gsID $db->GetOne('select gsID from PermissionAccessEntityGroupSets where peID = ?', array($this->peID));
        if (
$gsID) {
            
$gs GroupSet::getByID($gsID);
            if (
is_object($gs)) {
                
$this->groupset $gs;
                
$this->label $gs->getGroupSetDisplayName();
            }
        }
    }

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