1. Go to this page and download the library: Download cswni/filament-companies library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
cswni / filament-companies example snippets
/*
|--------------------------------------------------------------------------
| Filament Path
|--------------------------------------------------------------------------
|
| The default is `admin` but you can change it to whatever works best and
| doesn't conflict with the routing in your application.
|
*/
'path' => env('FILAMENT_PATH', 'company'),
/*
|--------------------------------------------------------------------------
| Socialite Providers
|--------------------------------------------------------------------------
|
| Here you may specify the providers your application supports for OAuth.
| Out of the box, FilamentCompanies provides support for all the OAuth
| providers that are supported by Laravel Socialite.
|
*/
'providers' => [
Providers::github(),
Providers::google(),
Providers::gitlab(),
Providers::bitbucket(),
Providers::facebook(),
Providers::linkedin(),
Providers::twitterOAuth1(),
Providers::twitterOAuth2(),
],
/*
|--------------------------------------------------------------------------
| Socialite Providers
|--------------------------------------------------------------------------
|
| Here you may specify the providers your application supports for OAuth.
| Out of the box, FilamentCompanies provides support for all the OAuth
| providers that are supported by Laravel Socialite.
|
*/
'providers' => [
github,
google,
gitlab,
bitbucket,
facebook,
linkedin,
twitter,
twitter-oauth-2,
],
/*
|--------------------------------------------------------------------------
| Third Party Services
|--------------------------------------------------------------------------
|
| This file is for storing the credentials for third party services such
| as Mailgun, Postmark, AWS and more. This file provides the de facto
| location for this type of information, allowing packages to have
| a conventional file to locate the various service credentials.
|
*/
'github' => [
'client_id' => env('GITHUB_CLIENT_ID'),
'client_secret' => env('GITHUB_CLIENT_SECRET'),
'redirect' => 'https://filament.test/oauth/github/callback',
],
/*
|--------------------------------------------------------------------------
| Features
|--------------------------------------------------------------------------
|
| Some of Company's features are optional. You may disable the features
| by removing them from this array. You're free to only remove some of
| these features, or you can even remove all of these if you need to.
|
*/
'features' => [
Features::termsAndPrivacyPolicy(),
Features::profilePhotos(),
Features::api(),
Features::companies(['invitations' => true]),
Features::accountDeletion(),
// Features::socialite(['rememberSession' => true, 'providerAvatars' => true]),
],
// Access a user's currently selected company...
$user->currentCompany : Wallo\FilamentCompanies\Company
// Access all of the companies (including owned companies) that a user belongs to...
$user->allCompanies() : Illuminate\Support\Collection
// Access all of a user's owned companies...
$user->ownedCompanies : Illuminate\Database\Eloquent\Collection
// Access all of the companies that a user belongs to but does not own...
$user->companies : Illuminate\Database\Eloquent\Collection
// Access a user's "personal" company...
$user->personalCompany() : Wallo\FilamentCompanies\Company
// Determine if a user owns a given company...
$user->ownsCompany($company) : bool
// Determine if a user belongs to a given company...
$user->belongsToCompany($company) : bool
// Get the role that the user is assigned on the company...
$user->companyRole($company) : \Wallo\FilamentCompanies\Role
// Determine if the user has the given role on the given company...
$user->hasCompanyRole($company, 'admin') : bool
// Access an array of all permissions a user has for a given company...
$user->companyPermissions($company) : array
// Determine if a user has a given company permission...
$user->hasCompanyPermission($company, 'server:create') : bool
protected static function shouldRegisterNavigation(): bool
{
return Auth::user()->currentCompany->id === 3;
}
public function mount(): void
{
abort_unless(Auth::user()->currentCompany->id === 3, 403);
}
protected static function shouldRegisterNavigation(): bool
{
return Auth::user()->currentCompany->name === "Filament";
}
public function mount(): void
{
abort_unless(Auth::user()->currentCompany->name === "Filament", 403);
}
/**
* 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.');
}