Added the support for generating docs from template doc

This commit is contained in:
Simon Pocrnjič
2025-10-06 21:46:28 +02:00
parent 0c8d1e0b5d
commit cec5796acf
69 changed files with 4570 additions and 374 deletions
+46
View File
@@ -0,0 +1,46 @@
<?php
namespace App\Providers;
use App\Models\User;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Gate;
class AuthServiceProvider extends ServiceProvider
{
protected $policies = [
// 'App\Models\Model' => 'App\Policies\ModelPolicy',
];
public function boot(): void
{
$this->registerPolicies();
// Fallback: map generic CRUD abilities to permission slugs directly
foreach (['create', 'read', 'update', 'delete'] as $ability) {
Gate::define($ability, function (User $user) use ($ability): bool {
return $user->hasPermission($ability) || $user->hasRole('admin');
});
}
// More specific examples
Gate::define('manage-settings', function (User $user): bool {
return $user->hasPermission('manage-settings') || $user->hasRole('admin');
});
Gate::define('manage-imports', function (User $user): bool {
return $user->hasPermission('manage-imports') || $user->hasRole('admin');
});
Gate::define('manage-document-templates', function (User $user): bool {
return $user->hasPermission('manage-document-templates') || $user->hasRole('admin');
});
// Global override for admin role
Gate::before(function (User $user, string $ability) {
if ($user->hasRole('admin')) {
return true;
}
return null; // fall through
});
}
}
+16
View File
@@ -0,0 +1,16 @@
<?php
namespace App\Providers;
use App\Events\DocumentGenerated;
use App\Listeners\LogDocumentGenerated;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider
{
protected $listen = [
DocumentGenerated::class => [
LogDocumentGenerated::class,
],
];
}