From d612aeec2d7990463ae396c8690d1cd91f809531 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Julius=20H=C3=A4rtl?= <jus@bitgrid.net>
Date: Tue, 3 Mar 2020 17:19:34 +0100
Subject: [PATCH] Fix regex to not take email uids as federated ids
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Julius Härtl <jus@bitgrid.net>
---
 apps/files_sharing/src/share.js | 41 ++++++++++++++++-----------------
 1 file changed, 20 insertions(+), 21 deletions(-)

diff --git a/apps/files_sharing/src/share.js b/apps/files_sharing/src/share.js
index 79dfe4a174f..efd1be00ab7 100644
--- a/apps/files_sharing/src/share.js
+++ b/apps/files_sharing/src/share.js
@@ -25,13 +25,14 @@
 	 * @namespace
 	 */
 	OCA.Sharing.Util = {
-	
-		/**	
-		 * Regular expression for splitting parts of remote share owners:	
-		 * "user@example.com/path/to/owncloud"	
-		 * "user@anotherexample.com@example.com/path/to/owncloud	
-		 */	
-		_REMOTE_OWNER_REGEXP: new RegExp('^([^@]*)@(([^@]*)@)?([^/]*)([/](.*)?)?$'),
+
+		/**
+		 * Regular expression for splitting parts of remote share owners:
+		 * "user@example.com/"
+		 * "user@example.com/path/to/owncloud"
+		 * "user@anotherexample.com@example.com/path/to/owncloud
+		 */
+		_REMOTE_OWNER_REGEXP: new RegExp('^(([^@]*)@(([^@^/^\\s]*)@)?)([^[\\s/]*)([/](.*))?$'),
 
 		/**
 		 * Initialize the sharing plugin.
@@ -350,26 +351,24 @@
 		*/	
 		_formatRemoteShare: function(shareWith, shareWithDisplayName, message) {	
 			var parts = OCA.Sharing.Util._REMOTE_OWNER_REGEXP.exec(shareWith)	
-			if (!parts) {	
+			if (!parts || !parts[6]) {
 				// display avatar of the user	
 				var avatar = '<span class="avatar" data-username="' + escapeHTML(shareWith) + '" title="' + message + ' ' + escapeHTML(shareWithDisplayName) + '"></span>'	
 				var hidden = '<span class="hidden-visually">' + message + ' ' + escapeHTML(shareWithDisplayName) + '</span> '	
 				return avatar + hidden	
 			}	
 
-			var userName = parts[1]	
-			var userDomain = parts[3]	
-			var server = parts[4]	
-			var tooltip = message + ' ' + userName	
-			if (userDomain) {	
-				tooltip += '@' + userDomain	
-			}	
-			if (server) {	
-				if (!userDomain) {	
-					userDomain = '…'	
-				}	
-				tooltip += '@' + server	
-			}	
+			var userName = parts[2]
+			var userDomain = parts[4]
+			var server = parts[5]
+
+			var tooltip = message + ' ' + userName
+			if (userDomain) {
+				tooltip += '@' + userDomain
+			}
+			if (server) {
+				tooltip += '@' + server
+			}
 
 			var html = '<span class="remoteAddress" title="' + escapeHTML(tooltip) + '">'	
 			html += '<span class="username">' + escapeHTML(userName) + '</span>'	
-- 
GitLab