I need to check if a user has been accepted into the application (not simply authenticated) before allowing them access into a route group.
I have a middleware for this:
public function handle($request, Closure $next)
{
if(!$request->user()->applicationAccepted() ){
return redirect('/application/status');
}
return $next($request);
}
My problem is I want administrators, who don't have applications to accept, to be allowed into this section. That is, they shouldn't see application/status
.
My user model:
public function application()
{
return $this->hasOne('App\Models\Application','user_id');
}
public function applicationAccepted()
{
if($this->isAdmin){ //adminscansneakbywithoutapplications
return true;
}
return $this->application->accepted;
}
public function isAdmin(){
return $this->hasOne('App\Models\Admin','user_id');
}
My problem is applicationAccepted()
always stops the admins, even those who do have a isAdmin()
relation. What is the proper way to query this hasOne
relation within the very same user model?
Thank you.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire