CRM/backend/app/Policies/CallPolicy.php

37 خطوط
964 B
PHP

<?php
namespace App\Policies;
use App\Models\Call;
use App\Models\Lead;
use App\Models\User;
use App\Support\AccessControl;
class CallPolicy
{
public function viewAny(User $user): bool
{
return $user->hasRole('admin') || $user->can('view_all_calls') || $user->can('view_team_calls') || $user->can('view_own_calls');
}
public function view(User $user, Call $call): bool
{
return AccessControl::canAccessCall($user, $call);
}
public function create(User $user, Lead $lead): bool
{
return AccessControl::canAccessLead($user, $lead, allowUnassignedClaim: true);
}
public function registerResult(User $user, Call $call): bool
{
return AccessControl::canAccessCall($user, $call);
}
public function viewRecording(User $user, Call $call): bool
{
return AccessControl::canAccessCall($user, $call) && ($user->hasRole('admin') || $user->can('listen_recordings'));
}
}