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

use 
Loader;
use 
PermissionAccess;
use 
URL;
use 
Config;
use 
UserInfo;
use 
User;
use 
ConcreteCoreConversationMessageMessage;
use 
ConcreteCorePermissionAccessConversationAccess;

class 
ConversationMessageAuthorEntity extends Entity
{

    public function 
getAccessEntityUsers(PermissionAccess $pa)
    {
        
$message $pa->getPermissionObject();
        if (
is_object($message) && ($message instanceof Message)) {
            return 
UserInfo::getByID($message->getConversationMessageUserID());
        }
    }

    public function 
validate(PermissionAccess $pae)
    {
        if (
$pae instanceof ConversationAccess) {
            
$message $pae->getPermissionObject();
        }

        if (
$message instanceof Message) {
            
$u = new User();
            return 
$u->getUserID() == $message->getConversationMessageUserID();
        }

        return 
false;
    }

    public function 
getAccessEntityTypeLinkHTML()
    {
        
$html '<a href="javascript:void(0)" onclick="ccm_choosePermissionAccessEntityConversationMessageAuthor()">' tc(
                
'PermissionAccessEntityTypeName',
                
'Message Author'
            
) . '</a>';
        return 
$html;
    }

    public static function 
getAccessEntitiesForUser($user)
    {
        
$entities = array();
        
$db Loader::db();
        if (
$user->isRegistered()) {
            
$pae = static::getOrCreate();
            
$r $db->GetOne('select cnvMessageID from ConversationMessages where uID = ?', array($user->getUserID()));
            if (
$r 0) {
                
$entities[] = $pae;
            }
        }
        return 
$entities;
    }

    public static function 
getOrCreate()
    {
        
$db Loader::db();
        
$petID $db->GetOne('select petID from PermissionAccessEntityTypes where petHandle = 'conversation_message_author'');
        
$peID $db->GetOne(
            
'select peID from PermissionAccessEntities where petID = ?',
            array(
$petID)
        );
        if (!
$peID) {
            
$db->Execute("insert into PermissionAccessEntities (petID) values(?)", array($petID));
            
$peID $db->Insert_ID();
            
Config::save('concrete.misc.access_entity_updated'time());
        }
        return 
ConcreteCorePermissionAccessEntityEntity::getByID($peID);
    }

    public function 
load()
    {
        
$db Loader::db();
        
$this->label t('Message Author');
    }

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