Laravel "This action is unauthorized" hatası

Laravel projemde bazı sayfaları yetkilendirmek istiyorum. Bunun için policy kullandım. Eğer yetki varsa normal bir şekilde sayfa görüntüleniyor. Ancak yetkinin olmadığı kısımda laravelin hata sayfasında "This action is unauthorized" bu uyarıyı veriyor. Bu sayfa için yetkimin olmadığını söylüyor. Eğer yetki yoksa kullanıcıyı, yetkiniz yok sayfasına yönlendirmek istiyorum. Nasıl yapabilirim.

PostPolicy.php

<?php

namespace App\Policies;

use App\User;
use Illuminate\Auth\Access\HandlesAuthorization;

class PostPolicy
{
    use HandlesAuthorization;

    /**
     * Create a new policy instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    public function create(User $user)
    {
        return $user->hasRole(['admin','member']);
    }

}

AuthServiceProvider.php

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;

class AuthServiceProvider extends ServiceProvider
{
    /**
     * The policy mappings for the application.
     *
     * @var array
     */
    protected $policies = [
        'App\Post' => 'App\Policies\PostPolicy',

    ];

    /**
     * Register any authentication / authorization services.
     *
     * @return void
     */
    public function boot()
    {
        $this->registerPolicies();

    }
}

Kısıtlamanın olacağı fonksiyona da

$this->authorize('create', 'App\Post');

Bu fonksiyonu kullandım. Bu fonksiyondan geriye bir değer dönmediği için istediğimi yapamadım.

Şimdiden teşekkürler.


Mahmut Mahmut Yeni Üye Tarih: 19.06.2018 Kategori: BackEnd

"This action is unauthorized" hatası geriye 403 hata kodunu göndererek size uyarı verir. Bu sayede  403 hata kodu oluşan sayfalarınızı yönlendirmek için projenizin

resources > views > errors

klasörüne "403.blade.php" dosya adıyla yeni bir sayfa oluşturun ve sayfanızı özelleştirin. Artık projenizdeki tüm 403 hata kodu ile dönen sayfalarınız, bu sayfaya yönlenecektir.

İyi çalışmalar.


Mehmet AYHAN Mehmet AYHAN Yeni Üye Tarih: 19.06.2018