From 4de7067487e782d1af426dec34a49cb3666c79a2 Mon Sep 17 00:00:00 2001 From: arifal Date: Fri, 17 Jan 2025 02:29:52 +0700 Subject: [PATCH] add home and handle 404 page not found --- app/Http/Controllers/Home/HomeController.php | 18 + app/Http/Controllers/RoutingController.php | 4 +- bootstrap/app.php | 10 +- composer.json | 1 + composer.lock | 68 ++- config/sanctum.php | 83 ++++ ...51_create_personal_access_tokens_table.php | 33 ++ resources/views/auth/password.blade.php | 8 +- resources/views/auth/signin.blade.php | 8 +- resources/views/home/index.blade.php | 398 ++++++++++++++++++ .../views/layouts/partials/sidebar.blade.php | 305 ++------------ .../layouts/partials/sidebar_backup.blade.php | 359 ++++++++++++++++ .../views/layouts/partials/topbar.blade.php | 7 +- resources/views/pages/404.blade.php | 6 +- routes/api.php | 8 + routes/web.php | 19 +- 16 files changed, 1046 insertions(+), 289 deletions(-) create mode 100644 app/Http/Controllers/Home/HomeController.php create mode 100644 config/sanctum.php create mode 100644 database/migrations/2025_01_16_112351_create_personal_access_tokens_table.php create mode 100644 resources/views/home/index.blade.php mode change 100755 => 100644 resources/views/layouts/partials/sidebar.blade.php create mode 100755 resources/views/layouts/partials/sidebar_backup.blade.php create mode 100644 routes/api.php diff --git a/app/Http/Controllers/Home/HomeController.php b/app/Http/Controllers/Home/HomeController.php new file mode 100644 index 0000000..9dafed3 --- /dev/null +++ b/app/Http/Controllers/Home/HomeController.php @@ -0,0 +1,18 @@ +withRouting( web: __DIR__.'/../routes/web.php', + api: __DIR__.'/../routes/api.php', commands: __DIR__.'/../routes/console.php', health: '/up', ) ->withMiddleware(function (Middleware $middleware) { - // + // $middleware->redirectGuestsTo('/auth/signin'); }) ->withExceptions(function (Exceptions $exceptions) { - // + $exceptions->render(function (HttpException $exception){ + if($exception->getStatusCode() == 404) { + return response()->view('pages.404',[],404); + } + }); })->create(); diff --git a/composer.json b/composer.json index 60681e6..71e9119 100755 --- a/composer.json +++ b/composer.json @@ -8,6 +8,7 @@ "require": { "php": "^8.2", "laravel/framework": "^11.31", + "laravel/sanctum": "^4.0", "laravel/tinker": "^2.9" }, "require-dev": { diff --git a/composer.lock b/composer.lock index c5e4c81..a76e7ea 100755 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "626b9e7ddd47fb7eff9aaa53cce0c9ad", + "content-hash": "f60f8b6e279e6de64f92f6b9fb420141", "packages": [ { "name": "brick/math", @@ -1326,6 +1326,70 @@ }, "time": "2024-11-12T14:59:47+00:00" }, + { + "name": "laravel/sanctum", + "version": "v4.0.7", + "source": { + "type": "git", + "url": "https://github.com/laravel/sanctum.git", + "reference": "698064236a46df016e64a7eb059b1414e0b281df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/698064236a46df016e64a7eb059b1414e0b281df", + "reference": "698064236a46df016e64a7eb059b1414e0b281df", + "shasum": "" + }, + "require": { + "ext-json": "*", + "illuminate/console": "^11.0", + "illuminate/contracts": "^11.0", + "illuminate/database": "^11.0", + "illuminate/support": "^11.0", + "php": "^8.2", + "symfony/console": "^7.0" + }, + "require-dev": { + "mockery/mockery": "^1.6", + "orchestra/testbench": "^9.0", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Sanctum\\SanctumServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sanctum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel Sanctum provides a featherweight authentication system for SPAs and simple APIs.", + "keywords": [ + "auth", + "laravel", + "sanctum" + ], + "support": { + "issues": "https://github.com/laravel/sanctum/issues", + "source": "https://github.com/laravel/sanctum" + }, + "time": "2024-12-11T16:40:21+00:00" + }, { "name": "laravel/serializable-closure", "version": "v2.0.0", @@ -7849,5 +7913,5 @@ "php": "^8.2" }, "platform-dev": [], - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.6.0" } diff --git a/config/sanctum.php b/config/sanctum.php new file mode 100644 index 0000000..764a82f --- /dev/null +++ b/config/sanctum.php @@ -0,0 +1,83 @@ + explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf( + '%s%s', + 'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1', + Sanctum::currentApplicationUrlWithPort() + ))), + + /* + |-------------------------------------------------------------------------- + | Sanctum Guards + |-------------------------------------------------------------------------- + | + | This array contains the authentication guards that will be checked when + | Sanctum is trying to authenticate a request. If none of these guards + | are able to authenticate the request, Sanctum will use the bearer + | token that's present on an incoming request for authentication. + | + */ + + 'guard' => ['web'], + + /* + |-------------------------------------------------------------------------- + | Expiration Minutes + |-------------------------------------------------------------------------- + | + | This value controls the number of minutes until an issued token will be + | considered expired. This will override any values set in the token's + | "expires_at" attribute, but first-party sessions are not affected. + | + */ + + 'expiration' => null, + + /* + |-------------------------------------------------------------------------- + | Token Prefix + |-------------------------------------------------------------------------- + | + | Sanctum can prefix new tokens in order to take advantage of numerous + | security scanning initiatives maintained by open source platforms + | that notify developers if they commit tokens into repositories. + | + | See: https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning + | + */ + + 'token_prefix' => env('SANCTUM_TOKEN_PREFIX', ''), + + /* + |-------------------------------------------------------------------------- + | Sanctum Middleware + |-------------------------------------------------------------------------- + | + | When authenticating your first-party SPA with Sanctum you may need to + | customize some of the middleware Sanctum uses while processing the + | request. You may change the middleware listed below as required. + | + */ + + 'middleware' => [ + 'authenticate_session' => Laravel\Sanctum\Http\Middleware\AuthenticateSession::class, + 'encrypt_cookies' => Illuminate\Cookie\Middleware\EncryptCookies::class, + 'validate_csrf_token' => Illuminate\Foundation\Http\Middleware\ValidateCsrfToken::class, + ], + +]; diff --git a/database/migrations/2025_01_16_112351_create_personal_access_tokens_table.php b/database/migrations/2025_01_16_112351_create_personal_access_tokens_table.php new file mode 100644 index 0000000..e828ad8 --- /dev/null +++ b/database/migrations/2025_01_16_112351_create_personal_access_tokens_table.php @@ -0,0 +1,33 @@ +id(); + $table->morphs('tokenable'); + $table->string('name'); + $table->string('token', 64)->unique(); + $table->text('abilities')->nullable(); + $table->timestamp('last_used_at')->nullable(); + $table->timestamp('expires_at')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('personal_access_tokens'); + } +}; diff --git a/resources/views/auth/password.blade.php b/resources/views/auth/password.blade.php index 9af27be..29c0cdc 100755 --- a/resources/views/auth/password.blade.php +++ b/resources/views/auth/password.blade.php @@ -14,11 +14,11 @@ class="authentication-bg"
@@ -26,7 +26,7 @@ class="authentication-bg"

Enter your email address and we'll send you an email with instructions to reset your password.

-
+

Back to - Sign In + Sign In

diff --git a/resources/views/auth/signin.blade.php b/resources/views/auth/signin.blade.php index 8bd39c7..d031bca 100755 --- a/resources/views/auth/signin.blade.php +++ b/resources/views/auth/signin.blade.php @@ -13,11 +13,11 @@ class="authentication-bg"
@@ -41,7 +41,7 @@ class="authentication-bg" @@ -56,7 +56,7 @@ class="authentication-bg"

Don't have an account? - Sign Up + Sign Up

diff --git a/resources/views/home/index.blade.php b/resources/views/home/index.blade.php new file mode 100644 index 0000000..267dc4d --- /dev/null +++ b/resources/views/home/index.blade.php @@ -0,0 +1,398 @@ +@extends('layouts.vertical', ['subtitle' => 'Dashboard']) + +@section('content') + +@include('layouts.partials/page-title', ['title' => 'Darkone', 'subtitle' => 'Dashboard']) + +
+ +
+
+
+
+
+

Total Income

+

$78.8k

+
+ +
+
+ +
+
+
+
+
+
+
+ + +
+
+
+
+
+

New Users

+

2,150

+
+ +
+
+ +
+
+
+
+
+
+
+ + +
+
+
+
+
+

Orders

+

1,784

+
+ +
+
+ +
+
+
+
+
+
+
+ + +
+
+
+
+
+

Conversion Rate

+

12.3%

+
+ +
+
+ +
+
+
+
+
+
+
+
+ + + +
+
+
+
+

Revenue

+
+ + + + +
+
+ +
+
+
+
+
+ +
+
+ +
+
+
+

Sales By Category

+
+ + + + +
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ Category + OrdersPerc.
Grocery187,232 + 48.63% + 2.5% Up +
Electonics126,874 + 36.08% + 8.5% Up +
Other90,127 + 23.41% + 10.98% Down +
+
+ +
+ +
+
+ +
+
+
+

Sessions by Country

+ +
+ +
+
+
+
+ + +
+
+ +
+ +
+
+
+
+

New Accounts

+ + View All + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDDateUserAccountUsername
#US52324 April, 2024 + avatar-2 + Dan Adrick + + Verified + @omions
#US65224 April, 2024 + avatar-2 + Daniel Olsen + + Verified + @alliates
#US86220 April, 2024 + avatar-2 + Jack Roldan + + Pending + @griys
#US75618 April, 2024 + avatar-2 + Betty Cox + + Verified + @reffon
#US42018 April, 2024 + avatar-2 + Carlos + Johnson + + Blocked + @bebo
+
+
+ +
+ +
+ + +
+
+
+

+ Recent Transactions +

+ + + View All + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDDateAmountStatus + Description +
#9852124 April, 2024$120.55 + Cr + Commisions
#2015824 April, 2024$9.68 + Cr + Affiliates
#3658920 April, 2024$105.22 + Dr + Grocery
#9536218 April, 2024$80.59 + Cr + Refunds
#7521418 April, 2024$750.95 + Dr + Bill Payments
+
+
+ +
+ +
+ +
+ +@endsection + +@section('scripts') +@vite(['resources/js/pages/dashboard.js']) +@endsection \ No newline at end of file diff --git a/resources/views/layouts/partials/sidebar.blade.php b/resources/views/layouts/partials/sidebar.blade.php old mode 100755 new mode 100644 index 8dbdd25..88ff551 --- a/resources/views/layouts/partials/sidebar.blade.php +++ b/resources/views/layouts/partials/sidebar.blade.php @@ -1,12 +1,12 @@
diff --git a/resources/views/layouts/partials/sidebar_backup.blade.php b/resources/views/layouts/partials/sidebar_backup.blade.php new file mode 100755 index 0000000..030cd7b --- /dev/null +++ b/resources/views/layouts/partials/sidebar_backup.blade.php @@ -0,0 +1,359 @@ +
+ + + +
+ + +
+
+ + + \ No newline at end of file diff --git a/resources/views/layouts/partials/topbar.blade.php b/resources/views/layouts/partials/topbar.blade.php index 43764db..2e8f451 100755 --- a/resources/views/layouts/partials/topbar.blade.php +++ b/resources/views/layouts/partials/topbar.blade.php @@ -172,7 +172,7 @@ class="align-middle me-2 fs-18">Help - + Lock screen @@ -180,7 +180,10 @@ - + + @csrf + + Logout diff --git a/resources/views/pages/404.blade.php b/resources/views/pages/404.blade.php index e815c36..8882e87 100755 --- a/resources/views/pages/404.blade.php +++ b/resources/views/pages/404.blade.php @@ -17,11 +17,11 @@ class="authentication-bg"
@@ -32,7 +32,7 @@ class="authentication-bg"

The page you're trying to reach seems to have gone
missing in the digital wilderness.

diff --git a/routes/api.php b/routes/api.php new file mode 100644 index 0000000..ccc387f --- /dev/null +++ b/routes/api.php @@ -0,0 +1,8 @@ +user(); +})->middleware('auth:sanctum'); diff --git a/routes/web.php b/routes/web.php index 33f4bad..84864e2 100755 --- a/routes/web.php +++ b/routes/web.php @@ -1,13 +1,20 @@ '/', 'middleware' => 'auth'], function () { - Route::get('', [RoutingController::class, 'index'])->name('root'); - Route::get('{first}/{second}/{third}', [RoutingController::class, 'thirdLevel'])->name('third'); - Route::get('{first}/{second}', [RoutingController::class, 'secondLevel'])->name('second'); - Route::get('{any}', [RoutingController::class, 'root'])->name('any'); -}); +// Route::group(['prefix' => '/', 'middleware' => 'auth'], function () { +// // Route::get('', [RoutingController::class, 'index'])->name('root'); +// Route::get('{first}/{second}/{third}', [RoutingController::class, 'thirdLevel'])->name('third'); +// Route::get('{first}/{second}', [RoutingController::class, 'secondLevel'])->name('second'); +// // Route::get('{any}', [RoutingController::class, 'root'])->name('any'); +// }); + +// auth +Route::group(['middleware' => 'auth'], function(){ + Route::get('', [HomeController::class, 'index'])->name('home'); +}); \ No newline at end of file