user(); $teamId = $request->header('X-Canvas-Team'); if (! $user) { return response()->json(['message' => 'Unauthenticated.'], 401); } if (! is_string($teamId) || ! ctype_digit($teamId)) { return response()->json(['message' => 'Missing canvas team.'], 400); } $teamId = (int) $teamId; $abilities = $user->isAdminOfTeam($teamId) ? ['read', 'write', 'deploy', 'read:sensitive'] : ['read']; $token = new PersonalAccessToken; $token->forceFill([ 'name' => 'deploy-canvas-session', 'team_id' => $teamId, 'abilities' => $abilities, ]); $user->withAccessToken($token); return $next($request); } }