diff options
Diffstat (limited to 'public/app/routes')
| -rw-r--r-- | public/app/routes/api.php | 2 | ||||
| -rw-r--r-- | public/app/routes/frontend.php | 66 | ||||
| -rw-r--r-- | public/app/routes/user.php | 114 |
3 files changed, 94 insertions, 88 deletions
diff --git a/public/app/routes/api.php b/public/app/routes/api.php index dd0fecf..e8dbafe 100644 --- a/public/app/routes/api.php +++ b/public/app/routes/api.php @@ -12,7 +12,7 @@ use app\controllers\api\Doc_api; */ -// depricated: (not needed) +// DEPRECATED: (not needed) // api: database documentation // Route::add('/api/doc', diff --git a/public/app/routes/frontend.php b/public/app/routes/frontend.php index 48d5da3..d58d483 100644 --- a/public/app/routes/frontend.php +++ b/public/app/routes/frontend.php @@ -1,51 +1,61 @@ <?php use app\controllers\Auth; -use app\controllers\App_user; -use app\controllers\Office; -use app\extends\Cache_service; // Home/Welcome //////////////////////////////////////////////////////////////////////////////// -// Route::add('/', function() { Render::view('welcome'); }); -Route::add('/', function() { Render::view('user/login'); }); +// welcome -> redirecto to login +Route::add('/', function() { header("Location: /login");; }); -// invitation +// Error pages //////////////////////////////////////////////////////////////////////////////// -// request invitation (for account activation) -// --- -- -- - - - -Route::add('/invitation/([0-9a-f]*)', function($id) { - if ($id == "" || $id == "0") { Render::view('error/404'); - } else { - Auth::invitation($id); - } +Route::notFound( function() { // 404 error page + header("HTTP/1.0 404 Not Found"); + Render::view('error/404', ['message' => 'nobody knows it (but you got a secret smile;)']); }); -// request activation (submit invitation; POST:form is sent) -// --- -- -- - - - -Route::add('/account/activate', function() { Auth::activate(); }, 'post'); -// DEPRICATED: user sends a registration form -// --- -- -- - - - -# Route::add('/account/register', function() { -# $response = Auth::register(); -# Render::json($response); -# },'post'); +// NOTE: this set of routes defines all valid NON-AUTHenticated requests +//////////////////////////////////////////////////////////////////////////////// +if (!Auth::is_connected()) { -// Error pages -//////////////////////////////////////////////////////////////////////////////// + // request login + // render Form -> will POST: /account/check-login + // --- -- -- - - - + Route::add('/login', function() { Render::view('user/login'); }); -Route::notFound( function() { // 404 error page - header("HTTP/1.0 404 Not Found"); - Render::view('error/404', ['message' => 'nobody knows it (but you got a secret smile;)']); -}); + + // user sends login form + // --- -- -- - - - + Route::add('/account/check-login', function() { + $response = Auth::login(); + Render::json(['status' => $response]); + }, 'post'); + + + // request invitation (for account activation) + // render Form -> will POST /account/activate + // --- -- -- - - - + Route::add('/invitation/([0-9a-f]*)', function($id) { + if ($id == "" || $id == "0") { Render::view('error/404'); + } else { + Auth::invitation($id); + } + }); + + + // POST invitation = activate + // --- -- -- - - - + Route::add('/account/activate', function() { Auth::activate(); }, 'post'); + +} diff --git a/public/app/routes/user.php b/public/app/routes/user.php index 622dc57..63e4e07 100644 --- a/public/app/routes/user.php +++ b/public/app/routes/user.php @@ -1,8 +1,9 @@ <?php use app\controllers\Auth; -use app\controllers\Classroom_user; use app\controllers\Office; +use app\models\Content_model; +use app\models\Access_model; /** User Connection Management Routes @@ -12,14 +13,6 @@ use app\controllers\Office; // common requests (GET method) // --- -- -- - - - -// request login ... -> 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(); @@ -27,53 +20,20 @@ Route::add('/logout', function() { }); -// 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' => "<h2>No profile</h2>User is not connected" - ] - ); - - } else { - Render::json(['success' => true, 'status' => 'user is connected']); - } - } - ); ---- */ - // routes for connected users //////////////////////////////////////////////////////////////////////////////// if (Auth::is_connected()) { - // serve content + // login while authenticated ... -> redirect to panel + Route::add('/login', function() { header('Location: /panel'); }); + + // set invitation while authenticated ... -> redirect to panel + Route::add('/invitation/([0-9a-f]*)', function($id) { header('Location: /panel'); }); + + + // SERVE content // ------------------------------------------------------------------------- // control panel @@ -159,7 +119,6 @@ if (Auth::is_connected()) { Office::add_petition(); }, 'post'); - } @@ -176,9 +135,27 @@ if (Auth::in_admin_group()) { }); - // GET JSON: request RESULTS list my petitions + // GET HTML: administer users (page) + // --- -- -- - - - + Route::add('/admin/users', function() { + Render::view('templates/admin_users'); + }); + + + // GET JSON: request RESULTS list all petitions Route::add('/admin/get/petitions', function() { - Office::all_petitions(); + Render::json([ + 'success' => true, + 'data' => Content_model::all_petitions() + ]); + }); + + + // GET JSON: request RESULTS list all petitions + Route::add('/admin/get/users', function() { + Render::json( Registry::use('database')->runQuery( + "SELECT * FROM user ORDER BY last_name, first_name", [] + )); }); @@ -188,22 +165,42 @@ if (Auth::in_admin_group()) { }, 'post'); + // GET AJAX: activate user (with user-id) + Route::add('/admin/user/activate/([0-9]*)', function( $uid ) { + Render::json([ 'success' => Access_model::activate_user($uid) ]); + // TODO: Cache_service::update_teachers(); + }); + + + // GET AJAX: depricate user (with user-id) + Route::add('/admin/user/deprecate/([0-9]*)', function( $uid ) { + Render::json([ 'success' => Access_model::deprecate_user($uid) ]); + // TODO: Cache_service::update_teachers(); + }); + + // 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 - WHERE otp_expiration < :now OR otp_expiration IS NULL", + FROM user + WHERE ( + otp_expiration < :now OR otp_expiration IS NULL + ) AND deprecated IS NULL + ORDER BY TeacherName", [ ':now' => time() ] ); Render::view('templates/invite', ['teachers' => $teachers]); }); + // POST AJAX: set petition protocol + // --- -- -- - - - Route::add('/admin/send/invitation', function() { Office::send_invitation(); }, 'post'); + } @@ -214,9 +211,8 @@ if (Auth::in_admin_group()) { // test connection if (!PRODUCTION) { - Route::add('/check/connection', function() { Auth::is_connected(); }); + Route::add('/check/connection', function() { + Render::json( Auth::is_connected() ); + }); } - - - |
