then sends to POST:/account/check-login
Route::add('/login', function() {
if (Auth::is_connected()) { header('Location: /panel');
} else {
Render::view('user/login');
}
});
// request logout
Route::add('/logout', function() {
Auth::logout();
header('Location: /'); die();
});
// TODO:
// // request password reset
// Route::add('/account/reset_password', function() { Auth::reset_password(); } );
// Replies to common requests (POST method)
// --- -- -- - - -
// user sends login form
Route::add('/account/check-login', function() {
$response = Auth::login();
Render::json(['status' => $response]);
},
'post'
);
/* DEPRICATED:
// Account Management
////////////////////////////////////////////////////////////////////////////////
// user profile
Route::add('/account/profile', function() {
$user = Auth::is_connected();
if ($user === false) {
Render::view('error/general',
[
'title' => 'Nope!',
'message' => "
No profile
User is not connected"
]
);
} else {
Render::json(['success' => true, 'status' => 'user is connected']);
}
}
);
--- */
// routes for connected users
////////////////////////////////////////////////////////////////////////////////
if (Auth::is_connected()) {
// serve content
// -------------------------------------------------------------------------
// control panel
// --- -- -- - - -
Route::add('/panel', function() {
Render::view('user/panel',[
'is_admin' => Auth::in_admin_group(),
'content' => 'info',
'user' => json_decode(json_encode(
Auth::user_data(), JSON_UNESCAPED_UNICODE
))
]);
});
// request PAGE list-my-petitions
// --- -- -- - - -
Route::add('/user/petitions', function() {
Render::view('user/panel',[
'is_admin' => Auth::in_admin_group(),
'content' => 'own_petitions',
'user' => json_decode(json_encode(
Auth::user_data(), JSON_UNESCAPED_UNICODE
))
]);
});
// requst RESULTS list my petitions
Route::add('/user/get/petitions', function() {
Office::user_petitions();
});
// request NEW petition FORM
// --- -- -- - - -
Route::add('/petition/([0-9a-z\-_]*)', function($tag) {
Office::request_petition($tag);
});
// request EXISTING petition copy
// --- -- -- - - -
Route::add('/petition/signature/([0-9a-f]*)', function($signature) {
Office::petition_copy($signature);
});
// UPDATE user properties
// -------------------------------------------------------------------------
// GET HTML: request UPDADE (properties) FORM
// --- -- -- - - -
Route::add('/user/update_form', function() {
Auth::update_form();
});
// POST: update user (data via post)
// --- -- -- - - -
Route::add('/user/update/properties', function() {
Auth::update_user();
}, 'post');
// GET HTML: request (update) PASSWORD FORM
// --- -- -- - - -
Route::add('/user/password_form', function() {
Auth::password_form();
});
// POST: update user (data via post)
// --- -- -- - - -
Route::add('/user/update/password', function() {
Auth::update_password();
}, 'post');
// CRUD content
// -------------------------------------------------------------------------
// add petition
// --- -- -- - - -
Route::add('/petition/new', function() {
Office::add_petition();
}, 'post');
}
// routes for administrators
////////////////////////////////////////////////////////////////////////////////
if (Auth::in_admin_group()) {
// GET HTML: administer petitions (page)
// --- -- -- - - -
Route::add('/admin/petitions', function() {
Render::view('templates/admin_petitions');
});
// GET JSON: request RESULTS list my petitions
Route::add('/admin/get/petitions', function() {
Office::all_petitions();
});
// POST AJAX: set petition protocol
Route::add('/admin/set/protocol', function() {
Office::set_protocol();
}, 'post');
// invite user(s)
// --- -- -- - - -
Route::add('/admin/invite', function() {
$teachers = Registry::use('database')->runQuery(
"SELECT id, concat(last_name, ' ', first_name) as TeacherName
FROM user ORDER BY TeacherName", []
);
Render::view('templates/invite', ['teachers' => $teachers]);
});
}
// temporary (on development)
////////////////////////////////////////////////////////////////////////////////
// NOTE: these is only for testing purposes
// test connection
if (!PRODUCTION) {
Route::add('/check/connection', function() { Auth::is_connected(); });
}