diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/CacheableFeatureFlagHelperCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/CacheableFeatureFlagHelperCEImpl.java index 0f5e951971..78958fb18c 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/CacheableFeatureFlagHelperCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/CacheableFeatureFlagHelperCEImpl.java @@ -71,14 +71,19 @@ public class CacheableFeatureFlagHelperCEImpl implements CacheableFeatureFlagHel return configService.getInstanceId().map(instanceId -> { Map userTraits = new HashMap<>(); String emailTrait; + String emailDomain = userIdentifierService.getEmailDomain(user.getEmail()); if (!commonConfig.isCloudHosting()) { emailTrait = userIdentifierService.hash(user.getEmail()); + if (emailDomain != null) { + emailDomain = userIdentifierService.hash(emailDomain); + } } else { emailTrait = user.getEmail(); } userTraits.put("email", emailTrait); userTraits.put("instanceId", instanceId); userTraits.put("tenantId", user.getTenantId()); + userTraits.put("emailDomain", emailDomain); userTraits.put("isTelemetryOn", !commonConfig.isTelemetryDisabled()); // for anonymous user, user.getCreatedAt() is null if (user.getCreatedAt() != null) { diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserIdentifierServiceCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserIdentifierServiceCE.java index f5e58d6ccf..b7eb892699 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserIdentifierServiceCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserIdentifierServiceCE.java @@ -7,4 +7,6 @@ public interface UserIdentifierServiceCE { String getUserIdentifier(User user); String hash(String value); + + String getEmailDomain(String email); } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserIdentifierServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserIdentifierServiceCEImpl.java index fa20b2d1ea..9f97fa592e 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserIdentifierServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserIdentifierServiceCEImpl.java @@ -34,4 +34,16 @@ public class UserIdentifierServiceCEImpl implements UserIdentifierServiceCE { public String hash(String value) { return value == null ? "" : DigestUtils.sha256Hex(value); } + + @Override + public String getEmailDomain(String email) { + String emailDomain = null; + if (email != null) { + int atIndex = email.indexOf('@'); + if (atIndex > 0) { + emailDomain = email.substring(atIndex + 1).toLowerCase(); + } + } + return emailDomain; + } }