Add bokshorn-it/filament-activity-timeline package for enhanced audit logging functionality. Update README to reflect new key package and improve localization for audit-related terms. Remove deprecated ActivityLogResource and related pages, integrating activity timeline features into existing resources. Update models to implement ProvidesActivityTitle for better activity tracking.

This commit is contained in:
Mekan1206
2026-08-02 22:37:59 +05:00
parent 0237c2b9ef
commit 3504e39646
46 changed files with 472 additions and 314 deletions

View File

@@ -0,0 +1,92 @@
<?php
declare(strict_types=1);
namespace App\Policies;
use App\Models\User;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
use Spatie\Activitylog\Models\Activity;
class ActivityPolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $user): bool
{
if ($this->canAccessAuditLog($user)) {
return true;
}
return $user->can('ViewAny:Activity');
}
public function view(AuthUser $user, Activity $activity): bool
{
if ($this->canAccessAuditLog($user)) {
return true;
}
return $user->can('View:Activity');
}
public function create(AuthUser $user): bool
{
return false;
}
public function update(AuthUser $user, Activity $activity): bool
{
return false;
}
public function delete(AuthUser $user, Activity $activity): bool
{
return false;
}
public function deleteAny(AuthUser $user): bool
{
return false;
}
public function forceDelete(AuthUser $user, Activity $activity): bool
{
return false;
}
public function forceDeleteAny(AuthUser $user): bool
{
return false;
}
public function restore(AuthUser $user, Activity $activity): bool
{
return false;
}
public function restoreAny(AuthUser $user): bool
{
return false;
}
public function replicate(AuthUser $user, Activity $activity): bool
{
return false;
}
public function reorder(AuthUser $user): bool
{
return false;
}
protected function canAccessAuditLog(AuthUser $user): bool
{
if (! $user instanceof User) {
return false;
}
return $user->hasRole(['super_admin', 'administrator', 'hr_manager']);
}
}