9 changed files with 421 additions and 0 deletions
-
28app/Http/Controllers/HomeController.php
-
73resources/views/auth/login.blade.php
-
47resources/views/auth/passwords/email.blade.php
-
65resources/views/auth/passwords/reset.blade.php
-
77resources/views/auth/register.blade.php
-
24resources/views/auth/verify.blade.php
-
23resources/views/home.blade.php
-
80resources/views/layouts/app.blade.php
-
4routes/web.php
@ -0,0 +1,28 @@ |
|||
<?php |
|||
|
|||
namespace App\Http\Controllers; |
|||
|
|||
use Illuminate\Http\Request; |
|||
|
|||
class HomeController extends Controller |
|||
{ |
|||
/** |
|||
* Create a new controller instance. |
|||
* |
|||
* @return void |
|||
*/ |
|||
public function __construct() |
|||
{ |
|||
$this->middleware('auth'); |
|||
} |
|||
|
|||
/** |
|||
* Show the application dashboard. |
|||
* |
|||
* @return \Illuminate\Http\Response |
|||
*/ |
|||
public function index() |
|||
{ |
|||
return view('home'); |
|||
} |
|||
} |
|||
@ -0,0 +1,73 @@ |
|||
@extends('layouts.app') |
|||
|
|||
@section('content') |
|||
<div class="container"> |
|||
<div class="row justify-content-center"> |
|||
<div class="col-md-8"> |
|||
<div class="card"> |
|||
<div class="card-header">{{ __('Login') }}</div> |
|||
|
|||
<div class="card-body"> |
|||
<form method="POST" action="{{ route('login') }}"> |
|||
@csrf |
|||
|
|||
<div class="form-group row"> |
|||
<label for="email" class="col-sm-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label> |
|||
|
|||
<div class="col-md-6"> |
|||
<input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required autofocus> |
|||
|
|||
@if ($errors->has('email')) |
|||
<span class="invalid-feedback" role="alert"> |
|||
<strong>{{ $errors->first('email') }}</strong> |
|||
</span> |
|||
@endif |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="form-group row"> |
|||
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label> |
|||
|
|||
<div class="col-md-6"> |
|||
<input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" required> |
|||
|
|||
@if ($errors->has('password')) |
|||
<span class="invalid-feedback" role="alert"> |
|||
<strong>{{ $errors->first('password') }}</strong> |
|||
</span> |
|||
@endif |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="form-group row"> |
|||
<div class="col-md-6 offset-md-4"> |
|||
<div class="form-check"> |
|||
<input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}> |
|||
|
|||
<label class="form-check-label" for="remember"> |
|||
{{ __('Remember Me') }} |
|||
</label> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="form-group row mb-0"> |
|||
<div class="col-md-8 offset-md-4"> |
|||
<button type="submit" class="btn btn-primary"> |
|||
{{ __('Login') }} |
|||
</button> |
|||
|
|||
@if (Route::has('password.request')) |
|||
<a class="btn btn-link" href="{{ route('password.request') }}"> |
|||
{{ __('Forgot Your Password?') }} |
|||
</a> |
|||
@endif |
|||
</div> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
@endsection |
|||
@ -0,0 +1,47 @@ |
|||
@extends('layouts.app') |
|||
|
|||
@section('content') |
|||
<div class="container"> |
|||
<div class="row justify-content-center"> |
|||
<div class="col-md-8"> |
|||
<div class="card"> |
|||
<div class="card-header">{{ __('Reset Password') }}</div> |
|||
|
|||
<div class="card-body"> |
|||
@if (session('status')) |
|||
<div class="alert alert-success" role="alert"> |
|||
{{ session('status') }} |
|||
</div> |
|||
@endif |
|||
|
|||
<form method="POST" action="{{ route('password.email') }}"> |
|||
@csrf |
|||
|
|||
<div class="form-group row"> |
|||
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label> |
|||
|
|||
<div class="col-md-6"> |
|||
<input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required> |
|||
|
|||
@if ($errors->has('email')) |
|||
<span class="invalid-feedback" role="alert"> |
|||
<strong>{{ $errors->first('email') }}</strong> |
|||
</span> |
|||
@endif |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="form-group row mb-0"> |
|||
<div class="col-md-6 offset-md-4"> |
|||
<button type="submit" class="btn btn-primary"> |
|||
{{ __('Send Password Reset Link') }} |
|||
</button> |
|||
</div> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
@endsection |
|||
@ -0,0 +1,65 @@ |
|||
@extends('layouts.app') |
|||
|
|||
@section('content') |
|||
<div class="container"> |
|||
<div class="row justify-content-center"> |
|||
<div class="col-md-8"> |
|||
<div class="card"> |
|||
<div class="card-header">{{ __('Reset Password') }}</div> |
|||
|
|||
<div class="card-body"> |
|||
<form method="POST" action="{{ route('password.update') }}"> |
|||
@csrf |
|||
|
|||
<input type="hidden" name="token" value="{{ $token }}"> |
|||
|
|||
<div class="form-group row"> |
|||
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label> |
|||
|
|||
<div class="col-md-6"> |
|||
<input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ $email ?? old('email') }}" required autofocus> |
|||
|
|||
@if ($errors->has('email')) |
|||
<span class="invalid-feedback" role="alert"> |
|||
<strong>{{ $errors->first('email') }}</strong> |
|||
</span> |
|||
@endif |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="form-group row"> |
|||
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label> |
|||
|
|||
<div class="col-md-6"> |
|||
<input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" required> |
|||
|
|||
@if ($errors->has('password')) |
|||
<span class="invalid-feedback" role="alert"> |
|||
<strong>{{ $errors->first('password') }}</strong> |
|||
</span> |
|||
@endif |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="form-group row"> |
|||
<label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label> |
|||
|
|||
<div class="col-md-6"> |
|||
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="form-group row mb-0"> |
|||
<div class="col-md-6 offset-md-4"> |
|||
<button type="submit" class="btn btn-primary"> |
|||
{{ __('Reset Password') }} |
|||
</button> |
|||
</div> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
@endsection |
|||
@ -0,0 +1,77 @@ |
|||
@extends('layouts.app') |
|||
|
|||
@section('content') |
|||
<div class="container"> |
|||
<div class="row justify-content-center"> |
|||
<div class="col-md-8"> |
|||
<div class="card"> |
|||
<div class="card-header">{{ __('Register') }}</div> |
|||
|
|||
<div class="card-body"> |
|||
<form method="POST" action="{{ route('register') }}"> |
|||
@csrf |
|||
|
|||
<div class="form-group row"> |
|||
<label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Name') }}</label> |
|||
|
|||
<div class="col-md-6"> |
|||
<input id="name" type="text" class="form-control{{ $errors->has('name') ? ' is-invalid' : '' }}" name="name" value="{{ old('name') }}" required autofocus> |
|||
|
|||
@if ($errors->has('name')) |
|||
<span class="invalid-feedback" role="alert"> |
|||
<strong>{{ $errors->first('name') }}</strong> |
|||
</span> |
|||
@endif |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="form-group row"> |
|||
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label> |
|||
|
|||
<div class="col-md-6"> |
|||
<input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required> |
|||
|
|||
@if ($errors->has('email')) |
|||
<span class="invalid-feedback" role="alert"> |
|||
<strong>{{ $errors->first('email') }}</strong> |
|||
</span> |
|||
@endif |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="form-group row"> |
|||
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label> |
|||
|
|||
<div class="col-md-6"> |
|||
<input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" required> |
|||
|
|||
@if ($errors->has('password')) |
|||
<span class="invalid-feedback" role="alert"> |
|||
<strong>{{ $errors->first('password') }}</strong> |
|||
</span> |
|||
@endif |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="form-group row"> |
|||
<label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label> |
|||
|
|||
<div class="col-md-6"> |
|||
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="form-group row mb-0"> |
|||
<div class="col-md-6 offset-md-4"> |
|||
<button type="submit" class="btn btn-primary"> |
|||
{{ __('Register') }} |
|||
</button> |
|||
</div> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
@endsection |
|||
@ -0,0 +1,24 @@ |
|||
@extends('layouts.app') |
|||
|
|||
@section('content') |
|||
<div class="container"> |
|||
<div class="row justify-content-center"> |
|||
<div class="col-md-8"> |
|||
<div class="card"> |
|||
<div class="card-header">{{ __('Verify Your Email Address') }}</div> |
|||
|
|||
<div class="card-body"> |
|||
@if (session('resent')) |
|||
<div class="alert alert-success" role="alert"> |
|||
{{ __('A fresh verification link has been sent to your email address.') }} |
|||
</div> |
|||
@endif |
|||
|
|||
{{ __('Before proceeding, please check your email for a verification link.') }} |
|||
{{ __('If you did not receive the email') }}, <a href="{{ route('verification.resend') }}">{{ __('click here to request another') }}</a>. |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
@endsection |
|||
@ -0,0 +1,23 @@ |
|||
@extends('layouts.app') |
|||
|
|||
@section('content') |
|||
<div class="container"> |
|||
<div class="row justify-content-center"> |
|||
<div class="col-md-8"> |
|||
<div class="card"> |
|||
<div class="card-header">Dashboard</div> |
|||
|
|||
<div class="card-body"> |
|||
@if (session('status')) |
|||
<div class="alert alert-success" role="alert"> |
|||
{{ session('status') }} |
|||
</div> |
|||
@endif |
|||
|
|||
You are logged in! |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
@endsection |
|||
@ -0,0 +1,80 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|||
|
|||
<!-- CSRF Token --> |
|||
<meta name="csrf-token" content="{{ csrf_token() }}"> |
|||
|
|||
<title>{{ config('app.name', 'Laravel') }}</title> |
|||
|
|||
<!-- Scripts --> |
|||
<script src="{{ asset('js/app.js') }}" defer></script> |
|||
|
|||
<!-- Fonts --> |
|||
<link rel="dns-prefetch" href="//fonts.gstatic.com"> |
|||
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet" type="text/css"> |
|||
|
|||
<!-- Styles --> |
|||
<link href="{{ asset('css/app.css') }}" rel="stylesheet"> |
|||
</head> |
|||
<body> |
|||
<div id="app"> |
|||
<nav class="navbar navbar-expand-md navbar-light navbar-laravel"> |
|||
<div class="container"> |
|||
<a class="navbar-brand" href="{{ url('/') }}"> |
|||
{{ config('app.name', 'Laravel') }} |
|||
</a> |
|||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}"> |
|||
<span class="navbar-toggler-icon"></span> |
|||
</button> |
|||
|
|||
<div class="collapse navbar-collapse" id="navbarSupportedContent"> |
|||
<!-- Left Side Of Navbar --> |
|||
<ul class="navbar-nav mr-auto"> |
|||
|
|||
</ul> |
|||
|
|||
<!-- Right Side Of Navbar --> |
|||
<ul class="navbar-nav ml-auto"> |
|||
<!-- Authentication Links --> |
|||
@guest |
|||
<li class="nav-item"> |
|||
<a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a> |
|||
</li> |
|||
<li class="nav-item"> |
|||
@if (Route::has('register')) |
|||
<a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a> |
|||
@endif |
|||
</li> |
|||
@else |
|||
<li class="nav-item dropdown"> |
|||
<a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre> |
|||
{{ Auth::user()->name }} <span class="caret"></span> |
|||
</a> |
|||
|
|||
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown"> |
|||
<a class="dropdown-item" href="{{ route('logout') }}" |
|||
onclick="event.preventDefault();
|
|||
document.getElementById('logout-form').submit();">
|
|||
{{ __('Logout') }} |
|||
</a> |
|||
|
|||
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;"> |
|||
@csrf |
|||
</form> |
|||
</div> |
|||
</li> |
|||
@endguest |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</nav> |
|||
|
|||
<main class="py-4"> |
|||
@yield('content') |
|||
</main> |
|||
</div> |
|||
</body> |
|||
</html> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue