GetEngineName());
$g_caching_engine_instance->Initialize();
}
function DisplayWarning($text)
{
global $g_warning_text;
if (empty($g_warning_text))
{
$g_warning_text = 'WARNING: ' . htmlspecialchars($text);
} else
{
$g_warning_text .= '
WARNING: ' . htmlspecialchars($text);
}
}
function GetWarningBanner()
{
global $g_warning_text;
if ($g_warning_text === NULL)
return NULL;
$warning_box = new BS_Alert($g_warning_text, 'warning');
$warning_box->EscapeHTML = false;
return $warning_box;
}
function IsValidRecordType($type)
{
global $g_editable;
return in_array($type, $g_editable);
}
function IsEditable($domain)
{
global $g_domains;
if (!array_key_exists($domain, $g_domains))
die("No such domain: $domain");
$domain_info = $g_domains[$domain];
if (array_key_exists('read_only', $domain_info) && $domain_info['read_only'] === true)
return false;
return true;
}
//! Return true if application supports and require user to login, no matter if current user
//! is logged in or not. Don't confuse with login.php's RequireLogin() which returns false
//! even when login is enabled in case user is already logged in
function LoginRequired()
{
global $g_auth;
if ($g_auth === NULL || $g_auth !== 'ldap')
return false;
return true;
}
function IsAuthorized($domain, $privilege)
{
global $g_auth_roles, $g_auth_default_role, $g_auth_roles_map;
if ($g_auth_roles === NULL || !LoginRequired())
return true;
$roles = [ $g_auth_default_role ];
$user = $_SESSION['user'];
if ($user === NULL || $user === '')
Error('Invalid username in session');
if (array_key_exists($user, $g_auth_roles_map))
$roles = $g_auth_roles_map[$user];
if (in_array('root', $roles))
return true;
foreach ($roles as $role)
{
if (!array_key_exists($role, $g_auth_roles))
continue;
$role_info = $g_auth_roles[$role];
if (!array_key_exists($domain, $role_info))
continue;
$permissions = $role_info[$domain];
if ($privilege == 'rw' && $permissions == 'rw')
return true;
if ($privilege == 'r' && ($permissions == 'rw' || $permissions == 'r'))
return true;
}
return false;
}
function IsAuthorizedToRead($domain)
{
return IsAuthorized($domain, 'r');
}
function IsAuthorizedToWrite($domain)
{
return IsAuthorized($domain, 'rw');
}