Approvals plugin screenshot
Dark mode ready
Multilingual support
No v5.x support

Approvals by FFHS IT

Community

Easily add approval workflows to your Filament-based Laravel app.

Tags: Spatie Integration Action Panels
Supported versions:
4.x 3.x
FFHS IT avatar Author: FFHS IT

Package health

Automated checks of this plugin's Composer package

66 / 100
Security 52
Maintenance 88
Ecosystem 76
15 checks
  • Failed: GitHub Actions pinned to SHA — View details on Plumb
  • Skipped: GitLab CI includes pinned to SHA
  • Passed: Open security advisories
  • Passed: Dependabot PR responsiveness — No open Dependabot PRs.
  • Skipped: Renovate MR responsiveness
  • Failed: Dependabot or Renovate configured — No dependency updater configuration found. View details on Plumb
  • Skipped: Dependency update cooldown configured
  • Failed: Provides a security policy — View details on Plumb
  • Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
  • Warning: Commit and release recency — Low activity: last commit 181 days ago; last release 181 days ago.
  • Passed: composer.lock not committed by library — composer.lock is absent from the released dist archive.
  • Passed: Dist archive is lean
  • Warning: Current Laravel version supported — Package does not co-install with current Laravel 13.0; the newest co-installable line is 12.0, which receives security patches only (until 2027-02-24).
  • Passed: Current PHP version supported — Constraint ^8.2 supports current PHP 8.5.
  • Skipped: Current Symfony version supported
Third-party plugin. This is built by the community, not the Filament team. Filament does not review, endorse, or vet the security of plugins outside the filament/ namespace. Review the source and install at your own risk. Found malware or an unresolved security issue the author won't address? Report it .
Powered by Plumb Last scanned 1 month ago

Documentation

This package allows you to easily implement approval workflows in your Filament-powered Laravel application. You can define approval logic per model, specify who can approve (based on roles, permissions, or user logic), and expose powerful UI actions using Filament’s Infolist components.

Latest Version on Packagist Total Downloads

#Features:

  • ✅ Native PHP Enums for status handling
  • 🔁 Define multiple approval flows per model
  • 👥 Role-, user-, and permission-based approval logic
  • 🧩 Seamless integration with Filament Actions and Forms
  • 🎨 Customize icons, labels, tooltips, colors per status
  • 🛡️ Control button visibility and approval flow states based on business logic
  • 🔔 Built-in confirmation prompts and notifications
  • 🧱 Fully expandable

#Versions

Filament Version Package Version
3.x ^1.0.0
4.x ^2.0.0
5.x ---

#Documentation

You can find the full documentation here.


#Preview

(The lower section are the Approvals)


#Installation

You can install the package via composer:

composer require ffhs/filament-package_ffhs_approvals  

You can publish the config file with:

php artisan vendor:publish --tag="filament-package_ffhs_approvals-config"  

You can publish and run the migrations with:

php artisan vendor:publish --tag="filament-package_ffhs_approvals-migrations"  
php artisan migrate  

#Usage

#1. Define Approval Status Enum

Create a PHP Enum implementing HasApprovalStatuses:

use Ffhs\Approvals\Contracts\HasApprovalStatuses;  
  
enum MyApprovalStatus: string  implements HasApprovalStatuses  
{  
    case APPROVED = 'approved';  
    case INCOMPLETE = 'incomplete';  
    case DENIED = 'denied';  
  
    public static function getApprovedStatuses(): array  
    {  
        return [self::APPROVED];  
    }  
  
    public static function getDeniedStatuses(): array  
    {  
        return [self::DENIED];  
    }  
  
    public static function getPendingStatuses(): array  
    {  
        return [self::INCOMPLETE];  
    }  
}

#2. Define Approval Flow in Model

Implement Approvable and use the HasApprovals trait:

namespace App\Models;

class MyModel extends Model implements Approvable{
	use HasApprovals;

	public function getApprovalFlows(): array  
	{
		return [
			'management_approved' => SimpleApprovalFlow::make()
				->approvalStatus(ApplicationApprovalStatus::cases())
				->aprovalBy([
					SimpleApprovalBy::make('employee')
						->any(),
						
					SimpleApprovalBy::make('manager')
						->permission('can_approve_for_manager'),
						
					SimpleApprovalBy::make('hr')
						->role('hr_role')
						->atLeast(2)
					
				])
		];
	}
}

#3. Basic Filament Action Usage

Render the approval action in your Filament resource or view:

// MyModelView.php

ApprovalActions::make('managment_aproved')

#Testing

composer install  
./vendor/bin/testbench vendor:publish --tag="filament-package_ffhs_custom_forms-migrations"    
./vendor/bin/testbench workbench:build  
./vendor/bin/pest test    

#Credits


#License

The MIT License (MIT). Please see License File for more information.

The author

FFHS IT avatar Author: FFHS IT

With over 25 years of experience in distance learning, we are Switzerland's leading e-university and an alternative for students who want to combine work, family, and study.

Plugins
2
Stars
39

From the same author