Я хочу авторизовать пользователей с ролью продавца. Как предоставить политику «продавцам», чтобы продавцы не могли читать данные заказов от других продавцов.
Моя таблица заказов связана с таблицей 4. Вот мои заказы Диаграмма
Модель заказа [Order.php]
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Order extends Model
{
public function items()
{
return $this->belongsToMany(Product::class, 'order_items','order_id','product_id')->withPivot('quantity','price');
}
public function user()
{
return $this->belongsTo(User::class);
}
}
Политика заказа [OrderPolicy.php]
<?php
namespace App\Policies;
use App\User;
use App\Order;
use Illuminate\Auth\Access\HandlesAuthorization;
class OrderPolicy
{
use HandlesAuthorization;
public function before($user, $ability)
{
if ($user->hasRole('admin')) {
return true;
}
}
public function browse(User $user)
{
return $user->hasRole('seller');
}
public function read(User $user, Order $order)
{
if(empty($order-> )) {
return false;
}
return $user->id == $order-> ;
}
}