Quellcode durchsuchen

Use device name as user agent for login flow

Make sure the user agent is ascii encoded.
Will be shown when logging in, granting access and in /settings/user/security
Use ONLY for login flow, when user agent is saved to DB. For API requests always use `getUserAgent()`

Signed-off-by: Henrik Storch <henrik.storch@nextcloud.com>
Henrik Storch vor 3 Jahren
Ursprung
Commit
8cea15291c
1 geänderte Dateien mit 8 neuen und 3 gelöschten Zeilen
  1. 8 3
      iOSClient/Login/NCLoginWeb.swift

+ 8 - 3
iOSClient/Login/NCLoginWeb.swift

@@ -106,12 +106,17 @@ class NCLoginWeb: UIViewController {
         
         let language = NSLocale.preferredLanguages[0] as String
         var request = URLRequest(url: url)
-        let userAgent = CCUtility.getUserAgent()
+
+        if let deviceName = "\(UIDevice.current.name) (\(NCBrandOptions.shared.brand) iOS)".cString(using: .utf8),
+            let deviceUserAgent = String(cString: deviceName, encoding: .ascii) {
+            webView.customUserAgent = deviceUserAgent
+        } else {
+            webView.customUserAgent = CCUtility.getUserAgent()
+        }
 
         request.addValue("true", forHTTPHeaderField: "OCS-APIRequest")
         request.addValue(language, forHTTPHeaderField: "Accept-Language")
-        
-        webView.customUserAgent = userAgent
+
         webView.load(request)
     }