Blade::render(''),
);
}
Filament::serving(static function () {
Filament::registerUserMenuItems([
'account' => UserMenuItem::make()->url(Profile::getUrl()),
]);
});
if (FilamentCompanies::hasApiFeatures()) {
Filament::serving(static function () {
Filament::registerUserMenuItems([
UserMenuItem::make()
->label('API Tokens')
->icon('heroicon-s-lock-open')
->url(APITokens::getUrl()),
]);
});
}
Filament::serving(static function () {
Filament::registerUserMenuItems([
'logout' => UserMenuItem::make()->url(route('logout')),
]);
});
RedirectResponse::macro('banner', function ($message) {
return $this->with('flash', [
'bannerStyle' => 'success',
'banner' => $message,
]);
});
RedirectResponse::macro('dangerBanner', function ($message) {
return $this->with('flash', [
'bannerStyle' => 'danger',
'banner' => $message,
]);
});
Filament::registerRenderHook(
'content.start',
static fn (): string => Blade::render(''),
);
$this->configurePermissions();
FilamentCompanies::createCompaniesUsing(CreateCompany::class);
FilamentCompanies::updateCompanyNamesUsing(UpdateCompanyName::class);
FilamentCompanies::addCompanyEmployeesUsing(AddCompanyEmployee::class);
FilamentCompanies::inviteCompanyEmployeesUsing(InviteCompanyEmployee::class);
FilamentCompanies::removeCompanyEmployeesUsing(RemoveCompanyEmployee::class);
FilamentCompanies::deleteCompaniesUsing(DeleteCompany::class);
FilamentCompanies::deleteUsersUsing(DeleteUser::class);
Socialite::resolvesSocialiteUsersUsing(ResolveSocialiteUser::class);
Socialite::createUsersFromProviderUsing(CreateUserFromProvider::class);
Socialite::createConnectedAccountsUsing(CreateConnectedAccount::class);
Socialite::updateConnectedAccountsUsing(UpdateConnectedAccount::class);
Socialite::setUserPasswordsUsing(SetUserPassword::class);
Socialite::handlesInvalidStateUsing(HandleInvalidState::class);
Socialite::generatesProvidersRedirectsUsing(GenerateRedirectForProvider::class);
}
/**
* Configure the roles and permissions that are available within the application.
*/
protected function configurePermissions(): void
{
FilamentCompanies::defaultApiTokenPermissions(['read']);
FilamentCompanies::role('admin', 'Administrator', [
'create',
'read',
'update',
'delete',
])->description('Administrator users can perform any action.');
FilamentCompanies::role('editor', 'Editor', [
'read',
'create',
'update',
])->description('Editor users have the ability to read, create, and update.');
}
}