/**
 * Renders a 403 access denied page for authorize.php.
 */
function authorize_access_denied_page()
{
    backdrop_add_http_header('Status', '403 Forbidden');
    watchdog('access denied', 'authorize.php', NULL, WATCHDOG_WARNING);
    backdrop_set_title('Access denied');
    return t('You are not allowed to access this page.');
}
/**
 * Checks update requirements and reports errors and (optionally) warnings.
 *
 * @param $skip_warnings
 *   (optional) If set to TRUE, requirement warnings will be ignored, and a
 *   report will only be issued if there are requirement errors. Defaults to
 *   FALSE.
 */
function update_check_requirements($skip_warnings = FALSE)
{
    // Check requirements of all loaded modules.
    $requirements = module_invoke_all('requirements', 'update');
    $requirements += update_extra_requirements();
    $severity = backdrop_requirements_severity($requirements);
    // If there are errors, always display them. If there are only warnings, skip
    // them if the caller has indicated they should be skipped.
    if ($severity == REQUIREMENT_ERROR || $severity == REQUIREMENT_WARNING && !$skip_warnings) {
        update_task_list('requirements');
        backdrop_set_title('Requirements problem');
        $status_report = theme('status_report', array('requirements' => $requirements));
        $status_report .= 'Check the messages and <a href="' . check_url(backdrop_requirements_url($severity)) . '">try again</a>.';
        print theme('update_page', array('content' => $status_report));
        exit;
    }
}