Exemple #1
0
 function LoginByHttpAuth()
 {
     $arAuth = CHTTP::ParseAuthRequest();
     if (isset($arAuth["basic"]) && $arAuth["basic"]["username"] != '' && $arAuth["basic"]["password"] != '') {
         // Authorize user, if it is http basic authorization, with no remembering
         if (!$GLOBALS["USER"]->IsAuthorized() || $GLOBALS["USER"]->GetLogin() != $arAuth["basic"]["username"]) {
             return $GLOBALS["USER"]->Login($arAuth["basic"]["username"], $arAuth["basic"]["password"], "N");
         }
     } elseif (isset($arAuth["digest"]) && $arAuth["digest"]["username"] != '' && COption::GetOptionString('main', 'use_digest_auth', 'N') == 'Y') {
         // Authorize user by http digest authorization
         if (!$GLOBALS["USER"]->IsAuthorized() || $GLOBALS["USER"]->GetLogin() != $arAuth["digest"]["username"]) {
             return $GLOBALS["USER"]->LoginByDigest($arAuth["digest"]);
         }
     }
     return null;
 }
Exemple #2
0
 function LoginByHttpAuth()
 {
     global $USER;
     $arAuth = CHTTP::ParseAuthRequest();
     foreach (GetModuleEvents("main", "onBeforeUserLoginByHttpAuth", true) as $arEvent) {
         $res = ExecuteModuleEventEx($arEvent, array(&$arAuth));
         if ($res !== null) {
             return $res;
         }
     }
     if (isset($arAuth["basic"]) && $arAuth["basic"]["username"] != '' && $arAuth["basic"]["password"] != '') {
         // Authorize user, if it is http basic authorization, with no remembering
         if (!$USER->IsAuthorized() || $USER->GetLogin() != $arAuth["basic"]["username"]) {
             return $USER->Login($arAuth["basic"]["username"], $arAuth["basic"]["password"], "N");
         }
     } elseif (isset($arAuth["digest"]) && $arAuth["digest"]["username"] != '' && COption::GetOptionString('main', 'use_digest_auth', 'N') == 'Y') {
         // Authorize user by http digest authorization
         if (!$USER->IsAuthorized() || $USER->GetLogin() != $arAuth["digest"]["username"]) {
             return $USER->LoginByDigest($arAuth["digest"]);
         }
     }
     return null;
 }
Exemple #3
0
 * @var $USER CUser
 */
global $APPLICATION, $USER;
use Bitrix\Main;
use Bitrix\Main\Authentication\ApplicationPasswordTable;
if ($_SERVER["REQUEST_METHOD"] == "OPTIONS") {
    header('Access-Control-Allow-Methods: POST, OPTIONS');
    header('Access-Control-Max-Age: 60');
    header('Access-Control-Allow-Headers: X-Requested-With, Content-Type, Accept');
    die('');
}
if (!IsModuleInstalled('bitrix24')) {
    header('Access-Control-Allow-Origin: *');
}
$data = array("status" => "failed", "bitrix_sessid" => bitrix_sessid());
$userData = CHTTP::ParseAuthRequest();
$APPLICATION->RestartBuffer();
$login = $userData["basic"]["username"];
$isAlreadyAuthorized = $USER->IsAuthorized();
if (!$isAlreadyAuthorized) {
    if ($isAlreadyAuthorized) {
        $USER->Logout();
    }
    if (IsModuleInstalled('bitrix24')) {
        header('Access-Control-Allow-Origin: *');
    }
    if ($login) {
        if (CModule::IncludeModule('bitrix24') && ($captchaInfo = CBitrix24::getStoredCaptcha())) {
            $data["captchaCode"] = $captchaInfo["captchaCode"];
            $data["captchaURL"] = $captchaInfo["captchaURL"];
        } elseif ($APPLICATION->NeedCAPTHAForLogin($login)) {
	public static function OnAfterUserAuthorize($arParams)
	{
		$arAuth = CHTTP::ParseAuthRequest();
		if(isset($arAuth["basic"]) && $arAuth["basic"]["username"] <> '' && $arAuth["basic"]["password"] <> ''
			&& strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'bitrix') === false)
		{
			return false;
		}

		if (isset($arParams['update']) && $arParams['update'] === false)
			return false;

		if ($arParams['user_fields']['ID'] <= 0)
			return false;

		$arParams['user_fields']['ID'] = intval($arParams['user_fields']['ID']);

		if (isset($_SESSION['USER_LAST_AUTH_'.$arParams['user_fields']['ID']])
			&& intval($_SESSION['USER_LAST_AUTH_'.$arParams['user_fields']['ID']])+100 > time())
			return false;

		$_SESSION['USER_LAST_AUTH_'.$arParams['user_fields']['ID']] = time();
		unset($_SESSION['USER_LAST_LOGOUT_'.$arParams['user_fields']['ID']]);

		$userStatus = 'online';
		if (CModule::IncludeModule('im'))
		{
			$res = Bitrix\Im\StatusTable::getById($arParams['user_fields']['ID']);
			if ($status = $res->fetch())
			{
				$userStatus = $status['STATUS'];
			}
		}

		CPullStack::AddShared(Array(
			'module_id' => 'online',
			'command' => 'user_online',
			'params' => Array(
				'USER_ID' => $arParams['user_fields']['ID'],
				'STATUS' => $userStatus
			),
		));

		return true;
	}
Exemple #5
0
	public static function OnAfterUserAuthorize($arParams)
	{
		$arAuth = CHTTP::ParseAuthRequest();
		if(isset($arAuth["basic"]) && $arAuth["basic"]["username"] <> '' && $arAuth["basic"]["password"] <> ''
			&& strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'bitrix') === false)
		{
			return false;
		}

		if (isset($arParams['update']) && $arParams['update'] === false)
			return false;

		if ($arParams['user_fields']['ID'] <= 0)
			return false;

		$arParams['user_fields']['ID'] = intval($arParams['user_fields']['ID']);

		if (isset($_SESSION['USER_LAST_AUTH_'.$arParams['user_fields']['ID']])
			&& intval($_SESSION['USER_LAST_AUTH_'.$arParams['user_fields']['ID']])+100 > time())
			return false;

		$_SESSION['USER_LAST_AUTH_'.$arParams['user_fields']['ID']] = time();
		unset($_SESSION['USER_LAST_LOGOUT_'.$arParams['user_fields']['ID']]);

		CPullStack::AddShared(Array(
			'module_id' => 'main',
			'command' => 'user_authorize',
			'params' => Array(
				'USER_ID' => $arParams['user_fields']['ID']
			),
		));
	}