*
* @param contactEmail email
* @throws Exception, if update contact failed.
*/
public void updateContact(String contactEmail) throws Exception {
EmailVerifcationSubscriber emailverifier = Util.getEmailVerificationService();
TenantManager tenantManager = Util.getTenantManager();
UserRegistry registry = (UserRegistry) getGovernanceRegistry();
if (registry == null) {
// we can't continue without having a valid registry in the session
String msg = "Error in retrieving the registry for the login tenant.";
log.error(msg);
throw new Exception(msg);
}
int tenantId = registry.getTenantId();
Tenant tenant;
try {
tenant = (Tenant) tenantManager.getTenant(tenantId);
} catch (UserStoreException e) {
String msg = "Error in retrieving the tenant information for the tenant id: " +
tenantId + ".";
log.error(msg, e);
throw new Exception(msg, e);
}
// generating the confirmation key
String confirmationKey = UUIDGenerator.generateUUID();
UserRegistry superTenantSystemRegistry =
Util.getGovernanceSystemRegistry(MultitenantConstants.SUPER_TENANT_ID);
Resource resource;
String emailVerificationPath = StratosConstants.ADMIN_EMAIL_VERIFICATION_FLAG_PATH +
RegistryConstants.PATH_SEPARATOR + tenantId;
if (superTenantSystemRegistry.resourceExists(emailVerificationPath)) {
resource = superTenantSystemRegistry.get(emailVerificationPath);
} else {
resource = superTenantSystemRegistry.newResource();
}
resource.setContent(confirmationKey);
superTenantSystemRegistry.put(emailVerificationPath, resource);
try {
Map<String, String> datatostore = new HashMap<String, String>();
datatostore.put("first-name",
ClaimsMgtUtil.getFirstName(Util.getRealmService(), tenant, tenantId));
datatostore.put("email", contactEmail);
datatostore.put("admin", tenant.getAdminName());
datatostore.put("tenantDomain", tenant.getDomain());
datatostore.put("confirmationKey", confirmationKey);
emailverifier.requestUserVerification(datatostore, Util.getEmailVerifierConfig());
} catch (Exception e) {
String msg = "Error in adding tenant, tenant domain: " + tenant.getDomain() + ".";
log.error(msg);
throw new Exception(msg, e);
}