Installation¶
Purpose¶
n3xt0r/laravel-webdav-server-filament adds a Filament admin surface for the core Laravel WebDAV Server package.
Use it when your application already uses Filament and you want to manage WebDAV accounts through a panel — either by administrators on behalf of users, or by users managing their own accounts directly.
Requirements¶
- PHP 8.4 or newer
- Laravel 12 or newer
- Filament 5 or newer
n3xt0r/laravel-webdav-server
Installation¶
Install the package with Composer:
Publish the configuration when you need to change defaults:
Plugin Registration¶
Register the plugin on the Filament panel where WebDAV accounts should be managed:
use N3XT0R\LaravelWebdavServerFilament\LaravelWebdavServerFilamentPlugin;
$panel->plugin(LaravelWebdavServerFilamentPlugin::make());
This registers the admin-facing resource by default.
Admin-only panel¶
No additional configuration is needed for a standard admin panel:
User self-service panel¶
To allow authenticated users to manage their own accounts, enable the user resource:
// All authenticated users
$panel->plugin(
LaravelWebdavServerFilamentPlugin::make()
->withoutAdminAccountResource()
->withUserAccountResource()
);
// Conditionally — for example, only verified users
$panel->plugin(
LaravelWebdavServerFilamentPlugin::make()
->withoutAdminAccountResource()
->userAccountResourceEnabledUsing(
fn (User $user): bool => $user->hasVerifiedEmail()
)
);
Both resources on the same panel¶
If both admin and user resources should appear on the same panel, omit withoutAdminAccountResource():
Configuration¶
The package configuration is published as config/laravel-webdav-server-filament.php.
return [
'user_resource' => [
'show_meta' => false,
],
'notifications' => [
'enabled' => true,
],
'password' => [
'min_length' => 16,
'require_mixed_case' => true,
'require_numbers' => true,
'require_symbols' => true,
],
];
Notifications¶
Set notifications.enabled to false when account creation and password reset notifications should not be sent.
Password Policy¶
The password section controls the rules applied to every password field in the package:
| Key | Default | Effect |
|---|---|---|
min_length |
16 |
Minimum character count; also used for auto-generated passwords |
require_mixed_case |
true |
Requires at least one uppercase and one lowercase letter |
require_numbers |
true |
Requires at least one digit |
require_symbols |
true |
Requires at least one symbol |
User Resource¶
| Key | Default | Effect |
|---|---|---|
user_resource.show_meta |
false |
Shows the meta key/value field on user account forms when true |
Core Package Configuration¶
This Filament integration reads the core package configuration for account and user behavior. The most important core values are:
webdav-server.auth.account_modelwebdav-server.auth.user_modelwebdav-server.auth.user_id_columnwebdav-server.storage.default_spacewebdav-server.route_prefix
The WebDAV URL shown on the view page is resolved through the core package WebDavPath facade.
First Workflow¶
Admin¶
- Open the configured Filament panel.
- Go to the WebDAV accounts resource.
- Create an account and link it to an application user.
- Copy the WebDAV URL from the account view page.
- Provide the URL, username, and password to the intended user.
After creation, the linked application user cannot be changed from the edit page.
User (self-service)¶
- Open the Filament panel where the user resource is enabled.
- Go to the WebDAV accounts resource.
- Create an account — it is automatically linked to your user.
- Copy the WebDAV URL from the account view page.
- Connect with a WebDAV client using the displayed URL, username, and password.