public static function create($time, $email, $data, PropelPDO $con) { $emailValidation = new EmailValidation(); $hash = md5($time . $email . 'arbitaryKey:EmailValidation') . $time; $emailValidation->setHash($hash)->setCreationdate($time)->setMeta(json_encode($data))->save($con); return $emailValidation; }
public static function create($email) { $manager = BaseManager::build('FelixOnline\\Core\\EmailValidation', 'email_validation'); $manager->filter('email = "%s"', array($email)); $count = $manager->count(); if ($count != 0) { return false; } $class = new EmailValidation(); $class->setEmail($email); $class->setConfirmed(0); // Generate a code $code = uniqid(); $class->setCode($code); $class->save(); // Return the code for use elsewhere return $code; }
public function action_confirm_email_registration() { $valid = false; if (empty($_REQUEST['hash'])) { throw new PageNotFoundException(); } $emailValidation = \EmailValidation::validateHash($_REQUEST['hash']); if (!$emailValidation) { throw new InvalidDataException('Sorry the provided registration hash is invalid!'); } list($valid, $data, $referralMember, $invitation) = \Member::validateSignupForm(json_decode($emailValidation->getMeta(), true)); if ($valid !== true) { throw new \Exception('Doh, something is wrong with the registration data!'); } $con = \Propel::getConnection(); $member = \Activity::exec(['\\Member', 'activity_createFromSignup'], [$data, $referralMember, $invitation, $con], \Activity::ACT_MEMBER_SIGNUP, null, $referralMember, $con); $member->reload(false, $con); Session::setLogin($member); Session::set(Session::KEY_SIGNUP_MSG, true); return new ControllerActionRedirect(Router::toModule('account')); }
public static function sendEmailValidation($recipientEmail, $recipientFullName, \EmailValidation $emailValidation) { $locale = Localizer::get('mail.email_validation'); $href = Router::toModule('member', 'confirm_email_registration', ['hash' => $emailValidation->getHash()]); return self::send($recipientEmail, $recipientFullName, $locale['subject'], Localizer::insert($locale['body'], ['fullname' => $recipientFullName, 'link' => $href], false)); }