From c9a554bdca5ebf592d298af1225cab6c9eb457a0 Mon Sep 17 00:00:00 2001 From: Marcel Hellkamp Date: Mon, 12 May 2025 17:51:53 +0200 Subject: [PATCH] fix: OIDC account creation fails for long display names (#34639) --- app/models/concerns/user/omniauthable.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/models/concerns/user/omniauthable.rb b/app/models/concerns/user/omniauthable.rb index 396a0598f8..bf85885f44 100644 --- a/app/models/concerns/user/omniauthable.rb +++ b/app/models/concerns/user/omniauthable.rb @@ -99,7 +99,7 @@ module User::Omniauthable external: true, account_attributes: { username: ensure_unique_username(ensure_valid_username(auth.uid)), - display_name: auth.info.full_name || auth.info.name || [auth.info.first_name, auth.info.last_name].join(' '), + display_name: display_name_from_auth(auth), }, } end @@ -121,5 +121,10 @@ module User::Omniauthable temp_username = starting_username.gsub(/[^a-z0-9_]+/i, '') temp_username.truncate(30, omission: '') end + + def display_name_from_auth(auth) + display_name = auth.info.full_name || auth.info.name || [auth.info.first_name, auth.info.last_name].join(' ') + display_name.truncate(Account::DISPLAY_NAME_LENGTH_LIMIT, omission: '') + end end end