laravel-afterburner / communications
Team announcements and discussion threads for Afterburner applications
Package info
github.com/laravel-afterburner/communications
pkg:composer/laravel-afterburner/communications
Requires
- php: ^8.2
- laravel-afterburner/jetstream: ^1.0|dev-master
- laravel/framework: ^11.0
- livewire/livewire: ^3.5
Requires (Dev)
- laravel/pint: ^1.13
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^11.0
README
Team-scoped announcements and discussion threads for Laravel Afterburner Jetstream.
Features
- Announcements — role-targeted posts, read tracking, scheduled email (
announcements:send-scheduled) - Discussion threads — scopes:
council,team,property(optional lot link)
Installation
Local Development Setup
For local development, add the package as a path repository:
composer config repositories.afterburner-communications path ../afterburner-communications composer require laravel-afterburner/communications:@dev
Quick Install (Recommended)
composer require laravel-afterburner/communications php artisan afterburner:communications:install
The install command will:
- Publish config and views
- Add communications environment variables to
.envand.env.examplewhen present - Optionally run migrations and seed permissions
Manual Install
php artisan vendor:publish --tag=afterburner-communications-config
php artisan vendor:publish --tag=afterburner-communications-assets
php artisan migrate
php artisan db:seed --class="Afterburner\\Communications\\Database\\Seeders\\CommunicationsPermissionsSeeder"
If you use migrate:fresh --seed, register CommunicationsPermissionsSeeder with your app's PackageSeederRegistry (or call it from DatabaseSeeder) so discussion permissions are assigned beyond the default role templates.
Configuration
Environment variables (added by the install command):
AFTERBURNER_COMMUNICATIONS_ENABLED=true AFTERBURNER_COMMUNICATIONS_DISCUSSIONS_ENABLED=true
Package options live in config/afterburner-communications.php. Discussions default on when afterburner.entity_label is strata.
Permissions
| Slug | Purpose |
|---|---|
post_announcements |
Create and manage team announcements |
create_discussions |
Start new discussion threads |
edit_discussions |
Edit thread title, scope, and properties |
archive_discussions |
Archive and restore threads |
lock_discussions |
Lock and unlock threads |
delete_discussions |
Permanently delete threads |
moderate_discussion_posts |
Edit or delete other members' posts |
Existing installs that still assign the legacy manage_discussions slug receive the full set of discussion permissions when the seeder runs again.
Seeded via CommunicationsPermissionsSeeder (registered with PackageSeederRegistry).
Events (host listeners)
AnnouncementPublishedThreadCreated
Scheduled Tasks
Register in your host app:
$schedule->command('announcements:send-scheduled')->everyMinute();
License
MIT License