diff options
Diffstat (limited to 'public')
| -rw-r--r-- | public/app/controllers/Auth.php | 15 | ||||
| -rw-r--r-- | public/app/controllers/CmsAdmin.php | 2 | ||||
| -rw-r--r-- | public/app/extends/Cache_service.php | 4 | ||||
| -rw-r--r-- | public/app/extends/Classroom_manager.php | 4 | ||||
| -rw-r--r-- | public/app/extends/SendMail_service.php (renamed from public/app/extends/Send_mail.php) | 2 | ||||
| -rw-r--r-- | public/app/models/Access_model.php (renamed from public/app/models/User_model.php) | 140 | ||||
| -rw-r--r-- | public/app/models/History_model.php (renamed from public/app/models/admin/History_model.php) | 2 | ||||
| -rw-r--r-- | public/app/models/admin/Privilege_model.php | 42 | ||||
| -rw-r--r-- | public/app/models/todo.md | 7 |
9 files changed, 67 insertions, 151 deletions
diff --git a/public/app/controllers/Auth.php b/public/app/controllers/Auth.php index aeec41c..4b3dcfb 100644 --- a/public/app/controllers/Auth.php +++ b/public/app/controllers/Auth.php @@ -7,10 +7,9 @@ use Render; // user classes and models use app\extends\Classroom_user; use app\extends\Classroom_manager; -use app\models\User_model; +use app\models\Access_model; +use app\extends\SendMail_service; -use app\extends\Send_mail; -use app\extends\Mail_jet; /** class Auth @@ -31,7 +30,7 @@ class Auth { $req = Registry::get('REQUEST'); // get the record of the target user - $record = User_model::checkUser($req->POST['email']); + $record = Access_model::checkUser($req->POST['email']); // if no user exists, return false if ($record === false) return false; @@ -51,7 +50,7 @@ class Auth { if ($userManager->isPasswordValid($user, $req->POST['password'])) { // get user's security attributes - $attributes = User_Model::getUser($record['id']); + $attributes = Access_model::getUser($record['id']); $roles = json_decode($attributes['Roles_json']); $user ->setRoles($roles) @@ -111,7 +110,7 @@ class Auth { $req = Registry::get('REQUEST'); // get the record of the target user - $check = User_model::activate($req->GET['ticket']); + $check = Access_model::activate($req->GET['ticket']); if ($check == true) { Render::view('/error/general', [ @@ -151,7 +150,7 @@ class Auth { ->setPrivileges([]); // none privilege until acount confirmation // create user record - $activation_code = User_model::registerUser($req->POST, $password); + $activation_code = Access_model::registerUser($req->POST, $password); // TODO: // handle error on user registration @@ -164,7 +163,7 @@ class Auth { // ]; // } - $send_mail = Send_mail::send_activation_code([ + $send_mail = SendMail_service::send_activation_code([ 'email' => $req->POST['email'], 'name' => $req->POST['name'] .' '. $req->POST['surname'], 'code' => $activation_code['activation'] diff --git a/public/app/controllers/CmsAdmin.php b/public/app/controllers/CmsAdmin.php index aa6ff6f..9629741 100644 --- a/public/app/controllers/CmsAdmin.php +++ b/public/app/controllers/CmsAdmin.php @@ -1,6 +1,6 @@ <?php -namespace app\controllers\admin; +namespace app\controllers; use Registry; use Render; diff --git a/public/app/extends/Cache_service.php b/public/app/extends/Cache_service.php index e372e1e..c435b75 100644 --- a/public/app/extends/Cache_service.php +++ b/public/app/extends/Cache_service.php @@ -2,7 +2,7 @@ namespace app\extends; use app\models\Cms_model; -use app\models\admin\Privilege_model; +use app\models\Access_model; /** Cache service * ----------------------------------------------------------------------------- @@ -39,7 +39,7 @@ class Cache_service public static function privileges_hierarchy( $options = 0 ) { return proxy( - [\app\models\admin\Privilege_model::class, 'privileges'], + [\app\models\Access_model::class, 'privileges'], [], CACHE_ROOT_TTL, $options ); diff --git a/public/app/extends/Classroom_manager.php b/public/app/extends/Classroom_manager.php index 4d38ba3..ea2e891 100644 --- a/public/app/extends/Classroom_manager.php +++ b/public/app/extends/Classroom_manager.php @@ -37,7 +37,7 @@ class Classroom_manager extends UserManager public function register_user() { $req = Registry::get('REQUEST'); - $register = User_model::registerUser($req->POST); + $register = Access_model::registerUser($req->POST); if ($register['success']) { @@ -83,7 +83,7 @@ class Classroom_manager extends UserManager public function create_OTP($id) { $otp = rand(100000,999999); - User_model::set_OTP($id, $otp); + Access_model::set_OTP($id, $otp); return true; } diff --git a/public/app/extends/Send_mail.php b/public/app/extends/SendMail_service.php index 52eab53..c717e61 100644 --- a/public/app/extends/Send_mail.php +++ b/public/app/extends/SendMail_service.php @@ -6,7 +6,7 @@ use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; -class Send_mail +class SendMail_service { /** send_activation_code * diff --git a/public/app/models/User_model.php b/public/app/models/Access_model.php index f799dd9..d5ae19e 100644 --- a/public/app/models/User_model.php +++ b/public/app/models/Access_model.php @@ -3,9 +3,9 @@ namespace app\models; use \Registry; -use app\models\admin\History_model; +use app\models\History_model; -class User_model +class Access_model { ## User methods @@ -136,11 +136,6 @@ class User_model return [ "success" => false, 'error' => EMPTY_REQUIRED_FIELDS ]; } - - // TODO: - // check if email exists - // ... - // create an activation code $activation_code = md5($data['email'].time().rand(0, 10000)); @@ -179,6 +174,40 @@ class User_model } + /** activate + * + * check if activation code is valid; + * if valid, set account active; + * + * @param $ticket (hex/MD5): activation code; + * + */ + public static function activate($ticket) + { + $user = Registry::use('database')->query( + "SELECT * FROM user WHERE activation = :ticket", + [ 'ticket' => $ticket ] + )->getFirst(); + + // if no user with this activation code, return false + if ($user === false) return false; + + // remove activation code from user record + Registry::use('database')->runQuery( + "UPDATE user + SET active = 1, `activation` = NULL + WHERE activation = :ticket", + [ 'ticket' => $ticket ] + ); + + // update history + History_model::trackUserAccess($user['id'], TRACK_ACCOUNT, 'User Account Activated'); + + return true; + + } + + ## Set permission methods ## ------------------------------------------------------------------------- @@ -217,95 +246,24 @@ class User_model } - /** activate - * - * check if activation code is valid; - * if valid, set account active; - * - * @param $ticket (hex/MD5): activation code; + ## List methods + ## ------------------------------------------------------------------------- + + + /** privileges + * --- + * get all privileges (as a list) + * used by cacher; speeds up seveal things * + * @param void + * @return privileges (array) */ - public static function activate($ticket) + public static function privileges() { - $user = Registry::use('database')->query( - "SELECT * FROM user WHERE activation = :ticket", - [ 'ticket' => $ticket ] - )->getFirst(); - - // if no user with this activation code, return false - if ($user === false) return false; - - // remove activation code from user record - Registry::use('database')->runQuery( - "UPDATE user - SET active = 1, `activation` = NULL - WHERE activation = :ticket", - [ 'ticket' => $ticket ] + return Registry::use('database')->runQuery( + "SELECT * FROM privilege",[] ); - - // update history - History_model::trackUserAccess($user['id'], TRACK_ACCOUNT, 'User Account Activated'); - - return true; - } - ## documention methods - ## methods related to properties that determin user's access - ##-------------------------------------------------------------------------- - } - -/* example query getUser (super-array) ---- -- -- - - - - -SELECT user.*, -( -- array (json) of roles granted to user - SELECT CONCAT('[', GROUP_CONCAT(role.id), ']') - FROM `role` - WHERE role.id IN ( - SELECT user_role.role_id - FROM user_role - WHERE user_role.user_id = 1 - ) -) AS Roles_json, -( - SELECT CONCAT( - '[', - GROUP_CONCAT(privilege.id), - ']' - ) - FROM privilege - WHERE privilege.id IN ( - SELECT user_privilege.privilege_id - FROM user_privilege - WHERE user_privilege.user_id = 1 - ) -) AS RootPrivileges_json, -( - SELECT CONCAT( -- array of array of sub-privileges - '[', - GROUP_CONCAT( -- array (json) of subprivileges - ( - SELECT CONCAT( - '[', - GROUP_CONCAT(included_id), - ']' - ) - FROM privilege_includes - WHERE privilege_id = privilege.id - ) - ), - ']' - ) - FROM privilege - WHERE privilege.id IN ( - SELECT user_privilege.privilege_id - FROM user_privilege - WHERE user_id = 1 - ) -) AS SubPrivileges_json -FROM user -WHERE id = 1 ---- */
\ No newline at end of file diff --git a/public/app/models/admin/History_model.php b/public/app/models/History_model.php index 04ce630..f50539f 100644 --- a/public/app/models/admin/History_model.php +++ b/public/app/models/History_model.php @@ -1,5 +1,5 @@ <?php -namespace app\models\admin; +namespace app\models; use \Registry; diff --git a/public/app/models/admin/Privilege_model.php b/public/app/models/admin/Privilege_model.php deleted file mode 100644 index c385484..0000000 --- a/public/app/models/admin/Privilege_model.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php - -namespace app\models\admin; - -use Registry; -use Render; - - -class Privilege_model { - - /** privileges - * --- - * get all privileges - * - * @param void - * @return privileges (array) - */ - public static function privileges() - { - return Registry::use('database')->runQuery( - "SELECT * FROM privilege",[] - ); - } - - /** edit privileges - * --- - */ - public static function edit_privileges() - { - // TODO: ... - } - - - /** update course - * --- - */ - public static function update_course() - { - // TODO: ... - } - -}
\ No newline at end of file diff --git a/public/app/models/todo.md b/public/app/models/todo.md index 5a18f38..ec027a6 100644 --- a/public/app/models/todo.md +++ b/public/app/models/todo.md @@ -13,9 +13,9 @@ Rearange [ok] app\models\admin\User_model -> [*] app\models\User_model -app\models\admin\Privilege_model -> [merge_to] -> [**] app\models\User_model +[ok] app\models\admin\Privilege_model -> [merge_to] -> [**] app\models\User_model -app\models\admin\History_model -> [*] app\models\History_model +[ok] app\models\admin\History_model -> [*] app\models\History_model [ok] app\models\cms\Page_model -> [delete] @@ -23,6 +23,7 @@ app\models\admin\History_model -> [*] app\models\History_model [ok] app\models\cms\Course_model -> [*] app\models\Course_model + [*] = move @@ -34,7 +35,7 @@ app\models\admin\History_model -> [*] app\models\History_model [ok] app\models\Course_model -> [rename] app\models\Cms_model - +[ok] app\extends\Send_mail -> [rename] SendMail_service |
