diff --git a/backend/src/serverless/microservices/python/crowd-backend/crowd/backend/models/member.py b/backend/src/serverless/microservices/python/crowd-backend/crowd/backend/models/member.py index b4ac0afc89..7c4c6341d5 100644 --- a/backend/src/serverless/microservices/python/crowd-backend/crowd/backend/models/member.py +++ b/backend/src/serverless/microservices/python/crowd-backend/crowd/backend/models/member.py @@ -1,4 +1,4 @@ -from sqlalchemy import Column, String, DateTime, ForeignKey, Integer, Table +from sqlalchemy import Column, String, DateTime, ForeignKey, Integer, Table, ARRAY from .base import Base from sqlalchemy.orm import relationship, validates from sqlalchemy.dialects.postgresql import JSONB, UUID @@ -32,7 +32,7 @@ class Member(Base): username = Column(JSONB, nullable=False) displayName = Column(String, nullable=True) attributes = Column(JSONB, default={}) - email = Column(String) + emails = Column(ARRAY(String)) score = Column(Integer, default=-1) joinedAt = Column(DateTime, nullable=False) importHash = Column(String, nullable=True) diff --git a/backend/src/serverless/microservices/python/crowd-backend/crowd/backend/repository/keys.py b/backend/src/serverless/microservices/python/crowd-backend/crowd/backend/repository/keys.py index a9064f2117..b81e8ad33a 100644 --- a/backend/src/serverless/microservices/python/crowd-backend/crowd/backend/repository/keys.py +++ b/backend/src/serverless/microservices/python/crowd-backend/crowd/backend/repository/keys.py @@ -27,7 +27,7 @@ class DBKeys: MEMBERS = "members" MEMBER = "member" SCORE = "score" - EMAIL = "email" + EMAILS = "emails" TO_MERGE = "membersToMerge" CROWD_USERNAME = "crowdUsername" NO_MERGE = "noMerge" diff --git a/backend/src/serverless/microservices/python/crowd-backend/crowd/backend/repository/repository.py b/backend/src/serverless/microservices/python/crowd-backend/crowd/backend/repository/repository.py index a682a7e008..41f0dae46a 100644 --- a/backend/src/serverless/microservices/python/crowd-backend/crowd/backend/repository/repository.py +++ b/backend/src/serverless/microservices/python/crowd-backend/crowd/backend/repository/repository.py @@ -143,7 +143,7 @@ def find_by_id(self, table, id): def find_all_usernames(self): with self.engine.connect() as con: return con.execute( - f"""SELECT "id", "username", "displayName", "email" from "members" WHERE "tenantId" = '{self.tenant_id}'""").fetchall() + f"""SELECT "id", "username", "displayName", "emails" from "members" WHERE "tenantId" = '{self.tenant_id}'""").fetchall() def find_all( self, table, ignore_tenant: "bool" = False, query: "dict" = None, order: "dict" = None diff --git a/backend/src/serverless/microservices/python/crowd-check-merge-members/crowd/check_merge_members/merge_suggestions.py b/backend/src/serverless/microservices/python/crowd-check-merge-members/crowd/check_merge_members/merge_suggestions.py index 69ea5a40f3..d1403c3aed 100644 --- a/backend/src/serverless/microservices/python/crowd-check-merge-members/crowd/check_merge_members/merge_suggestions.py +++ b/backend/src/serverless/microservices/python/crowd-check-merge-members/crowd/check_merge_members/merge_suggestions.py @@ -167,10 +167,10 @@ def find_similar_member(self, member, comparison, same_platform=False): member.username['displayNameMember1'] = member.displayName members[i].username['displayNameMember2'] = members[i].displayName - if member.email: - member.username['email'] = member.email - if members[i].email: - members[i].username['email'] = members[i].email + if len(member.emails) > 0 and len(member.emails[0]) > 0: + member.username['email'] = member.emails[0] + if len(members[i].emails) > 0 and len(members[i].emails[0]) > 0: + members[i].username['email'] = members[i].emails[0] # Go through all platform usernames member_platforms = set(member.username)