GetEngineName()); $g_caching_engine_instance->Initialize(); } function IncrementStat($stat) { global $g_caching_stats_enabled, $g_caching_engine_instance; if ($g_caching_stats_enabled !== true) return; if ($g_caching_engine_instance === NULL) return; $g_caching_engine_instance->IncrementStat($stat); } //! Display warning message function Warning($text) { if (G_DNSTOOL_ENTRY_POINT === "api.php") return; Notifications::DisplayWarning($text); } function IsValidRecordType($type) { global $g_editable; return in_array($type, $g_editable); } //! 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'); } function GetCurrentUserName() { global $g_auth, $g_api_token_mask; if ($g_api_token_mask && isset($_SESSION["logged_in"]) && $_SESSION["logged_in"] === true && isset($_SESSION["token"]) && $_SESSION["token"] === true) { $trimmed_name = $_SESSION["user"]; if (psf_string_contains($trimmed_name, '_')) $trimmed_name = substr($trimmed_name, 0, strrpos($trimmed_name, '_')); return $trimmed_name; } if ($g_auth === "ldap" && isset($_SESSION["user"])) return $_SESSION["user"]; if (!isset($_SERVER['REMOTE_USER'])) return "unknown user"; return $_SERVER['REMOTE_USER']; }