From 1db06a5386790a792b6900e7250a496f8a140da1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20J=C3=A4gle?= Date: Thu, 19 Sep 2019 02:18:20 +0200 Subject: [PATCH] [NEW] Guess a user's name from SAML credentials (#15240) * Determine a user's name from SAML username * Determine name only if username exists --- app/meteor-accounts-saml/server/saml_server.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/meteor-accounts-saml/server/saml_server.js b/app/meteor-accounts-saml/server/saml_server.js index 1c13ebe75476..c112d452650a 100644 --- a/app/meteor-accounts-saml/server/saml_server.js +++ b/app/meteor-accounts-saml/server/saml_server.js @@ -105,6 +105,13 @@ Accounts.normalizeUsername = function(name) { return name; }; +const guessNameFromUsername = (username) => + username + .replace(/\W/g, ' ') + .replace(/\s(.)/g, (u) => u.toUpperCase()) + .replace(/^(.)/, (u) => u.toLowerCase()) + .replace(/^\w/, (u) => u.toUpperCase()); + Accounts.registerLoginHandler(function(loginRequest) { if (!loginRequest.saml || !loginRequest.credentialToken) { return undefined; @@ -185,6 +192,7 @@ Accounts.registerLoginHandler(function(loginRequest) { if (username) { newUser.username = username; + newUser.name = newUser.name || guessNameFromUsername(username); } const userId = Accounts.insertUserDoc({}, newUser);