diff --git a/.env.example b/.env.example
deleted file mode 100644
index 33237d6..0000000
--- a/.env.example
+++ /dev/null
@@ -1,59 +0,0 @@
-APP_NAME=Laravel
-APP_ENV=local
-APP_KEY=
-APP_DEBUG=true
-APP_URL=http://localhost
-
-LOG_CHANNEL=stack
-LOG_DEPRECATIONS_CHANNEL=null
-LOG_LEVEL=debug
-
-DB_CONNECTION=mysql
-DB_HOST=127.0.0.1
-DB_PORT=3306
-DB_DATABASE=ecommerce
-DB_USERNAME=root
-DB_PASSWORD=
-
-BROADCAST_DRIVER=log
-CACHE_DRIVER=file
-FILESYSTEM_DISK=local
-QUEUE_CONNECTION=sync
-SESSION_DRIVER=file
-SESSION_LIFETIME=120
-
-MEMCACHED_HOST=127.0.0.1
-
-REDIS_HOST=127.0.0.1
-REDIS_PASSWORD=null
-REDIS_PORT=6379
-
-MAIL_MAILER=smtp
-MAIL_HOST=mailpit
-MAIL_PORT=1025
-MAIL_USERNAME=null
-MAIL_PASSWORD=null
-MAIL_ENCRYPTION=null
-MAIL_FROM_ADDRESS="hello@example.com"
-MAIL_FROM_NAME="${APP_NAME}"
-
-AWS_ACCESS_KEY_ID=
-AWS_SECRET_ACCESS_KEY=
-AWS_DEFAULT_REGION=us-east-1
-AWS_BUCKET=
-AWS_USE_PATH_STYLE_ENDPOINT=false
-
-PUSHER_APP_ID=
-PUSHER_APP_KEY=
-PUSHER_APP_SECRET=
-PUSHER_HOST=
-PUSHER_PORT=443
-PUSHER_SCHEME=https
-PUSHER_APP_CLUSTER=mt1
-
-VITE_APP_NAME="${APP_NAME}"
-VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
-VITE_PUSHER_HOST="${PUSHER_HOST}"
-VITE_PUSHER_PORT="${PUSHER_PORT}"
-VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
-VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
diff --git a/README.md b/README.md
index aa7d868..d5e1e2b 100644
--- a/README.md
+++ b/README.md
@@ -6,16 +6,27 @@
### Fonctionnalités principales
- Gestion des rôles (admin, gestionnaire, client).
- Redirection basée sur les rôles.
-- Vérification des emails pour les nouveaux utilisateurs.
+- Vérification des emails pour les clients.
- Gestion de la récupération de mot de passe.
- Middleware pour restreindre l'accès en fonction des rôles.
+- gestion des erreurs de pages ( 404 & 403)
### Instructions pour tester
1. Clonez le dépôt : `git clone https://github.com/GoldenDev74/commerce.git`.
2. Installez les dépendances : `composer install`. & `npm install`
4. Configurez l'environnement : `.env`.
-5. Ajoute la méthode suivante dans le fichier AppServiceProvider.php dans le répertoire app/Providers :
+ ```
+ MAIL_MAILER=smtp
+ MAIL_HOST=smtp.gmail.com
+ MAIL_PORT=587
+ MAIL_USERNAME=redmoondevs2024@gmail.com
+ MAIL_PASSWORD=nmhvmabbfaeedmxw
+ MAIL_ENCRYPTION=tls
+ MAIL_FROM_ADDRESS=redmoondevs2024@gmail.com
+ MAIL_FROM_NAME=SkydashEcommerce
+ ```
+6. Ajoute la méthode suivante dans le fichier AppServiceProvider.php dans le répertoire app/Providers :
```
public function boot()
{
@@ -36,28 +47,9 @@
## Appendix
-pour tester les mails on a utiliser mailtrap. Pour ce faire, ajouter un nouveau compte google à vos compte avec les identifiant suivantes:
+pour tester les mails on a utiliser smtp de gmail. Pour ce faire, ajouter un nouveau compte google à vos compte avec les identifiant suivantes:
- email : redmoondevs2024@gmail.com
- mot de passe : redmoon102024
-arrivé sur mailtrap
-
-
-
-
-
-
-
-
-
-assurer de copier ses configuration suivantes :
-
-
-
-dans vôtres fichier .env comme suit :
-
-
-
-si tout est bien configurer vous deviez reçevoir les mails de vérification pour l'inscription, les mots de passes oublier.
## Contributing
Voici les collaborateurs intervenues !
@@ -66,7 +58,6 @@ Voici les collaborateurs intervenues !
- Steventog
- Antoine 253
-
## ScreenShoot

@@ -83,6 +74,10 @@ Voici les collaborateurs intervenues !

-
+
+
+
+
+
diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php
index 56af264..f6b6f58 100644
--- a/app/Exceptions/Handler.php
+++ b/app/Exceptions/Handler.php
@@ -4,6 +4,7 @@
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable;
+use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
class Handler extends ExceptionHandler
{
@@ -27,4 +28,13 @@ public function register(): void
//
});
}
+
+ public function render($request, Throwable $exception)
+ {
+ if ($exception instanceof NotFoundHttpException) {
+ return response()->view('errors.404', [], 404);
+ }
+
+ return parent::render($request, $exception);
+ }
}
diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php
index 6d39e23..cef63b9 100644
--- a/app/Http/Controllers/AdminController.php
+++ b/app/Http/Controllers/AdminController.php
@@ -6,7 +6,7 @@
class AdminController extends Controller
{
- public function dashboard()
+ public function index()
{
return view('admin.dashboard');
}
diff --git a/app/Http/Controllers/Auth/AuthenticatedSessionController.php b/app/Http/Controllers/Auth/AuthenticatedSessionController.php
index fb2ae90..bae9353 100644
--- a/app/Http/Controllers/Auth/AuthenticatedSessionController.php
+++ b/app/Http/Controllers/Auth/AuthenticatedSessionController.php
@@ -32,7 +32,6 @@ public function store(LoginRequest $request): RedirectResponse
// Récupérer l'utilisateur connecté
$user = $request->user();
- // Redirection basée sur le rôle
if ($user->isAdmin()) {
return redirect()->route('admin.dashboard');
}
@@ -41,13 +40,11 @@ public function store(LoginRequest $request): RedirectResponse
return redirect()->route('manager.dashboard');
}
- // Pour les clients
if ($user->isClient()) {
- // Vérifier si l'email est vérifié
if (!$user->hasVerifiedEmail()) {
return redirect()->route('verification.notice');
}
- return redirect()->route('client.index');
+ return redirect()->route('client.dashboard');
}
return redirect('/');
diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php
index ddbfbe3..85f32fa 100644
--- a/app/Http/Controllers/ClientController.php
+++ b/app/Http/Controllers/ClientController.php
@@ -8,6 +8,6 @@ class ClientController extends Controller
{
public function index()
{
- return view('client.index');
+ return view('client.dashboard');
}
}
diff --git a/app/Http/Controllers/ManagerController.php b/app/Http/Controllers/ManagerController.php
index 39822d8..d21633b 100644
--- a/app/Http/Controllers/ManagerController.php
+++ b/app/Http/Controllers/ManagerController.php
@@ -6,8 +6,9 @@
class ManagerController extends Controller
{
- public function dashboard()
+ public function index()
{
- return view('manager.dashboard');
+ // Logique pour afficher la vue du tableau de bord du gestionnaire
+ return view('manager.dashboard'); // Assurez-vous que cette vue existe
}
}
diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php
index 12ba01f..17b9db1 100644
--- a/app/Http/Kernel.php
+++ b/app/Http/Kernel.php
@@ -41,7 +41,7 @@ class Kernel extends HttpKernel
'api' => [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
- \Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
+ \Illuminate\Routing\Middleware\ThrottleRequests::class . ':api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
@@ -78,5 +78,6 @@ class Kernel extends HttpKernel
'admin' => \App\Http\Middleware\AdminMiddleware::class,
'manager' => \App\Http\Middleware\ManagerMiddleware::class,
+ 'role' => \App\Http\Middleware\RoleMiddleware::class,
];
}
diff --git a/app/Http/Middleware/RoleMiddleware.php b/app/Http/Middleware/RoleMiddleware.php
new file mode 100644
index 0000000..a17ef87
--- /dev/null
+++ b/app/Http/Middleware/RoleMiddleware.php
@@ -0,0 +1,33 @@
+role !== $role) {
+ return response()->view('errors.403', [], 403); // Affiche une page d'erreur 403 si l'utilisateur n'a pas accès
+ }
+
+ return $next($request);
+ }
+}
diff --git a/app/Models/User.php b/app/Models/User.php
index 7fa1b44..e7f6e7f 100644
--- a/app/Models/User.php
+++ b/app/Models/User.php
@@ -46,19 +46,18 @@ class User extends Authenticatable implements MustVerifyEmail
'password' => 'hashed',
];
- public function isAdmin():bool
+ public function isAdmin(): bool
{
return $this->role === 'admin';
}
- public function isManager():bool
+ public function isManager(): bool
{
- return $this->role === 'gestionnaire';
+ return $this->role === 'manager';
}
- public function isClient():bool
+ public function isClient(): bool
{
return $this->role === 'client';
}
-
}
diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php
index 025e874..785082a 100644
--- a/app/Providers/RouteServiceProvider.php
+++ b/app/Providers/RouteServiceProvider.php
@@ -17,7 +17,7 @@ class RouteServiceProvider extends ServiceProvider
*
* @var string
*/
- public const HOME = '/dashboard';
+ public const HOME = '/client/dashboard';
/**
* Define your route model bindings, pattern filters, and other route configuration.
diff --git a/app/View/Components/AdminAppLayout.php b/app/View/Components/AdminAppLayout.php
new file mode 100644
index 0000000..2d2c75a
--- /dev/null
+++ b/app/View/Components/AdminAppLayout.php
@@ -0,0 +1,13 @@
+string('phone')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
- $table->enum('role', ['admin', 'gestionnaire', 'client','livreur'])->default('client');
+ $table->enum('role', ['admin', 'manager', 'client','livreur'])->default('client');
$table->rememberToken();
$table->timestamps();
});
diff --git a/database/seeders/UserSeeder.php b/database/seeders/UserSeeder.php
index 631b631..0121860 100644
--- a/database/seeders/UserSeeder.php
+++ b/database/seeders/UserSeeder.php
@@ -32,7 +32,7 @@ public function run()
'address' => 'Avepozo',
'phone' => '91919191',
'password' => Hash::make('gestion2024'),
- 'role' => 'gestionnaire',
+ 'role' => 'manager',
]);
// Vérification immédiate du gestionnaire
diff --git a/resources/views/admin/dashboard.blade.php b/resources/views/admin/dashboard.blade.php
index 624806b..f8cba66 100644
--- a/resources/views/admin/dashboard.blade.php
+++ b/resources/views/admin/dashboard.blade.php
@@ -1,4 +1,4 @@
-
{{ __('Tableau de bord Administrateur') }}
@@ -14,5 +14,4 @@
-
- {{ __('Dashboard') }}
-
-
Sorry, we couldn't find this page.
+But dont worry, you can find plenty of other things on our homepage.
+ Back to homepage +