diff --git a/app/Filament/Pages/AboutPageSettings.php b/app/Filament/Pages/AboutPageSettings.php index 32a633f..b1bc23c 100644 --- a/app/Filament/Pages/AboutPageSettings.php +++ b/app/Filament/Pages/AboutPageSettings.php @@ -2,8 +2,8 @@ namespace App\Filament\Pages; -use App\Settings\AboutSettings; use App\Models\UserRole; +use App\Settings\AboutSettings; use Filament\Forms\Components\FileUpload; use Filament\Forms\Components\Grid; use Filament\Forms\Components\Repeater; @@ -247,8 +247,13 @@ class AboutPageSettings extends SettingsPage return 'Manage the content sections of the About Us page.'; } + 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; } -} \ No newline at end of file +} diff --git a/app/Filament/Pages/ContactPageSettings.php b/app/Filament/Pages/ContactPageSettings.php index 6110e91..ed6d473 100644 --- a/app/Filament/Pages/ContactPageSettings.php +++ b/app/Filament/Pages/ContactPageSettings.php @@ -2,8 +2,8 @@ namespace App\Filament\Pages; -use App\Settings\ContactSettings; use App\Models\UserRole; +use App\Settings\ContactSettings; use Filament\Forms\Components\Section; use Filament\Forms\Components\Textarea; use Filament\Forms\Components\TextInput; @@ -86,6 +86,11 @@ class ContactPageSettings extends SettingsPage return 'Manage the contact form details, contact information, and map embed.'; } + 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; diff --git a/app/Filament/Pages/HomePageSettings.php b/app/Filament/Pages/HomePageSettings.php index 6087c49..583238d 100644 --- a/app/Filament/Pages/HomePageSettings.php +++ b/app/Filament/Pages/HomePageSettings.php @@ -2,8 +2,8 @@ namespace App\Filament\Pages; -use App\Settings\HomeSettings; use App\Models\UserRole; +use App\Settings\HomeSettings; use Filament\Forms\Components\FileUpload; use Filament\Forms\Components\Grid; use Filament\Forms\Components\Repeater; @@ -294,6 +294,11 @@ class HomePageSettings extends SettingsPage return 'Manage the homepage hero section, background video, and call-to-action content.'; } + 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; diff --git a/app/Filament/Pages/ManageCtaSettings.php b/app/Filament/Pages/ManageCtaSettings.php index ea012d4..f525455 100644 --- a/app/Filament/Pages/ManageCtaSettings.php +++ b/app/Filament/Pages/ManageCtaSettings.php @@ -2,13 +2,12 @@ namespace App\Filament\Pages; -use App\Settings\CtaSettings; use App\Models\UserRole; +use App\Settings\CtaSettings; use Filament\Forms; use Filament\Forms\Components\FileUpload; use Filament\Forms\Form; use Filament\Pages\SettingsPage; -use Illuminate\Contracts\Support\Htmlable; class ManageCtaSettings extends SettingsPage { @@ -45,6 +44,11 @@ class ManageCtaSettings extends SettingsPage ]); } + 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; diff --git a/app/Filament/Pages/ManagePortfolio.php b/app/Filament/Pages/ManagePortfolio.php index 7e47619..7f46d39 100644 --- a/app/Filament/Pages/ManagePortfolio.php +++ b/app/Filament/Pages/ManagePortfolio.php @@ -2,8 +2,8 @@ namespace App\Filament\Pages; -use App\Settings\PortfolioSettings; use App\Models\UserRole; +use App\Settings\PortfolioSettings; use Filament\Forms\Components\FileUpload; use Filament\Forms\Components\Grid; use Filament\Forms\Components\Repeater; @@ -110,6 +110,11 @@ class ManagePortfolio extends SettingsPage return 'Manage the portfolio section content, including items, categories, and titles.'; } + 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; diff --git a/app/Filament/Pages/ManageSite.php b/app/Filament/Pages/ManageSite.php index b79247c..955acaf 100644 --- a/app/Filament/Pages/ManageSite.php +++ b/app/Filament/Pages/ManageSite.php @@ -2,8 +2,8 @@ namespace App\Filament\Pages; -use App\Settings\SiteSettings; use App\Models\UserRole; +use App\Settings\SiteSettings; use Filament\Forms; use Filament\Forms\Form; use Filament\Pages\SettingsPage; @@ -170,6 +170,11 @@ class ManageSite extends SettingsPage return 'Manage your website\'s general configuration'; } + 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; diff --git a/app/Filament/Pages/ManageSiteSocialSettings.php b/app/Filament/Pages/ManageSiteSocialSettings.php index 1fe5054..37b4f96 100644 --- a/app/Filament/Pages/ManageSiteSocialSettings.php +++ b/app/Filament/Pages/ManageSiteSocialSettings.php @@ -2,8 +2,8 @@ namespace App\Filament\Pages; -use App\Settings\SiteSocialSettings; use App\Models\UserRole; +use App\Settings\SiteSocialSettings; use Filament\Forms; use Filament\Forms\Form; use Filament\Pages\SettingsPage; @@ -79,6 +79,11 @@ class ManageSiteSocialSettings extends SettingsPage return 'Manage your social media profiles and sharing options'; } + 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; diff --git a/app/Filament/Pages/ManageSolutions.php b/app/Filament/Pages/ManageSolutions.php index 15ae541..7ed94ac 100644 --- a/app/Filament/Pages/ManageSolutions.php +++ b/app/Filament/Pages/ManageSolutions.php @@ -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; diff --git a/app/Filament/Pages/ManageSuccess.php b/app/Filament/Pages/ManageSuccess.php index adcaab0..99a556f 100644 --- a/app/Filament/Pages/ManageSuccess.php +++ b/app/Filament/Pages/ManageSuccess.php @@ -2,8 +2,8 @@ namespace App\Filament\Pages; -use App\Settings\SuccessSettings; use App\Models\UserRole; +use App\Settings\SuccessSettings; use Filament\Forms\Components\FileUpload; use Filament\Forms\Components\Grid; use Filament\Forms\Components\Repeater; @@ -115,6 +115,11 @@ class ManageSuccess extends SettingsPage return 'Manage the success section content, including text, button, and skill bars.'; } + 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; diff --git a/app/Filament/Resources/NewsResource.php b/app/Filament/Resources/NewsResource.php index be40bf2..b9accd0 100644 --- a/app/Filament/Resources/NewsResource.php +++ b/app/Filament/Resources/NewsResource.php @@ -16,9 +16,8 @@ use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Columns\ImageColumn; use Filament\Tables\Table; -use Illuminate\Support\Str; use Illuminate\Database\Eloquent\Builder; -use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Str; class NewsResource extends Resource { diff --git a/app/Filament/Resources/SuccessResource.php b/app/Filament/Resources/SuccessResource.php index 77664a9..671b90a 100644 --- a/app/Filament/Resources/SuccessResource.php +++ b/app/Filament/Resources/SuccessResource.php @@ -14,8 +14,8 @@ use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Columns\ImageColumn; use Filament\Tables\Table; -use Illuminate\Support\Str; use Illuminate\Database\Eloquent\Builder; +use Illuminate\Support\Str; class SuccessResource extends Resource { diff --git a/app/Filament/Resources/TeamMemberResource.php b/app/Filament/Resources/TeamMemberResource.php index d0552c8..a43591c 100644 --- a/app/Filament/Resources/TeamMemberResource.php +++ b/app/Filament/Resources/TeamMemberResource.php @@ -3,7 +3,6 @@ namespace App\Filament\Resources; use App\Filament\Resources\TeamMemberResource\Pages; -use App\Filament\Resources\TeamMemberResource\RelationManagers; use App\Models\TeamMember; use App\Models\UserRole; use Filament\Forms\Components\FileUpload; @@ -12,14 +11,9 @@ use Filament\Forms\Components\TextInput; use Filament\Forms\Form; use Filament\Resources\Resource; use Filament\Tables; -use Filament\Tables\Actions\ActionGroup; -use Filament\Tables\Actions\DeleteAction; -use Filament\Tables\Actions\EditAction; use Filament\Tables\Columns\ImageColumn; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; -use Illuminate\Database\Eloquent\Builder; -use Illuminate\Database\Eloquent\SoftDeletingScope; class TeamMemberResource extends Resource { diff --git a/app/Filament/Resources/TeamMemberResource/Pages/CreateTeamMember.php b/app/Filament/Resources/TeamMemberResource/Pages/CreateTeamMember.php index d199d5f..d8c93b7 100644 --- a/app/Filament/Resources/TeamMemberResource/Pages/CreateTeamMember.php +++ b/app/Filament/Resources/TeamMemberResource/Pages/CreateTeamMember.php @@ -3,7 +3,6 @@ namespace App\Filament\Resources\TeamMemberResource\Pages; use App\Filament\Resources\TeamMemberResource; -use Filament\Actions; use Filament\Resources\Pages\CreateRecord; class CreateTeamMember extends CreateRecord diff --git a/app/Models/User.php b/app/Models/User.php index c58f30b..7676869 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -54,4 +54,9 @@ class User extends Authenticatable 'role' => UserRole::class, ]; } + + public function canManageSettings(): bool + { + return $this->role === UserRole::ADMIN || $this->role === UserRole::MANAGER; + } } diff --git a/app/Providers/Filament/PanelPanelProvider.php b/app/Providers/Filament/PanelPanelProvider.php index bf3fa02..4a6ac0b 100644 --- a/app/Providers/Filament/PanelPanelProvider.php +++ b/app/Providers/Filament/PanelPanelProvider.php @@ -5,6 +5,8 @@ namespace App\Providers\Filament; use App\Filament\Pages\HomePageSettings; use App\Filament\Pages\ManageCtaSettings; use App\Filament\Resources\ApplicationResource; +use App\Models\User; +use App\Models\UserRole; use Filament\Http\Middleware\Authenticate; use Filament\Http\Middleware\DisableBladeIconComponents; use Filament\Http\Middleware\DispatchServingFilamentEvent; @@ -19,10 +21,8 @@ use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Session\Middleware\AuthenticateSession; use Illuminate\Session\Middleware\StartSession; -use Illuminate\View\Middleware\ShareErrorsFromSession; -use App\Models\User; -use App\Models\UserRole; use Illuminate\Support\Facades\Gate; +use Illuminate\View\Middleware\ShareErrorsFromSession; class PanelPanelProvider extends PanelProvider { diff --git a/app/Settings/AboutSettings.php b/app/Settings/AboutSettings.php index 4dc4c5b..5d2cbc4 100644 --- a/app/Settings/AboutSettings.php +++ b/app/Settings/AboutSettings.php @@ -8,35 +8,50 @@ class AboutSettings extends Settings { // Our Story Section public string $our_story_title; + public string $our_story_subtitle; + public string $our_story_paragraph_one; + public string $our_story_paragraph_two; + public string $our_story_paragraph_three; + public string $our_story_button_text; + public string $our_story_button_url; + public string $our_story_video_poster; + public string $our_story_video_source; // Our Journey Section public string $our_journey_title; + public string $our_journey_subtitle; + public array $our_journey_milestones; // [{year: 2010, title: "Start Company", description: "...", image: "..."}] // Company Structure Section public string $company_structure_title; + public string $company_structure_subtitle; + public string $company_structure_director_name; + public string $company_structure_advisor_name; + public array $company_structure_departments; // [{name: "HSE", person: "Michael Brown"}] // Our Facilities Section public string $our_facilities_title; - public string $our_facilities_subtitle; - public array $our_facilities_locations; // [{name: "Headquarters", location: "...", description: "...", image: "...", tags: ["R&D Labs"]}] + public string $our_facilities_subtitle; + + public array $our_facilities_locations; // [{name: "Headquarters", location: "...", description: "...", image: "...", tags: ["R&D Labs"]}] public static function group(): string { return 'cms_aboutpage'; } -} \ No newline at end of file +}