From 0c8cddfef12d4d1a564a40f2099edbce915f95eb Mon Sep 17 00:00:00 2001 From: Max Wofford Date: Fri, 7 Mar 2025 18:59:13 -0500 Subject: [PATCH] Fix slack signin after email address update --- app/models/user.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index 4ede2b9..7f96ea7 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -145,13 +145,19 @@ class User < ApplicationRecord return nil unless user_data["ok"] user = find_or_initialize_by(slack_uid: data.dig("authed_user", "id")) - user.email = user_data.dig("user", "profile", "email") user.username = user_data.dig("user", "profile", "username") user.username ||= user_data.dig("user", "profile", "display_name_normalized") user.avatar_url = user_data.dig("user", "profile", "image_192") || user_data.dig("user", "profile", "image_72") # Store the OAuth data user.slack_access_token = data["authed_user"]["access_token"] user.slack_scopes = data["authed_user"]["scope"]&.split(/,\s*/) + + # Handle email address + if email = user_data.dig("user", "profile", "email") + # Find or create email address record + user.email_addresses.find_or_initialize_by(email: email) + end + user.save! user rescue => e