Compare commits

...

11 Commits

23 changed files with 740 additions and 77 deletions

42
app/Admin.php Normal file
View File

@ -0,0 +1,42 @@
<?php
/**
* Created by Reliese Model.
* Date: Sun, 29 Jul 2018 08:54:26 +0000.
*/
namespace App;
use Illuminate\Database\Eloquent\Model as Eloquent;
/**
* Class Admin
*
* @property string $ID
* @property string $password
* @property string $name
* @property string $nick_name
* @property string $phone_number
* @property \Carbon\Carbon $created_at
* @property \Carbon\Carbon $updated_at
*
* @package App
*/
class Admin extends Eloquent
{
protected $connection = 'mysql';
protected $table = 'admin';
protected $primaryKey = 'ID';
public $incrementing = false;
protected $hidden = [
'password'
];
protected $fillable = [
'password',
'name',
'nick_name',
'phone_number'
];
}

View File

@ -0,0 +1,10 @@
<?php
namespace App\Exceptions;
use Exception;
class UserNotFoundException extends Exception
{
//
}

View File

@ -0,0 +1,14 @@
<?php
namespace App\Http\Controllers\CaseBuilder;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class CaseBuilderController extends Controller
{
public function index(Request $request)
{
return view('casebuilder.index');
}
}

View File

@ -0,0 +1,29 @@
<?php
namespace App\Http\Controllers\Home;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
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.index');
}
}

View File

@ -1,13 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
public function index()
{
return view('home.index');
}
}

View File

@ -0,0 +1,79 @@
<?php
namespace App\Http\Controllers\Receiver;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Validator;
use App\Receiver;
class ReceiverController extends Controller
{
public function index(Request $request)
{
return view('receiver.index');
}
public function manager(Request $request)
{
// code...
}
public function about(Request $request)
{
// code...
}
// *************************************************************************
public function loginProcess()
{
$input = request()->all();
//輸入資料驗證
$rules = [
'email'=>[
'required',
'email',
],
'password'=>[
'required',
'min:6'
],
];
$validate = Validator::make($input,$rules);
if($validate->fails()){
return redirect('/receiver/login')
->withErrors($validate)->withInput();
}
//驗證通過,巷資料庫查詢使用者是否存在
$User = Receiver::where('email',$input['email'])->firstOrFail();
$isPasswordCorrect = $input['password'] == $User->password;
if(!$isPasswordCorrect){
//failed -> 導向至登入畫面(附帶錯誤訊息)
$error_msg = [
'msg'=>['密碼錯誤']
];
return redirect('/receiver/login')->withErrors($error_msg)
->withInput();
}
//Pass->紀錄session
/* $record = [
'user_id'=>$User->RID,
'role_id'=>'Receiver'
]; */
//session()->put($record);
// $binds = [
// 'name'=>$User->nickname
// ];
// $name = $User->nickname;
session()->put('user_id',$User->RID);
return redirect('/');
}
public function logout()
{
session()->forget('user_id');
return redirect('/');
}
}

View File

@ -3,6 +3,7 @@
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
class AppServiceProvider extends ServiceProvider
{
@ -13,7 +14,7 @@ class AppServiceProvider extends ServiceProvider
*/
public function boot()
{
//
Schema::defaultStringLength(191);
}
/**

View File

@ -0,0 +1,36 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateAdminTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('Admin', function (Blueprint $table) {
$table->string('ID');
$table->string('password');
$table->string('name');
$table->string('nick_name');
$table->string('phone_number');
$table->primary('ID');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('admin');
}
}

View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddRememberTokenForReceiver extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('Receiver', function (Blueprint $table) {
$table->rememberToken();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('Receiver', function (Blueprint $table) {
$table->dropRememberToken();
});
}
}

View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddRememberTokenForCasebuilder extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('CaseBuilder', function (Blueprint $table) {
$table->rememberToken();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('CaseBuilder', function (Blueprint $table) {
$table->dropRememberToken();
});
}
}

View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddRememberTokenForAdmin extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('Admin', function (Blueprint $table) {
$table->rememberToken();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('Admin', function (Blueprint $table) {
$table->dropRememberToken();
});
}
}

View File

@ -11,6 +11,6 @@ class DatabaseSeeder extends Seeder
*/
public function run()
{
// $this->call(UsersTableSeeder::class);
}
}

View File

@ -0,0 +1,71 @@
@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') }}" aria-label="{{ __('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>
<a class="btn btn-link" href="{{ route('password.request') }}">
{{ __('Forgot Your Password?') }}
</a>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@ -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') }}" aria-label="{{ __('Reset Password') }}">
@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

View File

@ -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.request') }}" aria-label="{{ __('Reset Password') }}">
@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

View File

@ -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') }}" aria-label="{{ __('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

View File

@ -0,0 +1,25 @@
@extends('layouts.app')
@section('title','KOL管理')
@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

View File

@ -1,6 +1,8 @@
@extends('layout.app')
@extends('layouts.app')
@section('title', config('app.name', 'Laravel'))
@section('content')
<button class="btn btn-primary">我想成為KOL</button>
<button class="btn btn-primary">我想成為品牌/代理商</button>
@endsection
@endsection

View File

@ -1,38 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>部落客媒合系統</title>
<link rel="stylesheet" href="/css/app.css">
</head>
<body>
<div class="container">
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">部落客媒合系統</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">
<ul class="navbar-nav ml-auto">
<li class="nav-item active">
<a class="nav-link" href="#">KOL登入<span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">品牌/代理商登入</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">後台登入</a>
</li>
</ul>
</div>
</nav>
<div class="mt-3">
@yield('content')
</div>
</div>
<script src="/js/app.js"></script>
</body>
</html>

View File

@ -0,0 +1,53 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>@yield('title')</title>
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}" defer></script>
<!-- Fonts -->
<link rel="dns-prefetch" href="https://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', 'BlogMatch') }}
</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">
@include('layouts.partials.auth-navbar-item')
</ul>
</div>
</div>
</nav>
<main class="py-4">
@yield('content')
</main>
</div>
</body>
</html>

View File

@ -0,0 +1,36 @@
<!-- Authentication Links -->
@guest
<li class="nav-item">
<a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/receiver/login">KOL登入<span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">品牌/代理商登入</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">後台登入</a>
</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

View File

@ -0,0 +1,25 @@
@extends('layouts.app')
@section('title','KOL管理')
@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

View File

@ -11,32 +11,38 @@
|
*/
/* Route::get('/', function () {
return view('welcome');
}); */
// Route::get('/', function () {
// return view('welcome');
// });
//首頁url
Route::get('/', 'HomeController@index');
// 首頁url
Route::get('/', 'HomeController@index')->name('home');
// //管理者相關url
// 登入相關的
Auth::routes();
// 接案者相關url
Route::group(['prefix' => 'receiver'], function () {
Route::get('/', 'Receiver\ReceiverController@index');
// Route::get('/login', 'Receiver\ReceiverController@loginPage');
// Route::post('/login', 'Receiver\ReceiverController@loginProcess');
// Route::get('/logout','Receiver\ReceiverController@logout');
// Route::get('/register', '');
// Route::post('/register', '');
});
//發案者相關url
Route::group(['prefix' => 'casebuilder'], function () {
Route::get('/', 'CaseBuilder\CaseBuilderController@index');
// Route::get('/login', '');
// Route::post('/login', '');
// Route::get('/register', '');
// Route::post('/register', '');
});
// 管理者相關url
// Route::group(['prefix' => 'admin'], function () {
// Route::get('/login', '');
// Route::post('/login', '');
// Route::get('/dashbord', '');
// });
//
// //接案者相關url
// Route::group(['prefix' => 'receiver'], function () {
// Route::get('/login', '');
// Route::post('/login', '');
// Route::get('/register', '');
// Route::post('/register', '');
// });
//
// //發案者相關url
// Route::group(['prefix' => 'casebuilder'], function () {
// Route::get('/login', '');
// Route::post('/login', '');
// Route::get('/register', '');
// Route::post('/register', '');
// });