Commit d73c0842 authored by muhammad-ameen356's avatar muhammad-ameen356

Complete

parent 4c29317b
File added
...@@ -19,6 +19,7 @@ class Kernel extends HttpKernel ...@@ -19,6 +19,7 @@ class Kernel extends HttpKernel
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class, \App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\LogUserActionsMiddleware::class,
]; ];
/** /**
...@@ -35,6 +36,7 @@ class Kernel extends HttpKernel ...@@ -35,6 +36,7 @@ class Kernel extends HttpKernel
\Illuminate\View\Middleware\ShareErrorsFromSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class, \App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class, \Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\LogUserActionsMiddleware::class,
], ],
'api' => [ 'api' => [
...@@ -62,6 +64,7 @@ class Kernel extends HttpKernel ...@@ -62,6 +64,7 @@ class Kernel extends HttpKernel
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'logUserActions' => \App\Http\Middleware\LogUserActionsMiddleware::class,
]; ];
/** /**
......
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class AdminMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
if (auth()->check() && auth()->user()->role === 'admin') {
return $next($request);
}
return redirect('/');
}
}
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Log;
class LogUserActionsMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
// Check if there's an authenticated user
if (auth()->check()) {
// Log user actions
$user = auth()->user();
$action = $request->route()->getActionName();
Log::info("User {$user->name} (ID: {$user->id}) accessed action: $action");
}
return $next($request);
}
}
...@@ -16,7 +16,10 @@ class User extends Authenticatable ...@@ -16,7 +16,10 @@ class User extends Authenticatable
* @var array * @var array
*/ */
protected $fillable = [ protected $fillable = [
'name', 'email', 'password', 'name',
'email',
'password',
'role',
]; ];
/** /**
...@@ -25,7 +28,8 @@ class User extends Authenticatable ...@@ -25,7 +28,8 @@ class User extends Authenticatable
* @var array * @var array
*/ */
protected $hidden = [ protected $hidden = [
'password', 'remember_token', 'password',
'remember_token',
]; ];
/** /**
......
...@@ -32,11 +32,15 @@ Auth::routes(); ...@@ -32,11 +32,15 @@ Auth::routes();
Route::get('/home', 'HomeController@index')->name('home'); Route::get('/home', 'HomeController@index')->name('home');
Route::middleware('auth')->group(function () { Route::middleware(['auth', 'logUserActions'])->group(function () {
Route::get('/tasks', 'TaskController@index')->name('tasks.index'); Route::get('/tasks', 'TaskController@index')->name('tasks.index');
Route::get('/tasks/create', 'TaskController@create')->name('tasks.create'); Route::get('/tasks/create', 'TaskController@create')->name('tasks.create');
Route::post('/tasks', 'TaskController@store')->name('tasks.store'); Route::post('/tasks', 'TaskController@store')->name('tasks.store');
Route::get('/tasks/{task}/edit', 'TaskController@edit')->name('tasks.edit'); Route::get('/tasks/{task}/edit', 'TaskController@edit')->name('tasks.edit');
Route::put('/tasks/{task}', 'TaskController@update')->name('tasks.update'); Route::put('/tasks/{task}', 'TaskController@update')->name('tasks.update');
Route::delete('/tasks/{task}', 'TaskController@destroy')->name('tasks.destroy'); Route::delete('/tasks/{task}', 'TaskController@destroy')->name('tasks.destroy');
Route::middleware(['admin'])->group(function () {
// Define admin functionalities routes
});
}); });
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment