https://github.com/alphaolomi/laravel-approvals
Laravel Approvals is a package that allows you to approve Eloquent models.
https://github.com/alphaolomi/laravel-approvals
approval-process laravel workflow
Last synced: about 1 year ago
JSON representation
Laravel Approvals is a package that allows you to approve Eloquent models.
- Host: GitHub
- URL: https://github.com/alphaolomi/laravel-approvals
- Owner: alphaolomi
- License: mit
- Created: 2023-07-15T21:55:46.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-29T13:54:32.000Z (about 2 years ago)
- Last Synced: 2024-05-21T05:14:16.995Z (about 2 years ago)
- Topics: approval-process, laravel, workflow
- Language: PHP
- Homepage: https://alphaolomi.github.io/laravel-approvals/
- Size: 39.1 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Laravel Approvals
[](https://packagist.org/packages/alphaolomi/laravel-approvals)
[](https://github.com/alphaolomi/laravel-approvals/actions?query=workflow%3Arun-tests+branch%3Amain)
[](https://github.com/alphaolomi/laravel-approvals/actions?query=workflow%3A"Fix+PHP+code+style+issues"+branch%3Amain)
[](https://packagist.org/packages/alphaolomi/laravel-approvals)
## Installation
You can install the package via composer:
```bash
composer require alphaolomi/laravel-approvals
```
You can publish and run the migrations with:
```bash
php artisan vendor:publish --tag="laravel-approvals-migrations"
php artisan migrate
```
You can publish the config file with:
```bash
php artisan vendor:publish --tag="laravel-approvals-config"
```
## Usage
```php
$project = Project::find(1);
// Approve a project
$project->approve('project-submitted', auth()->user());
// Check if a project is approved
$project->isApproved('project-submitted'); // true
$project->isApproved('project-submitted', auth()->user()); // true
// Check if a project is approved by a specific user
$project->isApproved('project-submitted', User::find(2)); // false
$admin = User::find(2);
// Now approve the project by an admin
$project->approve('project-approved', $admin);
// Check if a project is approved
$project->isApproved('project-approved'); // true
```
Using the facade
```php
use Alphaolomi\LaravelApprovals\Facades\Approvals;
$project = Project::find(1);
// Approve a project
Approvals::approve($project, 'project-submitted', auth()->user());
// Get all approvals for a project
$allProjectApprovals = Approvals::all($project);
// Get all approvals
$allApprovals = Approvals::allApprovals();
```
## Testing
Project is tested with [pest](https://pestphp.com/).
```bash
composer test
```
## Versioning
Project follows [RomVer](https://github.com/romversioning/romver) for versioning. For the versions available, see the [tags on this repository](../../tags).
## Changelog
Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) for details.
## Security Vulnerabilities
Please review [our security policy](../../security/policy) on how to report security vulnerabilities.
## Credits
- [Alpha Olomi](https://github.com/alphaolomi)
- [All Contributors](../../contributors)
## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.