clrghouz/app/Policies/NetmailPolicy.php

35 lines
720 B
PHP

<?php
namespace App\Policies;
use Illuminate\Auth\Access\HandlesAuthorization;
use App\Models\{Netmail,User};
class NetmailPolicy
{
use HandlesAuthorization;
/**
* This determines whether a logged-in user can view a netmail
*
* @param User $user
* @param Netmail $o
* @return bool
*/
public function view(User $user, Netmail $o): bool
{
$zones = $user->zc()->pluck('zone')
//->merge($user->rc()->pluck('zone'))
//->merge($user->nc()->pluck('zone'))
//->merge($user->hub()->pluck('zone'))
->merge($user->points()->pluck('zone'));
// Site Admins can always view
return (
$user->isAdmin()
|| ($zones->contains($o->fftn->zone))
|| ($zones->contains($o->tftn->zone))
);
}
}