| Install | |
|---|---|
composer require whilesmart/eloquent-workspaces |
|
| Latest Version: | v1.0.2 |
| PHP: | ^8.2 |
A comprehensive Laravel package for managing workspaces, invitations, and member roles.
composer require whilesmart/eloquent-workspaces
php artisan migrate
That's it! The package will auto-register routes and work out of the box.
All package configuration is environment-driven. Add these variables to your .env file:
# The user model class that will be used for workspace relationships.
WORKSPACES_USER_MODEL=App\\Models\\User
# Enable or disable route registration (default: true)
WORKSPACES_REGISTER_ROUTES=true
# Route prefix for all workspace endpoints (default: api)
WORKSPACES_ROUTE_PREFIX=api
# Automatically create a personal workspace for a user on registration (default: true)
WORKSPACES_AUTO_CREATE=true
# Number of days an invitation is valid (default: 7)
WORKSPACES_INVITATION_EXPIRY=7
For more advanced configuration, you can publish the configuration file:
php artisan vendor:publish --tag="workspaces-config"
This will create a config/workspaces.php file in your application.
route_middlewareYou can specify middleware for the workspace routes.
'route_middleware' => ['auth:sanctum'],
personal_workspace_name_templateThis template is used to name the personal workspace created for a new user.
Available variables: {first_name}, {last_name}, {full_name}
'personal_workspace_name_template' => "{first_name}'s Workspace",
rolesDefine the roles available in a workspace.
'roles' => [
'owner' => 'owner',
'admin' => 'admin',
'member' => 'member',
],
GET /api/workspaces/{workspaceId} - Get a workspacePUT /api/workspaces/{workspaceId} - Update a workspaceGET /api/workspaces/{workspaceId}/members - Get workspace membersPOST /api/workspaces/{workspaceId}/members/invite - Invite a member to a workspaceDELETE /api/workspaces/{workspaceId}/members/{userId} - Remove a member from a workspaceThis package does not currently dispatch any custom events.
You can publish the package's assets using the following commands:
# Publish only configuration
php artisan vendor:publish --tag="workspaces-config"
# Publish only migrations
php artisan vendor:publish --tag="workspaces-migrations"
# Publish everything
php artisan vendor:publish --provider="Whilesmart\\Workspaces\\WorkspacesServiceProvider"
This project is licensed under the MIT License - see the LICENSE file for details.