r593: Admin login when we have an invalid session
[bugdar.git] / admin / global.php
1 <?php
2 /*=====================================================================*\
3 || ################################################################### ||
4 || # BugStrike [#]version[#]
5 || # --------------------------------------------------------------- # ||
6 || # Copyright ©2002-[#]year[#] by Iris Studios, Inc. All Rights Reserved. # ||
7 || # This file may not be reproduced in any way without permission. # ||
8 || # --------------------------------------------------------------- # ||
9 || # User License Agreement at http://www.iris-studios.com/license/ # ||
10 || ################################################################### ||
11 \*=====================================================================*/
12
13 chdir('./../');
14
15 require_once('./includes/init.php');
16 require_once('./includes/functions.php');
17
18 // ###################################################################
19 // admin navigation
20
21 $globalnav = array(
22 $lang->string('Administration Locations') => array(
23 $lang->string('Home') => 'index.php',
24 $lang->string('Logout') => '../login.php?do=cplogout'
25 ),
26
27 $lang->string('Options') => array(
28 $lang->string('BugStrike Settings') => 'setting.php',
29 $lang->string('Manage Languages') => 'language.php'
30 ),
31
32 $lang->string('Bug Fields') => array(
33 $lang->string('Products / Versions / Components') => 'product.php',
34 $lang->string('Priorities') => 'priority.php',
35 $lang->string('Resolutions') => 'resolution.php',
36 $lang->string('Severities') => 'severity.php',
37 $lang->string('Statuses') => 'status.php',
38 $lang->string('Custom Bug Fields') => 'field.php',
39 $lang->string('Automatic Actions') => 'autoaction.php'
40 ),
41
42 $lang->string('User Management') => array(
43 $lang->string('Users') => 'user.php',
44 $lang->string('Usergroups') => 'usergroup.php',
45 $lang->string('Usergroup Permissions') => 'permission.php'
46 )
47 );
48
49 // ###################################################################
50 // continue loading
51
52 require_once('./includes/adminfunctions.php');
53 $admin = new Admin_Print_Class();
54
55 // ###################################################################
56
57 function admin_login()
58 {
59 global $admin, $bugsys;
60
61 $admin->page_start('Login', '', 15, '', 'document.cplogin.' . (($bugsys->userinfo['email']) ? 'password' : 'email') . '.focus();');
62
63 $admin->form_start('../login.php', 'cplogin', false, 'cplogin');
64 $admin->table_start(true, '425');
65 $admin->table_head($bugsys->lang->string('Login to BugStrike'));
66 $admin->row_input($bugsys->lang->string('Email'), 'email', $bugsys->userinfo['email'], 2, 35, false, false, 'middle');
67 $admin->row_input($bugsys->lang->string('Password'), 'password', '', 2, 35, false, true, 'middle');
68 $admin->row_submit('', $bugsys->lang->string('Login'));
69 $admin->table_end();
70 $admin->form_end();
71
72 $admin->page_end();
73 }
74
75 // ###################################################################
76
77 $bugsys->userinfo['adminsession'] = false;
78
79 if ($_COOKIE[COOKIE_PREFIX . 'adminsession'])
80 {
81 if (can_perform('canadminpanel'))
82 {
83 if (md5(md5($bugsys->userinfo['authkey']) . md5(gmdate('F j, Y @ H'))) != $_COOKIE[COOKIE_PREFIX . 'adminsession'])
84 {
85 $funct->cookie(COOKIE_PREFIX . 'adminsession', '');
86 admin_login();
87 // do we need this message?
88 $admin->error($lang->string('Invalid admin session has been terminated.'));
89 }
90 else
91 {
92 // renew the cookie
93 $funct->cookie(COOKIE_PREFIX . 'adminsession', md5(md5($bugsys->userinfo['authkey']) . md5(gmdate('F j, Y @ H'))), false);
94 $bugsys->userinfo['adminsession'] = true;
95 }
96 }
97 else
98 {
99 $funct->cookie(COOKIE_PREFIX . 'adminsession', '');
100 admin_login();
101 }
102 }
103
104 if (!$_COOKIE[COOKIE_PREFIX . 'adminsession'])
105 {
106 admin_login();
107 }
108
109 /*=====================================================================*\
110 || ###################################################################
111 || # $HeadURL$
112 || # $Id$
113 || ###################################################################
114 \*=====================================================================*/
115 ?>