-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.php
156 lines (125 loc) · 5.17 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<?php
require_once 'lib/limonade.php';
require_once 'lib/db.php';
require_once 'lib/auth.php';
@include_once 'config.php';
session_start();
assert_options(ASSERT_ACTIVE, 1);
function before_exit($exiting) {
if (! $exiting) {
// Probably redirecting
if (option('debug')) {
$_SESSION['PREV_SQL_QUERIES'] = @v($GLOBALS['SQL_QUERIES'], null);
}
}
}
function before($route) {
$handler = $route["callback"];
set('glob_flash', flash_format_all());
set('glob_footer', option('footer'));
if (option('sitedown')) {
if ($handler != "page_auth_logout") {
if (auth_is_user_logged_in()) {
redirect_to('logout');
} else {
if ($handler != "page_sitedown") {
redirect_to('sitedown');
}
}
set('glob_body_css_class', 'sitedown');
return;
}
} else if ($handler == "page_sitedown") {
redirect_to('login');
}
$auth_check_skip_pages = array("page_auth_login", "page_auth_do_login", "page_auth_logout");
if (array_search($handler, $auth_check_skip_pages) !== false) {
set('glob_body_css_class', 'auth');
return;
}
$ok = auth_check_user_and_continue_session();
if (!$ok) {
flash('error', _('Please, log in again.'));
redirect('/');
}
set('glob_user_courses', data_get_course_list_for_user(auth_get_current_user()));
}
function configure() {
option('file_dir', 'dev_files');
option('database', 'sqlite:db/dev.db');
option('l10n', 'en_US.utf8');
option('sitedown', false);
option('debug', false);
if (function_exists('nevilis_configure')) {
nevilis_configure();
}
db_init(option('database'));
$lang = option('l10n');
putenv("LC_ALL=$lang");
setlocale(LC_ALL, $lang);
bindtextdomain('nevilis', './locale/');
bind_textdomain_codeset('nevilis', 'UTF-8');
textdomain('nevilis');
}
function not_found($errno, $errstr, $errfile = null, $errline = null) {
set('errno', $errno);
set('errstr', $errstr);
set('errfile', $errfile);
set('errline', $errline);
return html('404.html.php');
}
layout('layout/default.html.php');
dispatch_post('/sitedown', 'page_sitedown');
dispatch('/sitedown', 'page_sitedown');
if (auth_is_user_logged_in()) {
dispatch('/', 'page_main');
dispatch('/logout', 'page_auth_logout');
dispatch('/change-password', 'page_auth_change_password');
dispatch_post('/change-password', 'page_auth_do_change_password');
dispatch('/admin', 'page_admin_main');
dispatch('/admin/users', 'page_admin_user_list');
dispatch('/admin/users/reset-password', 'page_admin_user_reset_password_select');
dispatch_post('/admin/users/reset-password', 'page_admin_user_reset_password');
dispatch('/admin/users/add', 'page_admin_user_add');
dispatch_post('/admin/users/add', 'page_admin_user_create');
dispatch('/admin/users/edit/:uid', 'page_admin_user_edit');
dispatch_post('/admin/users/edit/:uid', 'page_admin_user_update');
dispatch('/admin/courses', 'page_admin_course_list');
dispatch('/admin/courses/add', 'page_admin_course_add');
dispatch_post('/admin/courses/add', 'page_admin_course_create');
dispatch('/admin/courses/edit/:cid', 'page_admin_course_edit');
dispatch_post('/admin/courses/edit/:cid', 'page_admin_course_update');
dispatch('/admin/enroll', 'page_admin_enroll_main');
dispatch('/admin/enroll/:cid', 'page_admin_enroll_edit');
dispatch_post('/admin/enroll/:cid', 'page_admin_enroll_to_course');
dispatch('/admin/assignments', 'page_admin_assignement_list');
dispatch('/admin/assignments/add', 'page_admin_assignement_add');
dispatch_post('/admin/assignments/add', 'page_admin_assignment_create');
dispatch('/admin/assignments/edit/:aid', 'page_admin_assignment_edit');
dispatch_post('/admin/assignments/edit/:aid', 'page_admin_assignment_update');
dispatch('/admin/assign', 'page_admin_assign_main');
dispatch('/admin/assign/:cid', 'page_admin_assign_edit');
dispatch_post('/admin/assign/:cid', 'page_admin_assign_to_course');
dispatch('/admin/grade', 'page_admin_grade_main');
dispatch('/admin/grade/:cid', 'page_admin_grade_course_main');
dispatch('/admin/grade/:cid/print', 'page_admin_printable_grades_whole_course');
dispatch('/admin/grade/:cid/all', 'page_admin_grade_edit_whole_course');
dispatch_post('/admin/grade/:cid/all', 'page_admin_grade_whole_course');
dispatch('/admin/grade/:cid/assignment/:aid', 'page_admin_grade_edit_assignment_in_course');
dispatch_post('/admin/grade/:cid/assignment/:aid', 'page_admin_grade_assignment_in_course');
dispatch('/admin/download', 'page_admin_download_main');
dispatch('/admin/download/:cid', 'page_admin_download_from_course');
dispatch('/admin/download/:cid/single/:uid/:aid', 'page_admin_download_single_solution');
dispatch('/admin/download/:cid/user/:uid', 'page_admin_download_all_user_solutions');
dispatch('/admin/download/:cid/assignment/:aid', 'page_admin_download_all_assignment_solutions');
dispatch('/admin/download/:cid/all', 'page_admin_download_all_solutions');
dispatch('/:course', 'page_course_main');
dispatch('/:course/:assignment', 'page_assignment_main');
dispatch_post('/:course/:assignment/upload', 'page_assignment_do_upload');
dispatch('/:course/:assignment/:filename', 'page_file_download');
} else {
dispatch_post('/#', 'page_auth_do_login');
dispatch_post('/**', 'page_auth_login');
dispatch('/**', 'page_auth_login');
}
run();