- Added database migrations for tickets, statuses, roles, users, and related associations. - Introduced models and enums for ticket status, permissions, and notifications. - Implemented `TicketService` for ticket management and notification handling. - Created Livewire form and UI for raising tickets with file attachments and routing options. - Added tests covering ticket creation, validation, notifications, and file uploads.
35 lines
1014 B
PHP
35 lines
1014 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Enums\DefaultUserRole;
|
|
use App\Enums\Permissions\{ProfilePermissionEnum, SecurityPermissionEnum, TicketPermissionEnum};
|
|
use App\Models\Role;
|
|
use Illuminate\Database\Seeder;
|
|
use Spatie\Permission\Models\Permission;
|
|
|
|
class DefaultRoleWithPermissionSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
$role = Role::findOrCreate(DefaultUserRole::Admin->value);
|
|
$role->update(['priority' => 0]);
|
|
$role->givePermissionTo(Permission::all());
|
|
$role = Role::findOrCreate(DefaultUserRole::User->value);
|
|
$role->update(['priority' => 100]);
|
|
$this->syncUserPermissions($role);
|
|
}
|
|
|
|
private function syncUserPermissions(Role $role): void
|
|
{
|
|
$role->givePermissionTo(
|
|
ProfilePermissionEnum::Access->value,
|
|
SecurityPermissionEnum::Access->value,
|
|
TicketPermissionEnum::Access->value,
|
|
TicketPermissionEnum::Create->value
|
|
);
|
|
}
|
|
}
|