libretime/htmlUI/localizer/auth.inc.php

58 lines
1.3 KiB
PHP

<?php
function login(&$data)
{
include(dirname(__FILE__).'/../../../storageServer/var/conf.php');
include_once(dirname(__FILE__).'/../../../storageServer/var/GreenBox.php');
include_once('DB.php');
global $CC_DBC, $CC_CONFIG;
$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE);
if (DB::isError($CC_DBC)) {
die($CC_DBC->getMessage());
}
$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
$gb = new GreenBox();
if (!$data['PHP_AUTH_USER'] || !$data['PHP_AUTH_PW']) {
return FALSE;
}
$sessid = Alib::Login($data['PHP_AUTH_USER'], $data['PHP_AUTH_PW']);
if (!$sessid || PEAR::isError($sessid)){
return FALSE;
}
setcookie($CC_CONFIG['authCookieName'], $sessid);
if (Subjects::IsMemberOf(GreenBox::GetSessUserId($sessid), Subjects::GetSubjId('Admins')) !== TRUE) {
return FALSE;
}
//$id = M2tree::GetObjId($data['PHP_AUTH_USER'], $gb->storId);
$id = $gb->storId;
if (PEAR::isError($id)) {
return FALSE;
}
return TRUE;
}
function authenticate()
{
Header("WWW-Authenticate: Basic realm=\"My Realm\"");
Header("HTTP/1.0 401 Unauthorized");
echo "Access denied.";
exit;
}
if (!isset($_SERVER['PHP_AUTH_USER'])) {
authenticate();
} elseif (login($_SERVER) !== TRUE) {
authenticate();
}
?>