I have the following code in Request class to check if the user is authorized to perform update.
HandlesAuthorization trait
, by default gives default message. Is there any way to return customized message? I saw the authorize method in Request class
can return boolean
value only.
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);
}
}
I believe you shouldn't look at HandlesAuthorization
trait. All you need to do is implementing failedAuthorization
method in your request class.
In FormRequest
class it's defined like this:
/**
* Handle a failed authorization attempt.
*
* @return void
*
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
protected function failedAuthorization()
{
throw new AuthorizationException('This action is unauthorized.');
}
so all you need is to override this method in your UpdateRoleRequest
class for example like this:
protected function failedAuthorization()
{
throw new \Illuminate\Auth\Access\AuthorizationException('User has to be an admin.');
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With