<?php

//session#new
$app->get("/login", SessionsHelper::not_logged_in_user($app), function () use($app) {
    isset($_SESSION['forward_url']) ? $forward_url = $_SESSION['forward_url'] : ($forward_url = null);
    $app->render('sessions/new.php', ['forward_url' => $forward_url]);
});
//session#create
$app->post("/login", SessionsHelper::not_logged_in_user($app), function () use($app, $validator) {
    $params = $app->request()->post();
    $validation = $validator->make($params, array_merge(User::$email_alt_rules, User::$password_rules));
    //creating array of validation errors
    $messages_all = $validation->messages()->all();
    //if there is any validation errors
    if (!empty($messages_all)) {
        $app->flash('messages', ['danger' => $messages_all]);
        $app->redirect('/login');
    }
    $user = User::where('email', '=', $params['email'])->first();
    if ($user && $user->password_verify($params['password'])) {
        SessionsHelper::is_activated($app, $user);
        SessionsHelper::log_in($user);
        isset($params['remember_me']) ? SessionsHelper::remember($app, $user) : SessionsHelper::forget($app, $user);
        SessionsHelper::redirect_back_or($app, '/');
    } else {
        $app->flash('messages', ['danger' => ['Invalid email/password combination']]);
        $app->redirect('/login');
    }
});
//session#destroy
$app->get("/logout", function () use($app) {
    $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]);
});
//password_resets#update
$app->post("/password_resets/:reset_digest", SessionsHelper::not_logged_in_user($app), function ($reset_digest) use($app, $validator) {
    $params = $app->request()->post();
    $user = User::where('email', '=', StringHelper::base64_url_decode($params['email']))->first();
    PasswordResetsHelper::valid_user($app, $user, $reset_digest);
    PasswordResetsHelper::check_expiration($app, $user);
    SessionsHelper::is_activated($app, $user);
    $validation = $validator->make($params, array_merge(User::$password_rules));
    //creating array of errors
    $message_password_confirmation = array();
    if ($params['password'] != $params['password_confirmation']) {
        $message_password_confirmation = ['Password confirmation doesn\'t match'];
    }
    $messages_validation = $validation->messages()->all();
    $messages_all = array_merge($message_password_confirmation, $messages_validation);
    //if there is any validation errors
    if (!empty($messages_all)) {
Example #3
0
<?php

// users#new
$app->get("/users/new", SessionsHelper::not_logged_in_user($app), function () use($app) {
    $app->render('users/new.php');
});
// users#index
$app->get("/adminpanel/users", function () use($app) {
    $app->render('users/index.php');
});
// users#create
$app->post("/users", SessionsHelper::not_logged_in_user($app), function () use($app, $validator, $environment) {
    $params = $app->request()->post();
    $validation = $validator->make($params, array_merge(User::$name_rules, User::$email_rules, User::$password_rules, User::$telephone_rules, User::$address_rules));
    //creating array of errors
    $message_password_confirmation = array();
    if ($params['password'] != $params['password_confirmation']) {
        $message_password_confirmation = ['Password confirmation doesn\'t match'];
    }
    $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