From 88994890bd34b3ebd62d64a029149db884154b66 Mon Sep 17 00:00:00 2001
From: Daniel Gerhardt <code@dgerhardt.net>
Date: Fri, 6 Jul 2018 14:20:24 +0200
Subject: [PATCH] Use id instead of link to identify Facebook users

The link property of Facebook Oauth profiles no longer has a consistent
value across logins and will be completly removed in future versions of
Facebook's Graph API.

We generate a link in the old format from the id for backwards
compatibility.
---
 src/main/java/de/thm/arsnova/entities/User.java | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/main/java/de/thm/arsnova/entities/User.java b/src/main/java/de/thm/arsnova/entities/User.java
index ebfd16b67..a96aa9703 100644
--- a/src/main/java/de/thm/arsnova/entities/User.java
+++ b/src/main/java/de/thm/arsnova/entities/User.java
@@ -40,6 +40,8 @@ public class User implements Serializable {
 	public static final String ANONYMOUS = "anonymous";
 	public static final String GUEST = "guest";
 
+	public static final String FACEBOOK_LINK_PATTERN = "https://www.facebook.com/app_scoped_user_id/%s/";
+
 	private static final long serialVersionUID = 1L;
 	private String username;
 	private String type;
@@ -57,7 +59,8 @@ public class User implements Serializable {
 	}
 
 	public User(FacebookProfile profile) {
-		setUsername(profile.getProfileUrl().toString());
+		/* A URL is built for backwards compatibility. */
+		setUsername(String.format(FACEBOOK_LINK_PATTERN, profile.getId()));
 		setType(User.FACEBOOK);
 	}
 
-- 
GitLab