PHP code example of abdulrahim / filament-modular-permissions

1. Go to this page and download the library: Download abdulrahim/filament-modular-permissions 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/ */

    

abdulrahim / filament-modular-permissions example snippets


use Abdulrahim\FilamentModularPermissions\FilamentModularPermissionsPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            FilamentModularPermissionsPlugin::make(),
        ]);
}

use App\Models\User;
use Spatie\Permission\Models\Role;

public function run(): void
{
    Role::firstOrCreate(['name' => 'super_admin', 'guard_name' => 'web']);

    $admin = User::firstOrCreate(
        ['email' => '[email protected]'],
        [
            'name' => 'Admin',
            'password' => bcrypt('12345678'),
        ]
    );

    $admin->assignRole('super_admin');
}

// config/filament-modular-permissions.php
'custom_permissions' => [
    'export_reports',
    'access_api',
    'view_dashboard',
],

// config/filament-modular-permissions.php
'excluded_panels' => [
    'api',
    'customer_portal',
],

'auto_hide_resources' => false,

use Abdulrahim\FilamentModularPermissions\Traits\HandlesResourcePermissions;
use Abdulrahim\FilamentModularPermissions\Traits\HandlesWidgetPermissions;

use Abdulrahim\FilamentModularPermissions\FilamentModularPermissionsPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            FilamentModularPermissionsPlugin::make(),
        ]);
}

use App\Models\User;
use Spatie\Permission\Models\Role;

Role::firstOrCreate(['name' => 'super_admin', 'guard_name' => 'web']);

$admin = User::firstOrCreate(['email' => '[email protected]'], [
    'name' => 'Admin',
    'password' => bcrypt('12345678'),
]);

$admin->assignRole('super_admin');

// config/filament-modular-permissions.php
'custom_permissions' => [
    'export_reports',
    'access_api',
],

// config/filament-modular-permissions.php
'excluded_panels' => [
    'api',
    'customer_portal',
],

// في ملف config/filament-modular-permissions.php
'auto_hide_resources' => false,

// ثم استخدم الـ Traits في الموارد أو الويدجت
use Abdulrahim\FilamentModularPermissions\Traits\HandlesResourcePermissions;
use Abdulrahim\FilamentModularPermissions\Traits\HandlesWidgetPermissions;
bash
php artisan permissions:install
bash
> php artisan permissions:publish-role-resource  # Step 1: publish Role Resource
> php artisan permissions:publish-user-resource  # Step 2: publish User Resource
> php artisan permissions:sync                   # Step 3: sync permissions
> 
bash
# Normal sync — skips excluded panels
php artisan permissions:sync

# Force-sync a specific panel (bypasses exclusion)
php artisan permissions:sync --panel=api

# Same via the installer
php artisan permissions:install --panel=api
bash
php artisan permissions:check --user=1
php artisan permissions:check --user=1 --guard=admin
bash
php artisan permissions:install
bash
> php artisan permissions:publish-role-resource  # الخطوة 1: نشر واجهة الأدوار
> php artisan permissions:publish-user-resource  # الخطوة 2: نشر واجهة المستخدمين
> php artisan permissions:sync                   # الخطوة 3: مزامنة الصلاحيات
> 
bash
# مزامنة عادية — يتخطى اللوحات المستثناة
php artisan permissions:sync

# إجبار مزامنة لوحة محددة (يتجاوز الاستثناء)
php artisan permissions:sync --panel=api

# نفس الشيء عبر المثبت
php artisan permissions:install --panel=api
bash
php artisan permissions:check --user=1
php artisan permissions:check --user=1 --guard=admin