diff --git a/packages/features/ee/organizations/lib/server/orgCreationUtils.test.ts b/packages/features/ee/organizations/lib/server/orgCreationUtils.test.ts index 40c315d4b2..edae287df2 100644 --- a/packages/features/ee/organizations/lib/server/orgCreationUtils.test.ts +++ b/packages/features/ee/organizations/lib/server/orgCreationUtils.test.ts @@ -63,34 +63,52 @@ describe("orgCreationUtils", () => { it("should return true for all popular personal email providers", () => { const personalProviders = [ "gmail.com", + "googlemail.com", "yahoo.com", + "ymail.com", + "rocketmail.com", + "sbcglobal.net", + "att.net", "outlook.com", "hotmail.com", + "live.com", + "msn.com", + "outlook.co", + "hotmail.co.uk", "aol.com", "icloud.com", + "me.com", + "mac.com", "mail.com", + "email.com", + "post.com", + "consultant.com", + "myself.com", + "dr.com", + "europe.com", + "engineer.com", + "asia.com", + "usa.com", "protonmail.com", "proton.me", + "pm.me", + "protonmail.ch", "zoho.com", "yandex.com", "gmx.com", + "gmx.de", "fastmail.com", "inbox.com", - "me.com", "hushmail.com", - "live.com", "rediffmail.com", "tutanota.com", "mail.ru", - "usa.com", "qq.com", "163.com", + "naver.com", "web.de", - "rocketmail.com", "excite.com", "lycos.com", - "outlook.co", - "hotmail.co.uk", ]; personalProviders.forEach((provider) => { diff --git a/packages/features/ee/organizations/lib/server/orgCreationUtils.ts b/packages/features/ee/organizations/lib/server/orgCreationUtils.ts index 80ec76348e..3ab69b6221 100644 --- a/packages/features/ee/organizations/lib/server/orgCreationUtils.ts +++ b/packages/features/ee/organizations/lib/server/orgCreationUtils.ts @@ -25,34 +25,52 @@ export function isNotACompanyEmail(email: string) { // A list of popular @domains that can't be used to allow automatic acceptance of memberships to organization const emailProviders = [ "gmail.com", + "googlemail.com", "yahoo.com", + "ymail.com", + "rocketmail.com", + "sbcglobal.net", + "att.net", "outlook.com", "hotmail.com", + "live.com", + "msn.com", + "outlook.co", + "hotmail.co.uk", "aol.com", "icloud.com", + "me.com", + "mac.com", "mail.com", + "email.com", + "post.com", + "consultant.com", + "myself.com", + "dr.com", + "europe.com", + "engineer.com", + "asia.com", + "usa.com", "protonmail.com", "proton.me", + "pm.me", + "protonmail.ch", "zoho.com", "yandex.com", "gmx.com", + "gmx.de", "fastmail.com", "inbox.com", - "me.com", "hushmail.com", - "live.com", "rediffmail.com", "tutanota.com", "mail.ru", - "usa.com", "qq.com", "163.com", + "naver.com", "web.de", - "rocketmail.com", "excite.com", "lycos.com", - "outlook.co", - "hotmail.co.uk", ]; const emailParts = email.split("@"); diff --git a/packages/features/ee/organizations/lib/utils.ts b/packages/features/ee/organizations/lib/utils.ts index d131233a71..d7ecd3ff34 100644 --- a/packages/features/ee/organizations/lib/utils.ts +++ b/packages/features/ee/organizations/lib/utils.ts @@ -1,9 +1,9 @@ export function extractDomainFromEmail(email: string) { let out = ""; try { - const match = email.match(/^(?:.*?:\/\/)?.*?([\w\-]*(?:\.\w{2,}|\.\w{2,}\.\w{2}))(?:[\/?#:]|$)/); + const match = email.match(/^(?:.*?:\/\/)?.*?([\w-]*(?:\.\w{2,}|\.\w{2,}\.\w{2}))(?:[/?#:]|$)/); out = (match && match[1]) ?? ""; - } catch (ignore) {} + } catch { /* empty */ } return out.split(".")[0]; } @@ -14,34 +14,52 @@ export function isCompanyEmail(email: string): boolean { // A list of popular @domains that are personal email providers const personalEmailProviders = [ "gmail.com", + "googlemail.com", "yahoo.com", + "ymail.com", + "rocketmail.com", + "sbcglobal.net", + "att.net", "outlook.com", "hotmail.com", + "live.com", + "msn.com", + "outlook.co", + "hotmail.co.uk", "aol.com", "icloud.com", + "me.com", + "mac.com", "mail.com", + "email.com", + "post.com", + "consultant.com", + "myself.com", + "dr.com", + "europe.com", + "engineer.com", + "asia.com", + "usa.com", "protonmail.com", "proton.me", + "pm.me", + "protonmail.ch", "zoho.com", "yandex.com", "gmx.com", + "gmx.de", "fastmail.com", "inbox.com", - "me.com", "hushmail.com", - "live.com", "rediffmail.com", "tutanota.com", "mail.ru", - "usa.com", "qq.com", "163.com", + "naver.com", "web.de", - "rocketmail.com", "excite.com", "lycos.com", - "outlook.co", - "hotmail.co.uk", ]; const emailParts = email.split("@");