diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/HttpServer/Security/AuthorizationContext.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/HttpServer/Security/AuthorizationContext.cs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Implementations/HttpServer/Security/AuthorizationContext.cs b/MediaBrowser.Server.Implementations/HttpServer/Security/AuthorizationContext.cs index 925eb6a86..3cc703bbf 100644 --- a/MediaBrowser.Server.Implementations/HttpServer/Security/AuthorizationContext.cs +++ b/MediaBrowser.Server.Implementations/HttpServer/Security/AuthorizationContext.cs @@ -43,6 +43,47 @@ namespace MediaBrowser.Server.Implementations.HttpServer.Security token = httpReq.QueryString["api_key"]; } + // Hack until iOS is updated + // TODO: Remove + if (string.IsNullOrWhiteSpace(client)) + { + var userAgent = httpReq.Headers["User-Agent"] ?? string.Empty; + + if (userAgent.IndexOf("mediabrowserios", StringComparison.OrdinalIgnoreCase) != -1 || + userAgent.IndexOf("iphone", StringComparison.OrdinalIgnoreCase) != -1 || + userAgent.IndexOf("ipad", StringComparison.OrdinalIgnoreCase) != -1) + { + client = "iOS"; + } + + else if (userAgent.IndexOf("crKey", StringComparison.OrdinalIgnoreCase) != -1) + { + client = "Chromecast"; + } + } + + // Hack until iOS is updated + // TODO: Remove + if (string.IsNullOrWhiteSpace(device)) + { + var userAgent = httpReq.Headers["User-Agent"] ?? string.Empty; + + if (userAgent.IndexOf("iPhone", StringComparison.OrdinalIgnoreCase) != -1) + { + device = "iPhone"; + } + + else if (userAgent.IndexOf("iPad", StringComparison.OrdinalIgnoreCase) != -1) + { + device = "iPad"; + } + + else if (userAgent.IndexOf("crKey", StringComparison.OrdinalIgnoreCase) != -1) + { + device = "Chromecast"; + } + } + return new AuthorizationInfo { Client = client, |
