Livewire ile crud işlemlerimi yapıyorum, JetStream Teams özelliğini kullanıyorum. Kullanıcı bir ekibin içindeyse, o ekiple ilgili crud işlemlerini yapabiliyor.
Başka bir ekip ekranında kullanıcı sağ tık incele yaptıktan sonra update(3) 3 idsi yerine başka birine ait olan update(6) şeklinde kodu düzenleyip fonksiyonu çalıştırınca kendisine ait olmayan bir veriyi düzenleyebiliyor ya da silebiliyor.
Listelemeyi yapabilmek için bir middleware yaptım, bu middleware içinde kullanıcının kendi ekibine ait olmayan veriyi düzenlemesini ve silmesini engelleyebilir miyim?
CurrentTeam middleware ile Brand::all() ile her ekibin kendine ait tüm veriyi çekiyorum, kendine ait olmayan verilerde 403 e düşürmesini istiyorum.
public function handle(Request $request, Closure $next)
{
if (Auth::user()) {
$id = Auth::user()->currentTeam->id;
Brand::addGlobalScope(function ($builder) use ($id) {
$builder->whereTeamId($id);
});
}
return $next($request);
}
GÜNCELLEME
Veriyi çektiğim fonksiyonda sadece find kullanıyordum ekrana hata basıyordu id takıma ait değilse. Şimdi findOrFail ile değiştirdim. 404 basıyor. Kullanımım doğru mudur?
public function loadModel() {
$brand = Brand::findOrFail($this->modelId);
$this->name = $brand->name;
}