This plugin implements an approval workflow for CakePHP applications. Users propose changes (create or edit records), and admins/moderators can review, approve, or reject those changes before they are published to the actual database tables.
Perfect for:
- Content management systems requiring editorial approval
- User-generated content that needs moderation
- Data entry systems with quality control
- Multi-stage approval workflows
Note: Revert functionality is intentionally out of scope for this plugin. For reverting changes to previous states, use the cakephp-audit-stash plugin which provides comprehensive audit logging and revert capabilities. Bouncer focuses solely on the approval workflow for proposed changes.
- Seamless Integration: Add approval workflow to any table with a single behavior
- Draft Management: Users automatically edit their existing drafts instead of creating duplicates
- Admin Interface: Built-in UI for reviewing and approving/rejecting changes with diff view
- Flexible Configuration: Configure which actions require approval, use custom bypass callbacks
- Transaction Safety: Atomic approval process with rollback on errors
- AuditStash Integration: Works seamlessly with cakephp-audit-stash for complete audit trail
Install via composer:
composer require dereuromark/cakephp-bouncer
bin/cake plugin load BouncerRun the migrations to create the `bouncer_records` table:
bin/cake migrations migrate -p BouncerSee docs/README.md for detailed documentation including:
- Quick start guide
- Configuration options
- Advanced usage (bypass callbacks, programmatic approval)
- AuditStash integration
- How it works
See the plugin in action: https://sandbox.dereuromark.de/sandbox/bouncer-examples
See CONTRIBUTING.md for details on how to contribute to this project.