public function postForgotPasswordConfirm($userId, $passwordResetCode)
    {
        // Declare the rules for the form validation
        $rules = array(
            'password'         => 'required|between:3,32',
            'password_confirm' => 'required|same:password'
        );

        // Create a new validator instance from our dynamic rules
        $validator = Validator::make(Input::all(), $rules);

        // If validation fails, we'll exit the operation now.
        if ($validator->fails()) {
            // Ooops.. something went wrong
            return Redirect::route('forgot-password-confirm', compact(['userId','passwordResetCode']))->withInput()->withErrors($validator);
        }

        // Find the user using the password reset code
        $user = Sentinel::findById($userId);
        if(!$reminder = Reminder::complete($user, $passwordResetCode, Input::get('password')))
        {
            Base::Log('Forgot password confirm failed for ' . $user->username . ' (' . $user->first_name . ' ' . $user->last_name . ') from IP ' . Request::ip() );

            // Ooops.. something went wrong
            return Redirect::route('login')->with('error', Lang::get('base.auth.forgot_password_confirm.error'));
        } else {
            // Send the activation code through email
            Mail::queue('emails.auth.password-changed', [ 'user' => $user], function ($m) use ($user) {
                $m->to($user->email, $user->first_name . ' ' . $user->last_name);
                $m->subject(Lang::get('base.mails.password_changed'));
            });
        }

        Base::Log('Forgot password confirmed for ' . $user->username . ' (' . $user->first_name . ' ' . $user->last_name . ') from IP ' . Request::ip() );

        // Password successfully reseted
        return Redirect::route('login')->with('success', Lang::get('base.auth.forgot_password_confirm.success'));
    }