From 8df89ce39d2acf5b23ee15241060bd9dd6551620 Mon Sep 17 00:00:00 2001 From: George Halkiadakis Date: Tue, 4 Apr 2023 08:46:09 +0300 Subject: database migrated; privileges table has an included(-privileges) field --- html/app/config/app_constants.php | 11 +++- html/app/controllers/Auth.php | 1 + html/app/extends/Send_mail.php | 29 +++++++-- html/app/models/admin/User_model.php | 40 ++++++++++-- html/app/routes/frontend.php | 7 +- html/app/views/user/register.php | 120 ----------------------------------- html/app/views/user/registration.php | 120 +++++++++++++++++++++++++++++++++++ 7 files changed, 192 insertions(+), 136 deletions(-) delete mode 100644 html/app/views/user/register.php create mode 100644 html/app/views/user/registration.php (limited to 'html') diff --git a/html/app/config/app_constants.php b/html/app/config/app_constants.php index 4ddf7ac..5a2c9b3 100644 --- a/html/app/config/app_constants.php +++ b/html/app/config/app_constants.php @@ -32,10 +32,15 @@ define('MAIL_PORT', $env['MAIL_PORT']); define('MAIL_USERNAME', $env['MAIL_USERNAME']); define('MAIL_PASSWORD', $env['MAIL_PASSWORD']); define('MAIL_ENCRYPTION', $env['MAIL_ENCRYPTION']); +define('MAIL_FROM_NAME', $env['MAIL_FROM_NAME']); define('NO_REPLY_EMAIL', $env['NO_REPLY_EMAIL']); define('REPLY_TO_EMAIL', $env['REPLY_TO_EMAIL']); - +// mailjet setup +// --- -- -- - - - +define('MJ_API_KEY', $env['MJ_API_KEY']); +define('MJ_SECRET_KEY', $env['MJ_SECRET_KEY']); +define('MJ_SMTP', $env['MJ_SMTP']); // DEFAULT VALUES ////////////////////////////////////////////////////////////// // ----------------------------------------------------------------------------- @@ -44,8 +49,8 @@ define('REPLY_TO_EMAIL', $env['REPLY_TO_EMAIL']); // (array of privilege aliases) // --- -- -- - - - define('DEFAULT_PRIVILEGES', [ - 'e.1', // economics, level 1 - 'p.1' // programming. level 1 + 1, // economics, level 1 + 5 // programming. level 1 ]); diff --git a/html/app/controllers/Auth.php b/html/app/controllers/Auth.php index de850fe..50f8fe4 100644 --- a/html/app/controllers/Auth.php +++ b/html/app/controllers/Auth.php @@ -9,6 +9,7 @@ use app\extends\Classroom_manager; use app\models\admin\User_model; use app\extends\Send_mail; +use app\extends\Mail_jet; /** class Auth diff --git a/html/app/extends/Send_mail.php b/html/app/extends/Send_mail.php index c3ecb66..7dbb50a 100644 --- a/html/app/extends/Send_mail.php +++ b/html/app/extends/Send_mail.php @@ -17,11 +17,11 @@ class Send_mail $mail->SMTPDebug = 3; $mail->IsSMTP(); $mail->Host = MAIL_HOST; - $mail->SMPTAuth = true; + $mail->SMPTAuth = false; $mail->SMTPSecure = MAIL_ENCRYPTION; // $mail->Protocol = 'mail'; - // $mail->Mailer = MAIL_MAILER; + $mail->Mailer = MAIL_MAILER; $mail->Port = MAIL_PORT; $mail->Username = MAIL_USERNAME; $mail->Password = MAIL_PASSWORD; @@ -61,10 +61,9 @@ class Send_mail // It's important not to use the submitter's address as the from address as it's forgery, // which will cause your messages to fail SPF checks. // Use an address in your own domain as the from address, put the submitter's address in a reply-to - $mail->setFrom(NO_REPLY_EMAIL, SITE_TITLE); + $mail->setFrom(NO_REPLY_EMAIL, MAIL_FROM_NAME); $mail->addAddress($envelope['email'], $envelope['name']); - $mail->addReplyTo(REPLY_TO_EMAIL, SITE_TITLE); - $mail->AddBCC("piipiis@gmail.com", "tester"); // notifiation email while testing + $mail->addReplyTo(REPLY_TO_EMAIL, MAIL_FROM_NAME); $mail->Subject = 'Εγγραφή στο Classroom'; $mail->Body = "Χαίρετε,
το παρόν αυτοποιημένο email σάς έχει σταλεί γιατί έχει γίνει αίτημα εγγραφής σας στο Classroom.
@@ -87,6 +86,10 @@ class Send_mail } } + + + + } @@ -153,5 +156,21 @@ Log event to Email * rU8WEmcHsRcEQaH * rU8WEmcHsRcEQaH * + * mailjet + * piipiis@g + * EN6Xg8!99ZTKaYp7 + * + * + * sendGrid + * piipiis + * EN6Xg899ZTKU8WEmcHsR54321 + * + * + * time4vps... + * https://community.time4vps.com/discussion/75/are-any-ports-blocked-by-time4vps + * + * test activation code: + * ca42d68cfba5fbbafeacc010b8e3a551 + * */ \ No newline at end of file diff --git a/html/app/models/admin/User_model.php b/html/app/models/admin/User_model.php index bfed5c5..187da2d 100644 --- a/html/app/models/admin/User_model.php +++ b/html/app/models/admin/User_model.php @@ -129,7 +129,7 @@ class User_model * @return $activation_code * */ - public static function registerUser($data, $password, $privileges = ['ec.1', 'pr.1']) + public static function registerUser($data, $password, $privileges = DEFAULT_PRIVILEGES) { $required_fields = [ 'name', @@ -174,7 +174,7 @@ class User_model )->lastInsertID(); // set default privileges - // self::set_user_privileges($privileges); + // self::set_user_privileges($new_user_id, $privileges); // update history History::trackUserAccess($new_user_id, TRACK_ACCOUNT, 'Create User Account'); @@ -188,26 +188,54 @@ class User_model } - public static fuunction activate($ticket) + public static function activate($ticket) { $user = Registry::use('database')->query( "SELECT * FROM user WHERE activation = :ticket", - [ 'ticket' => $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 activated = 1 WHERE activation = :ticket", - [ 'ticket' => $ticket] + "UPDATE user + SET activated = 1, `activation` = NULL + WHERE activation = :ticket", + [ 'ticket' => $ticket ] ); + // update history + History::trackUserAccess($new_user_id, TRACK_ACCOUNT, 'User Account Activated'); + return true; } + /** set_user_privileges + * + * @param $user_id (int) + * @param $privileges (array) + */ + public static function set_user_privileges($user_id, $privileges) + { + + foreach($privileges as $pri) { + Registry::use('database')->runQuery( + "INSERT INTO user_privilege (user_id, privilege_id) + VALUES (:user, :privilege)", + [ + ':user' => $user_id, + ':privilege' => $pri + ] + ); + } + + return true; + } + /** inherited privileges * * list of all inhereted (sub-)privileges diff --git a/html/app/routes/frontend.php b/html/app/routes/frontend.php index ca91f7b..e602e87 100644 --- a/html/app/routes/frontend.php +++ b/html/app/routes/frontend.php @@ -2,6 +2,7 @@ use app\controllers\Resolve; use app\controllers\Product; +use app\controllers\Auth; use app\controllers\Classroom_user; // Home/Welcome @@ -38,7 +39,8 @@ Route::notFound( function() { Route::add('/login', function() { Render::view('user/login'); }); -Route::add('/register', function() { Render::view('user/register'); }); +Route::add('/registration', function() { Render::view('user/registration'); }); + @@ -46,10 +48,11 @@ Route::add('/register', function() { Render::view('user/register'); }); // user sends a registration form; Route::add('/account/register', function() { $x = Auth::register(); print_r($x); }, 'post'); - +// user requests activation Route::add('/account/activate', function() { Auth::activate(); } ); + Route::add('/account/reset_password', function() { Auth::reset_password(); } ); diff --git a/html/app/views/user/register.php b/html/app/views/user/register.php deleted file mode 100644 index a5ee116..0000000 --- a/html/app/views/user/register.php +++ /dev/null @@ -1,120 +0,0 @@ - - - - - <?=SITE_TITLE?> - Εγγραφή - - - - - - -
-
-
-

Classroom: Εγγραφή

-
-
-
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -
-
-
-
-

Αν έχετε ήδη λογαρισμό συνδεθείτε.

-

Σε κάθε περίπτωση μπορείτε να επιστρέψετε στην αρχική σελίδα.

-
-
-
- - - - - diff --git a/html/app/views/user/registration.php b/html/app/views/user/registration.php new file mode 100644 index 0000000..e3527f0 --- /dev/null +++ b/html/app/views/user/registration.php @@ -0,0 +1,120 @@ + + + + + <?=SITE_TITLE?> - Εγγραφή + + + + + + +
+
+
+

Classroom: Εγγραφή

+
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+
+
+

Αν έχετε ήδη λογαρισμό συνδεθείτε.

+

Σε κάθε περίπτωση μπορείτε να επιστρέψετε στην αρχική σελίδα.

+
+
+
+ + + + + -- cgit v1.2.3