Manage application users directly from the Panelis admin panel.
- User management
- Create, update, and delete users
- Email verification status
- Password management
- Search and filtering
- Automatic Panelis plugin discovery
- PHP 8.3+
- Laravel 13+
- Filament 5+
Install the package via Composer:
composer require panelis-php/userRun migrations:
php artisan migrateAfter installation, a Users menu will be available in the Panelis admin panel.
The User module provides user administration features for managing access to your application.
Available actions include:
- Create users
- Edit user information
- Reset passwords
- Verify email addresses
- Delete users
User information may include:
- Name
- Email address
- Password
- Email verification status
Permissions are defined by permission enums registered by each Panelis module. They are not created, edited, or deleted manually from the permission list.
Open Users > Permissions in the Panelis admin panel and click Sync permissions. The sync creates or updates permissions from the registered enums and removes permissions that are no longer registered.
Run:
php artisan panelis:sync-permissionsThe application must have an available database connection before running the command.
The main Panelis application registers the sync command in its post-update-cmd Composer hook:
"post-update-cmd": [
"@php artisan vendor:publish --tag=laravel-assets --ansi --force",
"@php artisan panelis:sync-permissions"
]Therefore, running composer update from the main application repository automatically synchronizes permissions. This hook does not run when Composer is executed with --no-scripts.
Define permissions in a backed enum that implements Filament's HasLabel contract. The label should use the module's translation namespace:
use Filament\Support\Contracts\HasLabel;
enum Permission: string implements HasLabel
{
case Browse = 'BrowseExample';
public function getLabel(): string
{
return __('example::permission.name_browse_example');
}
}Register the enum in the module's composer.json under extra.panelis.permissions:
"extra": {
"panelis": {
"permissions": {
"example": "Panelis\\Example\\Panel\\Resources\\ExampleResource\\Enums\\Permission"
}
}
}Add the corresponding translation key in the module's language files, then run the sync command from the application repository.
The User module integrates with Laravel's authentication system and can be extended by other Panelis modules.
The MIT License (MIT).