Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
Laravel final assignment
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Muhammad Ameen
Laravel final assignment
Commits
d73c0842
Commit
d73c0842
authored
Mar 04, 2024
by
muhammad-ameen356
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Complete
parent
4c29317b
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
69 additions
and
3 deletions
+69
-3
.DS_Store
.DS_Store
+0
-0
Kernel.php
app/Http/Kernel.php
+3
-0
AdminMiddleware.php
app/Http/Middleware/AdminMiddleware.php
+25
-0
LogUserActionsMiddleware.php
app/Http/Middleware/LogUserActionsMiddleware.php
+30
-0
User.php
app/User.php
+6
-2
web.php
routes/web.php
+5
-1
No files found.
.DS_Store
0 → 100644
View file @
d73c0842
File added
app/Http/Kernel.php
View file @
d73c0842
...
@@ -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
,
];
];
/**
/**
...
...
app/Http/Middleware/AdminMiddleware.php
0 → 100644
View file @
d73c0842
<?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
(
'/'
);
}
}
app/Http/Middleware/LogUserActionsMiddleware.php
0 → 100644
View file @
d73c0842
<?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
);
}
}
app/User.php
View file @
d73c0842
...
@@ -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'
,
];
];
/**
/**
...
...
routes/web.php
View file @
d73c0842
...
@@ -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
});
});
});
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment