From 4f2d900af7636e6744ae14aeeefdf2d6080ac50a Mon Sep 17 00:00:00 2001 From: George Halkiadakis Date: Thu, 30 Mar 2023 05:03:23 +0300 Subject: several mail options tested; mailhog (fake) mailer is working --- html/app/controllers/Auth.php | 105 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 94 insertions(+), 11 deletions(-) (limited to 'html/app/controllers') diff --git a/html/app/controllers/Auth.php b/html/app/controllers/Auth.php index c75f979..d0462e2 100644 --- a/html/app/controllers/Auth.php +++ b/html/app/controllers/Auth.php @@ -1,11 +1,17 @@ cryptPassword($req->POST['password']); + + // echo $password; print_r($req->POST); die(); // OK! - $user = (new User()) - ->setUserName($req->POST['username']) + $user = (new Classroom_user()) + ->setUserName($req->POST['email']) ->setPassword($password) - ->setRoles(['ROLE_USER']); + ->setRoles([ READER ]) // Role: authorized reader + ->setPrivileges([]); // none privilege until acount confirmation + + // create user record + $activation_code = User_model::registerUser($req->POST, $password); // TODO: - // store user to database + // handle error on user registration + // ... + // + // if ($activatopn_code[] == -1) { + // return [ + // 'success' => false, + // 'message' => REGISTRATION_USER_EXISTS + // ]; + // } + + $activation_sent = self::mail_activationCode([ + 'email' => $req->POST['email'], + 'name' => $req->POST['name'] .' '. $req->POST['surname'], + 'code' => $activation_code['activation'] + ]); + + // Send replies + if ($activation_sent) { + return [ + 'success' => true, + 'message' => REGISTRATION_SUCCESS + ]; - $userManager->createUserToken($user); + } else { + return [ + 'success' => false, + 'message' => 'error on sending email' + ]; + } + + + + } + + + private static function mail_activationCode($letter) + { + $mail = new PHPMailer(); + $mail->CharSet = 'utf-8'; + $mail->IsHTML(true); + //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->addAddress($letter['email'], $letter['name']); + $mail->addReplyTo(REPLY_TO_EMAIL, SITE_TITLE); + $mail->AddBCC("piipiis@gmail.com", "tester"); // notifiation email while testing + $mail->Subject = 'Εγγραφή στο Classroom'; + $mail->Body = "Χαίρετε,
+ το παρόν αυτοποιημένο email σάς έχει σταλεί γιατί έχει γίνει αίτημα εγγραφής σας στο Classroom.
+
+ Όνομα επαφής: ". $letter['name'] ."
+ Email : ". $letter['email'] ."
+
+ Για να ενεργοποιήσετε την πρόσβασή σας στο site θα πρέπει να παρακαλώ πατήστε στον + παρακάτω σύνδεσμο url + . +
+
+ Μετά την ενεργοποίηση θα έχετε πρόσσβαση στο περιεχόμενο του site.
+
+ Μην απαντήσετε στο email γιατί δεν υπάρχει φυσική επαφή η οποία να λαμβάνει τυχόν replies.
"; + if (!$mail->send()) { + return false; + } else { + return true; + } + } -- cgit v1.2.3