r1207 + fixed comments
[racktables] / inc / init.php
CommitLineData
e673ee24
DO
1<?
2/*
3*
4* This file performs RackTables initialisation. After you include it
5* from 1st-level page, don't forget to call authorize(). This is done
6* to allow reloading of pageno and tabno variables. pageno and tabno
7* together form security context.
8*
9*/
10
11$root = (empty($_SERVER['HTTPS'])?'http':'https').
12 '://'.
13 (isset($_SERVER['HTTP_HOST'])?$_SERVER['HTTP_HOST']:($_SERVER['SERVER_NAME'].($_SERVER['SERVER_PORT']=='80'?'':$_SERVER['SERVER_PORT']))).
14 dirname($_SERVER['PHP_SELF']).'/';
15
16// This is the first thing we need to do.
17require_once 'inc/config.php';
18
19// What we need first is database and interface functions.
20require_once 'inc/interface.php';
21require_once 'inc/functions.php';
22require_once 'inc/database.php';
23if (file_exists ('inc/secret.php'))
24 require_once 'inc/secret.php';
25else
26{
27 showError
28 (
29 "Database connection parameters are read from inc/secret.php file, " .
30 "which cannot be found.\nCopy provided inc/secret-sample.php to " .
31 "inc/secret.php and modify to your setup.\n\nThen reload the page."
32 );
33 die;
34}
35
36// Now try to connect...
37try
38{
39 $dbxlink = new PDO ($pdo_dsn, $db_username, $db_password);
40}
41catch (PDOException $e)
42{
43 showError ("Database connection failed:\n\n" . $e->getMessage());
44 die();
45}
46
47// Escape any globals before we ever try to use them.
48foreach ($_REQUEST as $key => $value)
49 if (gettype ($value) == 'string')
50 $_REQUEST[$key] = escapeString ($value);
51if (isset ($_SERVER['PHP_AUTH_USER']))
52 $_SERVER['PHP_AUTH_USER'] = escapeString ($_SERVER['PHP_AUTH_USER']);
53if (isset ($_SERVER['PHP_AUTH_PW']))
54 $_SERVER['PHP_AUTH_PW'] = escapeString ($_SERVER['PHP_AUTH_PW']);
55
06f23fd4
DO
56$configCache = loadConfigCache();
57if (!count ($configCache))
58{
59 showError ('Failed to load configuration from the database.');
60 die();
61}
62
e673ee24
DO
63// Now init authentication.
64
65require_once 'inc/auth.php';
66// Load access database once.
67$accounts = getUserAccounts();
68$perms = getUserPermissions();
69if ($accounts === NULL or $perms === NULL)
70{
71 showError ('Failed to initialize access database.');
72 die();
73}
74
75authenticate();
76
77// Authentication passed.
78// Note that we don't perform autorization here, so each 1st level page
79// has to do it in its way, e.g. to call authorize().
80
9c0b0016
DO
81
82
e673ee24
DO
83$remote_username = $_SERVER['PHP_AUTH_USER'];
84$pageno = (isset ($_REQUEST['page'])) ? $_REQUEST['page'] : 'index';
85$tabno = (isset ($_REQUEST['tab'])) ? $_REQUEST['tab'] : 'default';
86
87require_once 'inc/navigation.php';
88require_once 'inc/pagetitles.php';
89require_once 'inc/pagehandlers.php';
90require_once 'inc/ophandlers.php';
641fe9b0 91require_once 'inc/triggers.php';
d33645ff 92require_once 'inc/gateways.php';
d96c1e17 93require_once 'inc/help.php';
e673ee24
DO
94
95?>