diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index b2ea669..920a4be 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -18,7 +18,9 @@ class LoginController extends Controller | */ - use AuthenticatesUsers; + use AuthenticatesUsers{ + showLoginForm as traitShowLoginForm; + } /** * Where to redirect users after login. @@ -36,4 +38,47 @@ class LoginController extends Controller { $this->middleware('guest')->except('logout'); } + + /** + * Show the application's login form. + * + * @return \Illuminate\Http\Response + */ + public function showLoginForm() + { + // return view('auth.login'); + // return $this->traitShowLoginForm(); + return view('auth.login'); + } + + /** + * 顯示接案者的登入表單 + * + * @return \Illuminate\Http\Response + */ + public function showReceiverLoginForm() + { + return $this->showLoginForm(); + } + + /** + * 顯示發案者的登入表單 + * + * @return \Illuminate\Http\Response + */ + public function showCaseBuilderLoginForm() + { + return $this->showLoginForm(); + } + + /** + * 顯示網站管理者的登入表單 + * + * @return \Illuminate\Http\Response + */ + public function showAdminLoginForm() + { + return $this->showLoginForm(); + } + } diff --git a/config/auth.php b/config/auth.php index 7817501..1e1c38c 100644 --- a/config/auth.php +++ b/config/auth.php @@ -14,8 +14,8 @@ return [ */ 'defaults' => [ - 'guard' => 'web', - 'passwords' => 'users', + 'guard' => 'receivers-web', + 'passwords' => 'receivers', ], /* @@ -36,15 +36,42 @@ return [ */ 'guards' => [ - 'web' => [ + // 'web' => [ + // 'driver' => 'session', + // 'provider' => 'users', + // ], + // 'api' => [ + // 'driver' => 'token', + // 'provider' => 'users', + // ], + + 'receivers-web' => [ 'driver' => 'session', - 'provider' => 'users', + 'provider' => 'receivers', + ], + 'receivers-api' => [ + 'driver' => 'token', + 'provider' => 'receivers', ], - 'api' => [ - 'driver' => 'token', - 'provider' => 'users', + 'caseBuilders-web' => [ + 'driver' => 'session', + 'provider' => 'caseBuilders', ], + 'caseBuilders-api' => [ + 'driver' => 'token', + 'provider' => 'caseBuilders', + ], + + 'admins-web' => [ + 'driver' => 'session', + 'provider' => 'admins', + ], + // 'admins-api' => [ + // 'driver' => 'token', + // 'provider' => 'admins', + // ], + ], /* @@ -65,9 +92,21 @@ return [ */ 'providers' => [ - 'users' => [ + // 'users' => [ + // 'driver' => 'eloquent', + // 'model' => App\User::class, + // ], + 'receivers' => [ 'driver' => 'eloquent', - 'model' => App\User::class, + 'model' => App\Receiver::class, + ], + 'caseBuilders' => [ + 'driver' => 'eloquent', + 'model' => App\CaseBuilder::class, + ], + 'admins' => [ + 'driver' => 'eloquent', + 'model' => App\Admin::class, ], // 'users' => [ @@ -92,11 +131,21 @@ return [ */ 'passwords' => [ - 'users' => [ - 'provider' => 'users', - 'table' => 'password_resets', + // 'users' => [ + // 'provider' => 'users', + // 'table' => 'password_resets', + // 'expire' => 60, + // ], + 'receivers' => [ + 'provider' => 'receivers', + 'table' => 'password_resets_for_receiver', 'expire' => 60, ], + 'caseBuilders' => [ + 'provider' => 'caseBuilders', + 'table' => 'password_resets_for_casebuilder', + 'expire' => 60, + ] ], ]; diff --git a/database/migrations/2018_08_14_201742_modifiy_password_resets_for_receiver_column.php b/database/migrations/2018_08_14_201742_modifiy_password_resets_for_receiver_column.php new file mode 100644 index 0000000..4c8fc8e --- /dev/null +++ b/database/migrations/2018_08_14_201742_modifiy_password_resets_for_receiver_column.php @@ -0,0 +1,38 @@ +unique('email'); + }); + Schema::table('password_resets_for_receiver', function (Blueprint $table) { + $table->foreign('email', 'fk_password_resets_for_receiver_1')->references('email')->on('Receiver')->onUpdate('NO ACTION')->onDelete('CASCADE'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('password_resets_for_receiver', function (Blueprint $table) { + $table->dropForeign('fk_password_resets_for_receiver_1'); + }); + Schema::table('Receiver', function (Blueprint $table) { + $table->dropUnique('email'); + }); + } +} diff --git a/database/migrations/2018_08_14_201920_modifiy_password_resets_for_casebuilder_column.php b/database/migrations/2018_08_14_201920_modifiy_password_resets_for_casebuilder_column.php new file mode 100644 index 0000000..f5f6f68 --- /dev/null +++ b/database/migrations/2018_08_14_201920_modifiy_password_resets_for_casebuilder_column.php @@ -0,0 +1,38 @@ +unique('contactEmail'); + }); + Schema::table('password_resets_for_casebuilder', function (Blueprint $table) { + $table->foreign('email', 'fk_password_resets_for_casebuilder_1')->references('contactEmail')->on('CaseBuilder')->onUpdate('NO ACTION')->onDelete('CASCADE'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('password_resets_for_casebuilder', function (Blueprint $table) { + $table->dropForeign('fk_password_resets_for_casebuilder_1'); + }); + Schema::table('CaseBuilder', function (Blueprint $table) { + $table->dropUnique('contactEmail'); + }); + } +} diff --git a/database/migrations/2018_08_14_205016_drop_password_resets_for_admin_table.php b/database/migrations/2018_08_14_205016_drop_password_resets_for_admin_table.php new file mode 100644 index 0000000..04a96fa --- /dev/null +++ b/database/migrations/2018_08_14_205016_drop_password_resets_for_admin_table.php @@ -0,0 +1,32 @@ +string('email')->index(); + $table->string('token'); + $table->timestamp('created_at')->nullable(); + }); + } +} diff --git a/routes/web.php b/routes/web.php index e1c26c5..e8a954f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -21,6 +21,10 @@ Route::get('/', 'Home\HomeController@index')->name('home'); // 登入相關的 // Authentication Routes... Route::get('login', 'Auth\LoginController@showLoginForm')->name('login'); +Route::get('/receiver/login', 'Auth\LoginController@showReceiverLoginForm')->name('receiver.login'); +Route::get('/casebuilder/login', 'Auth\LoginController@showCaseBuilderLoginForm')->name('casebuilder.login'); +Route::get('/admin/login', 'Auth\LoginController@showAdminLoginForm')->name('admin.login'); + Route::post('login', 'Auth\LoginController@login'); Route::post('logout', 'Auth\LoginController@logout')->name('logout'); @@ -54,8 +58,6 @@ Route::group(['prefix' => 'casebuilder'], function () { }); // 管理者相關url -// Route::group(['prefix' => 'admin'], function () { -// Route::get('/login', ''); -// Route::post('/login', ''); -// Route::get('/dashbord', ''); -// }); +Route::group(['prefix' => 'admin'], function () { + // Route::get('/dashbord', ''); +});