Add role-based access control to various settings pages: implement canAccess method in AboutPageSettings, ContactPageSettings, HomePageSettings, ManageCtaSettings, ManagePortfolio, ManageSite, ManageSiteSocialSettings, ManageSolutions, ManageSuccess, and update User model to include canManageSettings method for enhanced security and user experience.

This commit is contained in:
2025-07-29 15:54:16 +05:00
parent 3e80ea4d5e
commit 643ccd6d9e
16 changed files with 83 additions and 27 deletions

View File

@@ -2,8 +2,8 @@
namespace App\Filament\Pages;
use App\Settings\SolutionSettings;
use App\Models\UserRole;
use App\Settings\SolutionSettings;
use Filament\Forms\Components\FileUpload;
use Filament\Forms\Components\Grid;
use Filament\Forms\Components\Repeater;
@@ -378,6 +378,11 @@ class ManageSolutions extends SettingsPage
return 'Manage the solutions section content, including individual solution items.';
}
public static function canAccess(): bool
{
return auth()->user()->canManageSettings();
}
public static function canView(): bool
{
return auth()->user()->role === UserRole::ADMIN || auth()->user()->role === UserRole::MANAGER;