<?php
$GLOBALS["__65da1b1ec" . "2d6653e8a0a" . "b7848e53621" . "5"] = (@$GLOBALS["__65da1b1ec2d6" . "653e8a0ab7848e" . "536215"] ?: array()) + array();
use Claromentis\Core\Security\StdAuthenticator;
use Claromentis\Core\Security\SecurityContext;







class AuthUser
{
    const MODE_NORMAL = 0;
    
    
    const MODE_LOGIN = 7;
    
    
    const MODE_POPUP = 1;
    
    
    const MODE_AJAX = 2;
    
    
    const MODE_XAJAX = 3;
    
    
    const MODE_EXTERNAL = 6;
    
    
    protected SecurityContext $context;
    protected StdAuthenticator $auth;
    public function __construct(SecurityContext $context, StdAuthenticator $_ab8c85e59ec45be42680e8e2689b290b)
    {
        $this->context = $context;
        $this->auth = $_ab8c85e59ec45be42680e8e2689b290b;
    }
    
    
    
    
    public function GetContext()
    {
        return $this->context;
    }
    
    
    
    
    
    
    public static function I()
    {
        global $g_application;
        return $g_application->authuser;
    }
    public function SetMode($_601a171d59986f7c15972b586685671b)
    {
        $this->auth->SetMode($_601a171d59986f7c15972b586685671b);
        return $this;
    }
    public function GetMode()
    {
        return $this->auth->GetMode();
    }
    public function AllowGuestAccess(?bool $_3f659a561e32ca941ae1b5e90a3f445e)
    {
        $this->auth->AllowGuestAccess($_3f659a561e32ca941ae1b5e90a3f445e);
        return $this;
    }
    public function Init()
    {
        $this->auth->Init();
        return $this;
    }
    public function StartHTTPAuth()
    {
        $this->auth->StartHTTPAuth();
    }
    public function RequireUser()
    {
        $this->auth->RequireUser();
        return $this;
    }
    public function GetId()
    {
        return $this->context->GetUserId();
    }
    public function GetGroups()
    {
        return $this->context->GetGroups();
    }
    public function GetGroupsTree()
    {
        return $this->context->GetGroupsTree();
    }
    public function GetRoles()
    {
        return $this->context->GetRoles();
    }
    public function GetExtranetAreaId()
    {
        return $this->context->GetExtranetAreaId();
    }
    public function GetFullName()
    {
        return $this->context->GetFullName();
    }
    public function IsReadonly()
    {
        return $this->context->IsReadonly();
    }
    public function GetUser($_77eaa9b81c73f21f0d741953ef47c309 = false)
    {
        return $this->context->GetUser($_77eaa9b81c73f21f0d741953ef47c309);
    }
}