diff --git a/CHANGELOG.md b/CHANGELOG.md index 25493a4f..424c9ce9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,19 @@ # Release Notes -## [Unreleased](https://github.com/laravel/laravel/compare/v6.0.2...master) +## [Unreleased](https://github.com/laravel/laravel/compare/v6.2.0...master) + + +## [v6.2.0 (2019-10-08)](https://github.com/laravel/laravel/compare/v6.0.2...v6.2.0) + +### Added +- Add 'null' logging channel ([#5106](https://github.com/laravel/laravel/pull/5106)) +- Add Password confirmation ([#5129](https://github.com/laravel/laravel/pull/5129), [d1f7a5a](https://github.com/laravel/laravel/commit/d1f7a5a886039e28a434905447865ca952032284), [9bc23ee](https://github.com/laravel/laravel/commit/9bc23ee468e1fb3e5b4efccdc35f1fcee5a8b6bc)) + +### Removed +- Remove testing bootstrap extension ([#5107](https://github.com/laravel/laravel/pull/5107)) + +### Fixed +- Revert "[6.x] According to PHP Bug 78516 Argon2 requires at least 8KB" ([#5102]()https://github.com/laravel/laravel/pull/5102) ## [v6.0.2 (2019-09-10)](https://github.com/laravel/laravel/compare/v6.0.1...v6.0.2) diff --git a/app/Http/Controllers/Auth/ConfirmPasswordController.php b/app/Http/Controllers/Auth/ConfirmPasswordController.php new file mode 100644 index 00000000..3559954c --- /dev/null +++ b/app/Http/Controllers/Auth/ConfirmPasswordController.php @@ -0,0 +1,39 @@ +<?php + +namespace App\Http\Controllers\Auth; + +use App\Http\Controllers\Controller; +use Illuminate\Foundation\Auth\ConfirmsPasswords; + +class ConfirmPasswordController extends Controller +{ + /* + |-------------------------------------------------------------------------- + | Confirm Password Controller + |-------------------------------------------------------------------------- + | + | This controller is responsible for handling password confirmations and + | uses a simple trait to include the behavior. You're free to explore + | this trait and override any functions that require customization. + | + */ + + use ConfirmsPasswords; + + /** + * Where to redirect users when the intended url fails. + * + * @var string + */ + protected $redirectTo = '/home'; + + /** + * Create a new controller instance. + * + * @return void + */ + public function __construct() + { + $this->middleware('auth'); + } +} diff --git a/app/Http/Controllers/Auth/ForgotPasswordController.php b/app/Http/Controllers/Auth/ForgotPasswordController.php index 6a247fef..465c39cc 100644 --- a/app/Http/Controllers/Auth/ForgotPasswordController.php +++ b/app/Http/Controllers/Auth/ForgotPasswordController.php @@ -19,14 +19,4 @@ class ForgotPasswordController extends Controller */ use SendsPasswordResetEmails; - - /** - * Create a new controller instance. - * - * @return void - */ - public function __construct() - { - $this->middleware('guest'); - } } diff --git a/app/Http/Controllers/Auth/ResetPasswordController.php b/app/Http/Controllers/Auth/ResetPasswordController.php index cf726eec..fe965b24 100644 --- a/app/Http/Controllers/Auth/ResetPasswordController.php +++ b/app/Http/Controllers/Auth/ResetPasswordController.php @@ -26,14 +26,4 @@ class ResetPasswordController extends Controller * @var string */ protected $redirectTo = '/home'; - - /** - * Create a new controller instance. - * - * @return void - */ - public function __construct() - { - $this->middleware('guest'); - } } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 0d7d8c15..2741c0a3 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -57,6 +57,7 @@ class Kernel extends HttpKernel 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, + 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, diff --git a/composer.json b/composer.json index 7cd832e8..288180d5 100644 --- a/composer.json +++ b/composer.json @@ -10,7 +10,7 @@ "require": { "php": "^7.2", "fideloper/proxy": "^4.0", - "laravel/framework": "^6.0", + "laravel/framework": "^6.2", "laravel/tinker": "^1.0" }, "require-dev": { diff --git a/config/auth.php b/config/auth.php index 897dc826..aaf982bc 100644 --- a/config/auth.php +++ b/config/auth.php @@ -97,7 +97,21 @@ return [ 'provider' => 'users', 'table' => 'password_resets', 'expire' => 60, + 'throttle' => 60, ], ], + /* + |-------------------------------------------------------------------------- + | Password Confirmation Timeout + |-------------------------------------------------------------------------- + | + | Here you may define the amount of seconds before a password confirmation + | times out and the user is prompted to re-enter their password via the + | confirmation screen. By default, the timeout lasts for three hours. + | + */ + + 'password_timeout' => 10800, + ]; diff --git a/config/hashing.php b/config/hashing.php index 9146bfd9..84257708 100644 --- a/config/hashing.php +++ b/config/hashing.php @@ -44,7 +44,7 @@ return [ */ 'argon' => [ - 'memory' => 8192, + 'memory' => 1024, 'threads' => 2, 'time' => 2, ], diff --git a/config/logging.php b/config/logging.php index d09cd7d2..0df82129 100644 --- a/config/logging.php +++ b/config/logging.php @@ -1,5 +1,6 @@ <?php +use Monolog\Handler\NullHandler; use Monolog\Handler\StreamHandler; use Monolog\Handler\SyslogUdpHandler; @@ -89,6 +90,11 @@ return [ 'driver' => 'errorlog', 'level' => 'debug', ], + + 'null' => [ + 'driver' => 'monolog', + 'handler' => NullHandler::class, + ], ], ]; diff --git a/phpunit.xml b/phpunit.xml index 61b6b64b..c1a4100a 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> -<phpunit backupGlobals="false" +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd" + backupGlobals="false" backupStaticAttributes="false" bootstrap="vendor/autoload.php" colors="true" @@ -22,9 +24,6 @@ <directory suffix=".php">./app</directory> </whitelist> </filter> - <extensions> - <extension class="Tests\Bootstrap"/> - </extensions> <php> <server name="APP_ENV" value="testing"/> <server name="BCRYPT_ROUNDS" value="4"/> @@ -32,10 +31,5 @@ <server name="MAIL_DRIVER" value="array"/> <server name="QUEUE_CONNECTION" value="sync"/> <server name="SESSION_DRIVER" value="array"/> - <server name="APP_CONFIG_CACHE" value="bootstrap/cache/config.phpunit.php"/> - <server name="APP_SERVICES_CACHE" value="bootstrap/cache/services.phpunit.php"/> - <server name="APP_PACKAGES_CACHE" value="bootstrap/cache/packages.phpunit.php"/> - <server name="APP_ROUTES_CACHE" value="bootstrap/cache/routes.phpunit.php"/> - <server name="APP_EVENTS_CACHE" value="bootstrap/cache/events.phpunit.php"/> </php> </phpunit> diff --git a/readme.md b/readme.md index f95b2ec9..73dddea2 100644 --- a/readme.md +++ b/readme.md @@ -58,6 +58,8 @@ We would like to extend our thanks to the following sponsors for funding Laravel - [Understand.io](https://www.understand.io/) - [Abdel Elrafa](https://abdelelrafa.com) - [Hyper Host](https://hyper.host) +- [Appoly](https://www.appoly.co.uk) +- [OP.GG](https://op.gg) ## Contributing diff --git a/resources/lang/en/passwords.php b/resources/lang/en/passwords.php index f3b01a46..86f1082b 100644 --- a/resources/lang/en/passwords.php +++ b/resources/lang/en/passwords.php @@ -17,5 +17,6 @@ return [ 'sent' => 'We have e-mailed your password reset link!', 'token' => 'This password reset token is invalid.', 'user' => "We can't find a user with that e-mail address.", + 'throttled' => 'Please wait before retrying.', ]; diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php index e1d879f3..ce1d80dd 100644 --- a/resources/lang/en/validation.php +++ b/resources/lang/en/validation.php @@ -93,6 +93,7 @@ return [ 'not_in' => 'The selected :attribute is invalid.', 'not_regex' => 'The :attribute format is invalid.', 'numeric' => 'The :attribute must be a number.', + 'password' => 'The password is incorrect.', 'present' => 'The :attribute field must be present.', 'regex' => 'The :attribute format is invalid.', 'required' => 'The :attribute field is required.', diff --git a/tests/Bootstrap.php b/tests/Bootstrap.php deleted file mode 100644 index 5fa7829c..00000000 --- a/tests/Bootstrap.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php - -namespace Tests; - -use Illuminate\Contracts\Console\Kernel; -use PHPUnit\Runner\AfterLastTestHook; -use PHPUnit\Runner\BeforeFirstTestHook; - -class Bootstrap implements BeforeFirstTestHook, AfterLastTestHook -{ - /* - |-------------------------------------------------------------------------- - | Bootstrap The Test Environment - |-------------------------------------------------------------------------- - | - | You may specify console commands that execute once before your test is - | run. You are free to add your own additional commands or logic into - | this file as needed in order to help your test suite run quicker. - | - */ - - use CreatesApplication; - - public function executeBeforeFirstTest(): void - { - $console = $this->createApplication()->make(Kernel::class); - - $commands = [ - 'config:cache', - 'event:cache', - ]; - - foreach ($commands as $command) { - $console->call($command); - } - } - - public function executeAfterLastTest(): void - { - array_map('unlink', glob('bootstrap/cache/*.phpunit.php')); - } -}