Я использую Laravel-8, laravel-passport и spatie-permission для спокойного API. У меня уже есть этот код в контроллере.
У меня есть этот контроллер для администратора:
public function adminLogin(Request $request)
{
if(Auth::attempt(['email' => $request->email, 'password' => $request->password])){
$user = Auth::user();
$success['token'] = $user->createToken('MyApp')-> accessToken;
$success['name'] = $user->name;
return $this->sendResponse($success, 'User login successfully.');
}
else{
return $this->sendError('Unauthorised.', ['error'=>'Unauthorised']);
}
}
Я хочу, чтобы только «Суперадминистратор» мог использовать контроллер администратора для входа в систему. Если это не «Суперадминистратор», это должно означать, что он не авторизован.
Как мне включить приведенный ниже код в то, что у меня уже есть выше, или любым другим способом?
if($user->hasRole('Super Admin'))
$res = User::with(['roles', 'employee', 'company'])->find($user->id);
else
$res = User::with('roles')->find($user->id);