7

Kullanıcının güncelleme yapmaya yetkili olup olmadığını kontrol etmek için İstek sınıfında aşağıdaki kodu kullanıyorum. Varsayılan olarak varsayılan mesaj verirİstek sınıfındaki yöntemi, HandlesAuthorization özelliği için özelleştirilmiş iletiye geri döndürebilir mi?

. Özelleştirilmiş iletiyi döndürmenin herhangi bir yolu var mı? Yetkilendirme yöntemini Request class'da yalnızca return boolean değerinde görebiliyorum.

class UpdateRoleRequest extends Request 
{ 
    private $UserPermissionsSession; 

    public function __construct(IRole $Role) { 
     $this->UserPermissionsSession = new UserPermissionsSession(); 
    } 

    public function authorize() { 
     $UserID = \Auth::user()->UserID; 
     return $this->UserPermissionsSession->CheckPermissionExists($UserID); 
    } 

} 
+0

istek üzerine failedAuthorization yöntemi uygulayabilirsiniz:

/** * Handle a failed authorization attempt. * * @return void * * @throws \Illuminate\Auth\Access\AuthorizationException */ protected function failedAuthorization() { throw new AuthorizationException('This action is unauthorized.'); } 

yüzden tek ihtiyacınız böyle örnek için UpdateRoleRequest sınıfında bu yöntemi geçersiz kılmak için ise – honarkhah

cevap

2

HandlesAuthorization özelliğine bakmamalısınız. Tek yapmanız gereken, istek sınıfınızda failedAuthorization yöntemini uygulamaktır.

FormRequest sınıfında böyle tanımladı:

protected function failedAuthorization() 
{ 
    throw new \Illuminate\Auth\Access\AuthorizationException('User has to be an admin.'); 
}