FEATURE #1358: finish login

Login form should look like finished part of application.
This commit is contained in:
Michal Kváček
2016-01-22 14:00:16 +01:00
parent c801c30dc9
commit dbd551152c
4 changed files with 91 additions and 16 deletions
+43 -5
View File
@@ -4,8 +4,10 @@ namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests;
use Illuminate\Http\Request;
use App\Http\Requests\LoginRequest;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
/**
* Class Login
@@ -16,6 +18,13 @@ use Illuminate\Support\Facades\Auth;
*/
class Login extends Controller
{
/**
* Display login form
*
* This method displays login form, or in case that user is logged in, redirects him to admin dashboard panel.
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\View\View
*/
public function getLoginForm()
{
if (Auth::check()) {
@@ -26,16 +35,45 @@ class Login extends Controller
}
/**
* @param Request $request
* Login handler
*
* @param LoginRequest $request
*
* @return \Illuminate\Http\RedirectResponse
*/
public function postLogin(Request $request)
public function postLogin(LoginRequest $request)
{
if (Auth::attempt($request->only('email', 'password'))) {
$email = $request->email;
// try to find user
$user = User::where('email', $email)
->where('role', '!=', User::ROLE_VISITOR)
->where('status', User::STATE_ACTIVE)
->first();
if (!$user) {
return $this->loginFailed();
}
// try to log in user
if (Hash::check($request->password, $user->password)) {
Auth::login($user);
return redirect()->route('admin.dashboard');
}
echo "neplatne prihlaseni";
// if (Auth::attempt($request->only('email', 'password'))) {
// return redirect()->route('admin.dashboard');
// }
// login invalid, redirect and inform the user
return $this->loginFailed();
}
private function loginFailed()
{
return redirect()
->route('login')
->with('error', trans('auth.failed'));
}
}
+29
View File
@@ -0,0 +1,29 @@
<?php
namespace App\Http\Requests;
class LoginRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'email' => 'required|email',
'password' => 'required'
];
}
}
+2 -1
View File
@@ -26,13 +26,14 @@ Route::group(['middleware' => ['web']], function () {
Route::get('login', 'Admin\Login@getLoginForm')->name('loginForm');
// POST methods
// handle login
Route::post('login', 'Admin\Login@postLogin')
->name('login');
});
// list of admin routes
Route::group([
'middleware' => ['auth'],
// 'middleware' => ['auth'],
'namespace' => 'Admin',
'prefix' => 'admin'
], function () {