Name
global.GlideOneTimePasswordGenerator
Description
No description available
Script
var GlideOneTimePasswordGenerator = Class.create();
GlideOneTimePasswordGenerator.prototype = Object.extendsObject(AbstractAjaxProcessor, {
isPublic: function() {
return true;
},
generateOneTimePassword: function() {
var userSysId = GlideSession.get().getProperty("mfa.code.needed.user.id");
var factor = this.getParameter("sysparm_factor");
var emailOtpEnabled = GlideProperties.get("glide.authenticate.multifactor.email.otp.enabled", "true");
GlideSession.get().putProperty("authenticator_type", "emailOtp");
var result = this.newItem("result");
if(GlideStringUtil.nil(userSysId))
result.setAttribute("msg", gs.getMessage("Failed to generate 6-digit verification code. Please contact your administrator to login"));
if(emailOtpEnabled == "false" && factor == "mfa_EMAIL_div")
result.setAttribute("msg", gs.getMessage("Failed to generate 6-digit verification code. Please contact your administrator to login"));
else {
var success = false;
if(factor == "mfa_EMAIL_div" && emailOtpEnabled)
success = SNC.MultifactorAuthUtil.generateSecureOneTimePasswordForEmail(userSysId);
else if(factor == "mfa_SMS_div")
success = SNC.MultifactorAuthUtil.generateSecureOneTimePasswordForSMS(userSysId);
if (success) {
var resend = this.getParameter("sysparm_resend");
if (resend) {
SNC.SecurityEventSender.sendMfaGCFEvent("resend_mfa_otp", "true", (factor == "mfa_EMAIL_div") ? "email" : "sms");
}
var factorValue = (factor == "mfa_EMAIL_div") ? "email address" : "mobile number";
var validity = new GlideBoundedIntProperty("glide.multifactor.onetime.code.validity", 5, 3, 10).getInt();
result.setAttribute("msg", gs.getMessage("The 6-digit verification code was sent to your {0} and is valid for the next {1} minutes.", [factorValue, validity]));
} else {
result.setAttribute("msg", gs.getMessage("Failed to generate 6-digit verification code. Please contact your administrator to login"));
}
}
},
isMaxRetryReached: function() {
return GlideSession.get().getProperty("user_mfa_otp_max_retry_reached");
},
type: 'GlideOneTimePasswordGenerator'
});
Sys ID
946eb101d733310091204187ed6103a4