93 lines
1.8 KiB
PHP
93 lines
1.8 KiB
PHP
<?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']);
|
|
}
|
|
}
|