private void sendUpdateGuestEmailConfirmation( final PwmRequest pwmRequest, final UserInfoBean guestUserInfoBean) throws PwmUnrecoverableException { final Configuration config = pwmRequest.getConfig(); final Locale locale = pwmRequest.getLocale(); final EmailItemBean configuredEmailSetting = config.readSettingAsEmail(PwmSetting.EMAIL_UPDATEGUEST, locale); if (configuredEmailSetting == null) { LOGGER.debug(pwmRequest, "unable to send updated guest user email: no email configured"); return; } pwmRequest .getPwmApplication() .getEmailQueue() .submitEmail(configuredEmailSetting, guestUserInfoBean, null); }
private void sendGuestUserEmailConfirmation( final PwmRequest pwmRequest, final UserIdentity userIdentity) throws PwmUnrecoverableException { final PwmSession pwmSession = pwmRequest.getPwmSession(); final PwmApplication pwmApplication = pwmRequest.getPwmApplication(); final Configuration config = pwmApplication.getConfig(); final Locale locale = pwmSession.getSessionStateBean().getLocale(); final EmailItemBean configuredEmailSetting = config.readSettingAsEmail(PwmSetting.EMAIL_GUEST, locale); if (configuredEmailSetting == null) { LOGGER.debug( pwmSession, "unable to send guest registration email for '" + userIdentity + "' no email configured"); return; } final MacroMachine macroMachine = MacroMachine.forUser(pwmRequest, userIdentity); pwmApplication.getEmailQueue().submitEmail(configuredEmailSetting, null, macroMachine); }
private static void sendProfileUpdateEmailNotice( final PwmSession pwmSession, final PwmApplication pwmApplication) throws PwmUnrecoverableException, ChaiUnavailableException { final Configuration config = pwmApplication.getConfig(); final Locale locale = pwmSession.getSessionStateBean().getLocale(); final EmailItemBean configuredEmailSetting = config.readSettingAsEmail(PwmSetting.EMAIL_UPDATEPROFILE, locale); if (configuredEmailSetting == null) { LOGGER.debug( pwmSession, "skipping send profile update email for '" + pwmSession.getUserInfoBean().getUserIdentity() + "' no email configured"); return; } pwmApplication .getEmailQueue() .submitEmail( configuredEmailSetting, pwmSession.getUserInfoBean(), pwmSession.getSessionManager().getMacroMachine(pwmApplication)); }
public void initializeToken( final PwmRequest pwmRequest, final UpdateProfileBean updateProfileBean, final TokenVerificationProgress.TokenChannel tokenType) throws PwmUnrecoverableException { final PwmSession pwmSession = pwmRequest.getPwmSession(); final PwmApplication pwmApplication = pwmRequest.getPwmApplication(); if (pwmApplication.getConfig().getTokenStorageMethod() == TokenStorageMethod.STORE_LDAP) { throw new PwmUnrecoverableException( new ErrorInformation( PwmError.CONFIG_FORMAT_ERROR, null, new String[] { "cannot generate new user tokens when storage type is configured as STORE_LDAP." })); } final MacroMachine macroMachine = pwmRequest.getPwmSession().getSessionManager().getMacroMachine(pwmApplication); final Configuration config = pwmApplication.getConfig(); switch (tokenType) { case SMS: { final String telephoneNumberAttribute = pwmRequest.getConfig().readSettingAsString(PwmSetting.SMS_USER_PHONE_ATTRIBUTE); final String toNum = updateProfileBean.getFormData().get(telephoneNumberAttribute); final String tokenKey; try { final TokenPayload tokenPayload = pwmApplication .getTokenService() .createTokenPayload( TokenType.UPDATE_SMS, Collections.<String, String>emptyMap(), pwmRequest.getUserInfoIfLoggedIn(), Collections.singleton(toNum)); tokenKey = pwmApplication .getTokenService() .generateNewToken(tokenPayload, pwmRequest.getSessionLabel()); } catch (PwmOperationalException e) { throw new PwmUnrecoverableException(e.getErrorInformation()); } final String message = config.readSettingAsLocalizedString( PwmSetting.SMS_UPDATE_PROFILE_TOKEN_TEXT, pwmSession.getSessionStateBean().getLocale()); try { TokenService.TokenSender.sendSmsToken( pwmApplication, null, macroMachine, toNum, message, tokenKey); } catch (Exception e) { throw new PwmUnrecoverableException(new ErrorInformation(PwmError.ERROR_UNKNOWN)); } updateProfileBean .getTokenVerificationProgress() .getIssuedTokens() .add(TokenVerificationProgress.TokenChannel.SMS); updateProfileBean.getTokenVerificationProgress().setTokenDisplayText(toNum); updateProfileBean .getTokenVerificationProgress() .setPhase(TokenVerificationProgress.TokenChannel.SMS); } break; case EMAIL: { final EmailItemBean configuredEmailSetting = config.readSettingAsEmail( PwmSetting.EMAIL_UPDATEPROFILE_VERIFICATION, pwmRequest.getLocale()); final String emailAddressAttribute = pwmRequest.getConfig().readSettingAsString(PwmSetting.EMAIL_USER_MAIL_ATTRIBUTE); final String toAddress = updateProfileBean.getFormData().get(emailAddressAttribute); final String tokenKey; try { final TokenPayload tokenPayload = pwmApplication .getTokenService() .createTokenPayload( TokenType.UPDATE_EMAIL, Collections.<String, String>emptyMap(), pwmRequest.getUserInfoIfLoggedIn(), Collections.singleton(toAddress)); tokenKey = pwmApplication .getTokenService() .generateNewToken(tokenPayload, pwmRequest.getSessionLabel()); } catch (PwmOperationalException e) { throw new PwmUnrecoverableException(e.getErrorInformation()); } updateProfileBean .getTokenVerificationProgress() .getIssuedTokens() .add(TokenVerificationProgress.TokenChannel.EMAIL); updateProfileBean .getTokenVerificationProgress() .setPhase(TokenVerificationProgress.TokenChannel.EMAIL); updateProfileBean.getTokenVerificationProgress().setTokenDisplayText(toAddress); final EmailItemBean emailItemBean = new EmailItemBean( toAddress, configuredEmailSetting.getFrom(), configuredEmailSetting.getSubject(), configuredEmailSetting.getBodyPlain().replace("%TOKEN%", tokenKey), configuredEmailSetting.getBodyHtml().replace("%TOKEN%", tokenKey)); try { TokenService.TokenSender.sendEmailToken( pwmApplication, null, macroMachine, emailItemBean, toAddress, tokenKey); } catch (Exception e) { throw new PwmUnrecoverableException(new ErrorInformation(PwmError.ERROR_UNKNOWN)); } } break; default: LOGGER.error("Unimplemented token purpose: " + tokenType); updateProfileBean.getTokenVerificationProgress().setPhase(null); } }