From 937100e9bb2a2f5ab035e283e01e6d96e569ee51 Mon Sep 17 00:00:00 2001 From: marvin-borner@live.com Date: Sat, 14 Apr 2018 21:01:44 +0200 Subject: Added login things --- .../src/Http/Concerns/DeterminesContentType.php | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100755 login/app/sprinkles/core/src/Http/Concerns/DeterminesContentType.php (limited to 'login/app/sprinkles/core/src/Http') diff --git a/login/app/sprinkles/core/src/Http/Concerns/DeterminesContentType.php b/login/app/sprinkles/core/src/Http/Concerns/DeterminesContentType.php new file mode 100755 index 0000000..e963afa --- /dev/null +++ b/login/app/sprinkles/core/src/Http/Concerns/DeterminesContentType.php @@ -0,0 +1,76 @@ +isXhr()) { + return 'text/html'; + } + + $acceptHeader = $request->getHeaderLine('Accept'); + $selectedContentTypes = array_intersect(explode(',', $acceptHeader), $this->knownContentTypes); + $count = count($selectedContentTypes); + + if ($count) { + $current = current($selectedContentTypes); + + /** + * Ensure other supported content types take precedence over text/plain + * when multiple content types are provided via Accept header. + */ + if ($current === 'text/plain' && $count > 1) { + return next($selectedContentTypes); + } + + return $current; + } + + if (preg_match('/\+(json|xml)/', $acceptHeader, $matches)) { + $mediaType = 'application/' . $matches[1]; + if (in_array($mediaType, $this->knownContentTypes)) { + return $mediaType; + } + } + + return 'text/html'; + } +} -- cgit v1.2.3