dereuromark / cakephp-bouncer
CakePHP plugin for approval workflow - users propose changes, admins approve or reject before publishing
Installs: 78
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 1
Type:cakephp-plugin
pkg:composer/dereuromark/cakephp-bouncer
Requires
- php: >=8.2
- ext-json: *
- cakephp/orm: ^5.0.0
Requires (Dev)
- cakephp/cakephp: ^5.1.0
- cakephp/migrations: ^4.0.0
- php-collective/code-sniffer: dev-master as 0.4.6
- phpunit/phpunit: ^11.5.42 || ^12.4.0
Suggests
- dereuromark/cakephp-audit-stash: Integrates seamlessly to provide complete audit trail of approval workflow
This package is auto-updated.
Last update: 2025-11-24 22:39:38 UTC
README
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.
Features
- 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
Installation
Install via composer:
composer require dereuromark/cakephp-bouncer bin/cake plugin load Bouncer
Run the migrations to create the `bouncer_records` table:
bin/cake migrations migrate -p Bouncer
Documentation
See docs/README.md for detailed documentation including:
- Quick start guide
- Configuration options
- Advanced usage (bypass callbacks, programmatic approval)
- AuditStash integration
- How it works
Demo
See the plugin in action: https://sandbox.dereuromark.de/sandbox/bouncer-examples
Contributing
See CONTRIBUTING.md for details on how to contribute to this project.