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:
92
app/Policies/ActivityPolicy.php
Normal file
92
app/Policies/ActivityPolicy.php
Normal 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']);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user