A comprehensive file and document management system for Filament applications, featuring Google Drive-style permissions, automatic inheritance, and flexible access controls.
- π File & Folder Management - Upload files, create folders, and organize content
- π External Links - Add and manage external links with descriptions
- π₯ Advanced Permissions - Google Drive-style ownership with Creator, Owner, Editor, and Viewer roles
- π Automatic Inheritance - Permissions automatically inherit from parent folders
- π Multiple Views - Public Library, My Documents, Shared with Me, Created by Me, and Search All
- βοΈ Configurable Admin Access - Flexible admin role configuration
- π¨ Filament Integration - Native Filament UI components and navigation
You can install the package via composer:
composer require tapp/filament-libraryThe package will automatically publish and run migrations. You'll need to add the LibraryUser trait to your User model:
// app/Models/User.php
use Tapp\FilamentLibrary\Traits\LibraryUser;
class User extends Authenticatable
{
use LibraryUser;
// ... other traits and methods
}You can publish and run the migrations with:
php artisan vendor:publish --tag="filament-library-migrations"
php artisan migrateYou can publish the config file with:
php artisan vendor:publish --tag="filament-library-config"use Tapp\FilamentLibrary\FilamentLibraryPlugin;
public function panel(Panel $panel): Panel
{
return $panel
->plugins([
FilamentLibraryPlugin::make(),
]);
}// In your AppServiceProvider
use Tapp\FilamentLibrary\FilamentLibraryPlugin;
public function boot()
{
// Option 1: Use different role name
FilamentLibraryPlugin::setLibraryAdminCallback(function ($user) {
return $user->hasRole('super-admin');
});
// Option 2: Custom logic
FilamentLibraryPlugin::setLibraryAdminCallback(function ($user) {
return $user->is_superuser || $user->hasRole('library-manager');
});
}The plugin automatically adds navigation items:
- Library - Main library view
- Search All - Search across all accessible content
- My Documents - Personal documents and folders
- Shared with Me - Items shared by other users
- Created by Me - Items you created
The plugin features a sophisticated permissions system inspired by Google Drive. See Permissions Documentation for complete details.
- Creator - Permanent, always has access, cannot be changed
- Owner - Manages sharing, can be transferred, has full permissions
- Editor - Can view and edit content, cannot manage sharing
- Viewer - Can only view content
- Personal Folders - Automatically created for new users
- Permission Inheritance - Child items inherit parent folder permissions
- Admin Override - Library admins can access all content
// config/filament-library.php
return [
'admin_role' => 'Admin', // Default admin role
'admin_callback' => null, // Custom callback function
];LIBRARY_ADMIN_ROLE=super-admin- Permissions System - Complete permissions guide
- Customization Guide - Customizing admin access
- API Reference - Developer documentation
composer testPlease see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.