Beispiel #1
0
 public function send_activation_email()
 {
     $tags_mail = [':/name', ':/link'];
     //modify link with constant !!! Not final version!
     $link = 'http://tinyshopv2/account_activations/' . $user->activation_digest . '/edit/' . StringHelper::base64_url_encode($user->email);
     $replace_mail = [$this->name, $link];
     //modify path for file with constant !!! Not final version!
     $mail_html = str_replace($tags_mail, $replace_mail, file_get_contents('../app/views/mailer/activation_mail.php'));
     Mailer::send_mail($this->email, $this->name, 'Activation email', $mail_html);
 }
    if (!empty($messages_all)) {
        $app->flash('messages', ['danger' => $messages_all]);
        $app->redirect('/password_resets/new');
    }
    $user = User::where('email', '=', $params['email'])->first();
    if (!$user) {
        $app->flash('messages', ['danger' => ['Email address not found']]);
        $app->redirect('/');
    }
    SessionsHelper::is_activated($app, $user);
    if ($environment == 'development') {
        // used on local machine when you not able to send email
        // after submit password reset link appears in debug_info block
        $user->create_digest('reset');
        $user->save();
        $app->flash('debug_info', ['link' => ['Password reset link' => '/password_resets/' . $user->reset_digest . '/edit/' . StringHelper::base64_url_encode($user->email)]]);
        $app->redirect('/');
    }
    $user->create_digest('reset');
    $user->save();
    $user->send_reset_email();
    $app->flash('messages', ['info' => ['Email send with password reset instructions']]);
    $app->redirect('/');
});
//password_resets#edit
$app->get("/password_resets/:reset_digest/edit/:email", SessionsHelper::not_logged_in_user($app), function ($reset_digest, $email) use($app) {
    $user = User::where('email', '=', StringHelper::base64_url_decode($email))->first();
    PasswordResetsHelper::valid_user($app, $user, $reset_digest);
    PasswordResetsHelper::check_expiration($app, $user);
    SessionsHelper::is_activated($app, $user);
    $app->render('password_resets/edit.php', ['reset_digest' => $reset_digest, 'email' => $email]);
    $messages_validation = $validation->messages()->all();
    $messages_all = array_merge($message_password_confirmation, $messages_validation);
    //if there is any errors
    if (!empty($messages_all)) {
        $app->flash('messages', ['danger' => $messages_all]);
        $app->flash('prev_params', $params);
        $app->redirect('/users/new');
    }
    $user = new User($params);
    if ($environment == 'development') {
        // used on local machine when you not able to send email
        // after sign up activation link appears in debug_info block
        $user->create_digest('activation');
        $user->create_digest('password', $params['password']);
        $user->save();
        $app->flash('debug_info', ['link' => ['Activation link' => '/account_activations/' . $user->activation_digest . '/edit/' . StringHelper::base64_url_encode($user->email)]]);
        $app->redirect('/');
    }
    $user->create_digest('activation');
    $user->create_digest('password', $params['password']);
    $user->send_activation_email();
    $user->save();
    $app->flash('messages', ['info' => ['Please check your email to activate your account.']]);
    $app->redirect('/');
});
$app->get("/users/test", function () use($app, $validator, $environment) {
    // $messages_all = ['Password confirmation doesn\'t match',
    //                  'second'
    // ];
    // $app->flash('messages', ['danger' => $messages_all]);
    // $app->redirect('/users/new');