summaryrefslogtreecommitdiff
path: root/public/app/routes
diff options
context:
space:
mode:
Diffstat (limited to 'public/app/routes')
-rw-r--r--public/app/routes/api.php2
-rw-r--r--public/app/routes/frontend.php66
-rw-r--r--public/app/routes/user.php114
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() );
+ });
}
-
-
-