diff --git a/app/Http/Controllers/Auth/AuthController.php b/app/Http/Controllers/Auth/AuthController.php index fadb4029dc..97e9bf6a09 100644 --- a/app/Http/Controllers/Auth/AuthController.php +++ b/app/Http/Controllers/Auth/AuthController.php @@ -5,6 +5,7 @@ use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\Role; use FireflyIII\User; use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; +use Illuminate\Foundation\Auth\ThrottlesLogins; use Illuminate\Http\Request; use Illuminate\Mail\Message; use Mail; @@ -19,6 +20,8 @@ use Validator; */ class AuthController extends Controller { + use AuthenticatesAndRegistersUsers, ThrottlesLogins; + /* |-------------------------------------------------------------------------- @@ -31,7 +34,54 @@ class AuthController extends Controller | */ - use AuthenticatesAndRegistersUsers; + + /** + * Handle a login request to the application. + * + * @param \Illuminate\Http\Request $request + * + * @return \Illuminate\Http\Response + */ + public function postLogin(Request $request) + { + $this->validate( + $request, [ + $this->loginUsername() => 'required', 'password' => 'required', + ] + ); + + // If the class is using the ThrottlesLogins trait, we can automatically throttle + // the login attempts for this application. We'll key this by the username and + // the IP address of the client making these requests into this application. + $throttles = $this->isUsingThrottlesLoginsTrait(); + + if ($throttles && $this->hasTooManyLoginAttempts($request)) { + return $this->sendLockoutResponse($request); + } + + $credentials = $this->getCredentials($request); + $credentials['blocked'] = 0; + + if (Auth::attempt($credentials, $request->has('remember'))) { + return $this->handleUserWasAuthenticated($request, $throttles); + } + + // If the login attempt was unsuccessful we will increment the number of attempts + // to login and redirect the user back to the login form. Of course, when this + // user surpasses their maximum number of attempts they will get locked out. + if ($throttles) { + $this->incrementLoginAttempts($request); + } + + return redirect($this->loginPath()) + ->withInput($request->only($this->loginUsername(), 'remember')) + ->withErrors( + [ + $this->loginUsername() => $this->getFailedLoginMessage(), + ] + ); + } + public $redirectTo = '/'; diff --git a/app/Http/Controllers/NewUserController.php b/app/Http/Controllers/NewUserController.php index c8bd931660..f568da53f7 100644 --- a/app/Http/Controllers/NewUserController.php +++ b/app/Http/Controllers/NewUserController.php @@ -53,6 +53,7 @@ class NewUserController extends Controller // create normal asset account: $assetAccount = [ 'name' => $request->get('bank_name'), + 'iban' => null, 'accountType' => 'asset', 'virtualBalance' => 0, 'active' => true, @@ -69,6 +70,7 @@ class NewUserController extends Controller if (strlen($request->get('savings_balance') > 0)) { $savingsAccount = [ 'name' => $request->get('bank_name') . ' savings account', + 'iban' => null, 'accountType' => 'asset', 'virtualBalance' => 0, 'active' => true, @@ -86,6 +88,7 @@ class NewUserController extends Controller if (strlen($request->get('credit_card_limit') > 0)) { $creditAccount = [ 'name' => 'Credit card', + 'iban' => null, 'accountType' => 'asset', 'virtualBalance' => floatval($request->get('credit_card_limit')), 'active' => true, diff --git a/config/database.php b/config/database.php index f5334dc581..6d6387980a 100644 --- a/config/database.php +++ b/config/database.php @@ -28,6 +28,7 @@ return [ 'default' => env('DB_CONNECTION', 'mysql'), + /* |-------------------------------------------------------------------------- | Database Connections diff --git a/config/firefly.php b/config/firefly.php index 0458b930ff..a2733e3ef5 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -2,7 +2,7 @@ return [ 'chart' => 'chartjs', - 'version' => '3.4.8', + 'version' => '3.4.9', 'index_periods' => ['1D', '1W', '1M', '3M', '6M', '1Y', 'custom'], 'budget_periods' => ['daily', 'weekly', 'monthly', 'quarterly', 'half-year', 'yearly'], 'csv_import_enabled' => true, diff --git a/config/session.php b/config/session.php index 466d9ba843..17aed45faf 100644 --- a/config/session.php +++ b/config/session.php @@ -2,22 +2,6 @@ return [ - /* - |-------------------------------------------------------------------------- - | Default Session Driver - |-------------------------------------------------------------------------- - | - | This option controls the default session "driver" that will be used on - | requests. By default, we will use the lightweight native driver but - | you may specify any of the other wonderful drivers provided here. - | - | Supported: "file", "cookie", "database", "apc", - | "memcached", "redis", "array" - | - */ - - 'driver' => env('SESSION_DRIVER', 'file'), - /* |-------------------------------------------------------------------------- | Session Lifetime @@ -33,18 +17,6 @@ return [ 'expire_on_close' => false, - /* - |-------------------------------------------------------------------------- - | Session Encryption - |-------------------------------------------------------------------------- - | - | This option allows you to easily specify that all of your session data - | should be encrypted before it is stored. All encryption will be run - | automatically by Laravel and you can use the Session like normal. - | - */ - - 'encrypt' => false, /* |-------------------------------------------------------------------------- @@ -59,18 +31,6 @@ return [ 'files' => storage_path() . '/framework/sessions', - /* - |-------------------------------------------------------------------------- - | Session Database Connection - |-------------------------------------------------------------------------- - | - | When using the "database" or "redis" session drivers, you may specify a - | connection that should be used to manage these sessions. This should - | correspond to a connection in your database configuration options. - | - */ - - 'connection' => null, /* |-------------------------------------------------------------------------- @@ -98,18 +58,13 @@ return [ 'lottery' => [2, 100], - /* - |-------------------------------------------------------------------------- - | Session Cookie Name - |-------------------------------------------------------------------------- - | - | Here you may change the name of the cookie used to identify a session - | instance by ID. The name specified here will get used every time a - | new session cookie is created by the framework for every driver. - | - */ + 'driver' => env('SESSION_DRIVER', 'database'), + 'cookie' => 'firefly_session', - 'cookie' => 'laravel_session', + 'connection' => env('DB_CONNECTION', 'mysql'), + + + 'encrypt' => true, /* |-------------------------------------------------------------------------- diff --git a/database/migrations/2015_07_14_204645_changes_for_v349.php b/database/migrations/2015_07_14_204645_changes_for_v349.php new file mode 100644 index 0000000000..2cd99ab8c4 --- /dev/null +++ b/database/migrations/2015_07_14_204645_changes_for_v349.php @@ -0,0 +1,35 @@ +boolean('blocked')->default(0); + } + ); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +}