generated from host-uk/core-template
-
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
lang:phpPHP/LaravelPHP/Laravel
Description
Description
Every Livewire component in src/View/Modal/Admin/ duplicates the same checkHadesAccess() method.
Location
- File: src/View/Modal/Admin/Logs.php (lines 99-104)
- File: src/View/Modal/Admin/Routes.php (lines 90-95)
- File: src/View/Modal/Admin/Cache.php (lines 131-136)
- File: src/View/Modal/Admin/ActivityLog.php (lines 111-116)
- File: src/View/Modal/Admin/Servers.php (lines 229-234)
- File: src/View/Modal/Admin/Database.php (lines 152-157)
- File: src/View/Modal/Admin/RouteInspector.php (lines 471-476)
Issue
The same method is copy-pasted in 7 components:
private function checkHadesAccess(): void
{
if (! auth()->user()?->isHades()) {
abort(403, 'Hades access required');
}
}
This violates DRY principle and makes it:
- Easy to forget when creating new components
- Hard to modify authorization logic consistently
- Prone to copy-paste errors
Recommendation
- Create a base component class or trait (e.g., RequiresHadesAccess trait)
- Move checkHadesAccess() to the trait
- Have all admin components use the trait
- Consider using Livewire middleware instead
Severity
Low - Code quality issue, not a bug, but increases maintenance burden
Metadata
Metadata
Assignees
Labels
lang:phpPHP/LaravelPHP/Laravel