four13-4.ac.four13.dev
Open in
urlscan Pro
51.81.119.217
Public Scan
Submitted URL: https://four13-4.ac.four13.dev/
Effective URL: https://four13-4.ac.four13.dev/Frames/Login.aspx?ReturnUrl=%2f
Submission: On June 16 via api from US — Scanned from DE
Effective URL: https://four13-4.ac.four13.dev/Frames/Login.aspx?ReturnUrl=%2f
Submission: On June 16 via api from US — Scanned from DE
Form analysis
1 forms found in the DOMName: form1 — POST ./Login.aspx?ReturnUrl=%2f
<form name="form1" method="post" action="./Login.aspx?ReturnUrl=%2f" id="form1" autocomplete="off">
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="">
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="">
<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTY4OTIzNzg1Nw8WAh4TVmFsaWRhdGVSZXF1ZXN0TW9kZQIBZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAQUbY3RsMDAkcGhVc2VyJHJlbWVtYmVyRGV2aWNlHO/LBg9QKZrcEEhOhP01h84p5Oo=">
</div>
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
<script src="/Scripts/jquery-3.6.0.min.js" type="text/javascript"></script>
<script src="/Scripts/signalr.js" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var __loginBg = '/Icons/login_bg4.jpg'; //]]>
</script>
<div>
<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="7AFA5AE2">
</div>
<div id="login_bg">
<img id="login_bg_image" style="width: 1803px; height: 1200px;" src="/Icons/login_bg4.jpg">
<input name="ctl00$txtLoginBgIndex" type="hidden" id="txtLoginBgIndex" value="login_bg4.jpg">
<input name="ctl00$__isOutlook" type="hidden" id="__isOutlook">
</div>
<div id="login_panel" class="border-box" style="min-height: 1200px;">
<div id="login_data" style="padding-bottom: 124px;">
<div id="login_logo">
<a class="logo" id="panelT_logoCell" tabindex="-1" target="_blank" href="http://www.acumatica.com">
<img src="../Icons/login_logo.png" class="login_img" alt="logo">
</a>
<select name="ctl00$phLogo$cmbLang" onchange="javascript:setTimeout('__doPostBack(\'ctl00$phLogo$cmbLang\',\'\')', 0)" id="cmbLang" class="login_lang" style="display:none;">
<option selected="selected" value="en-US">English</option>
</select>
</div>
<div id="login_errBox">
<span id="lblMsg" class="login_error"></span>
</div>
<div id="login_user">
<input name="ctl00$phUser$txtSingleCompany" type="hidden" id="txtSingleCompany" value="Company">
<div id="loginPasswordContainer">
<span id="lblSignIn" class="signin_caption">Enter credentials</span>
<input name="ctl00$phUser$txtUser" type="text" id="txtUser" class="login_user border-box" autocomplete="username" placeholder="Username">
<input name="ctl00$phUser$txtPass" type="password" id="txtPass" class="login_pass border-box" placeholder="Password" autocomplete="current-password" style="width:100%;">
</div>
<input name="ctl00$phUser$txtVeryDummyPass" type="hidden" id="txtVeryDummyPass">
<div id="multiFactorTip" class="multi-factor-tip" style="display: none;">
<div class="auth-caption">
<i id="multiFactorIcon" class="ac ac-smartphone"></i>
<span id="lbl2FactorCap" class="labelB">Two-Factor Authentication</span>
</div>
<span id="lb2Factor" class="labelB auth-info"></span>
<input name="ctl00$phUser$oneTimePasswordText" type="text" id="oneTimePasswordText" class="login_user border-box pass-text" style="display: none;">
<input id="mfLoginButton" name="mfLoginButton" value="Sign In" type="button" style="float: left; margin-top: 10px; margin-bottom: 10px; display: none" class="login_button">
<div style="display: none; margin: 10px 0px; clear: both" id="rememberContainer">
<span class="label"><input id="rememberDevice" type="checkbox" name="ctl00$phUser$rememberDevice" checked="checked"><label for="rememberDevice">Do not request confirmation on this device again</label></span>
</div>
<span id="resendTimer" class="labelB auth-info" style="display: none; clear: both"></span>
<input id="resendButton" name="resendButton" value="Send again" onclick="resend();" type="button" style="float: left; margin-top: 10px; margin-bottom: 10px; display: none; clear: both" class="login_button">
<div id="noDeviceSend" style="display: none; clear: both">
<span id="noDeviceLabel" class="labelB auth-info">3. Approve push request on your mobile device:</span>
<input id="noDeviceSendButton" name="noDeviceSendButton" value="Send request to device" onclick="startProviderSend('MobilePush', false, 'smartphone', true);" type="button"
style="float: left; width: 219px; margin-top: 10px; margin-bottom: 10px;" class="login_button">
</div>
<input type="hidden" name="ctl00$phUser$MultiFactorPipelineNotStarted" id="MultiFactorPipelineNotStarted" value="true">
<input type="hidden" name="ctl00$phUser$MultiFactorWarninigWasShown" id="MultiFactorWarninigWasShown">
</div>
<div id="retryAfterDeny" class="multi-factor-method" style="display: none">
<input value="Try Again" onclick="window.location.reload(); return false;" class="login_button" style="text-align: center; float: left;">
</div>
<div id="openOtherMultiFactor" class="multi-factor-method" style="display: none; clear:both;">
<a class="login_link multy-factor" href="javascript:void 0" onclick="showMultiFactorMenu(); return false;">
Use another authentication method
</a>
</div>
<div id="multiFactorMenu" style="display: none" class="list-group auth">
<div class="auth-caption">
<span id="lbl2FactorMethod" class="labelB">Select Authentication Method:</span>
</div>
<div id="EmailbuttonId" class="multiFactorMenuItem list-group-item" onclick="startProviderSend('Email',
true, 'email_outline', false );">
<i class="ac ac-fw ac-email_outline"></i>
<span>Receive code by email</span>
</div>
<div id="AccessCodebuttonId" class="multiFactorMenuItem list-group-item" onclick="startProviderSend('AccessCode',
true, 'unlock', false );">
<i class="ac ac-fw ac-unlock"></i>
<span>Enter code generated in mobile app or from the list</span>
</div>
<div id="SmsbuttonId" class="multiFactorMenuItem list-group-item" onclick="startProviderSend('Sms',
true, 'message', false );">
<i class="ac ac-fw ac-message"></i>
<span>Receive code in SMS</span>
</div>
<div id="MobilePushbuttonId" class="multiFactorMenuItem list-group-item" onclick="startProviderSend('MobilePush',
false, 'smartphone', false );">
<i class="ac ac-fw ac-smartphone"></i>
<span>Receive push notification on the confirmation device</span>
</div>
</div>
<div id="loginButtonsContainer">
<input type="submit" name="ctl00$phUser$btnLogin" value="Sign In" onclick="return wrapClick(this, 'isReal', realFlagContainer, doLogin, multiFactorNotStarted || secureTenantCheck);" id="btnLogin" class="login_button">
<input name="ctl00$phUser$txtDummyInstallationID" type="hidden" id="txtDummyInstallationID" value="65EDBED0-9824BC12-CAD3A74B-BA55E37C-2AF94340">
<a id="lnkForgotPswd" class="login_link" href="https://four13-4.ac.four13.dev/Frames/PasswordRemind.aspx?ReturnUrl=%2f">Forgot your credentials?</a>
</div>
<script type="text/javascript">
var connection = new signalR.HubConnectionBuilder().withUrl(normalizeSignalRUrl("signalr/hubs/MultifactorHub"), {
transport: signalR.HttpTransportType.WebSockets,
skipNegotiation: true
}).configureLogging(signalR.LogLevel.Debug).build();
var resend = function() {};
var timeoutId = 0;
var multiFactorNotStarted = $("[id$=MultiFactorPipelineNotStarted]").val() === 'true';
var secureTenantCheck = $("[id$=txtSecureTenantFlowState]").val() === 'LoginPassTenantSelection';
var trialMessage =
'By clicking the \"Agree\" button below I acknowledge and understand that I am accessing an unlicensed tenant and such access and use is not for Production as defined by the Acumatica End-User License Agreement (\"EULA\") or the Acumatica Subscription SaaS Agreement (\"SaaS Agreement\"). Any use of this tenant for Production purposes is not authorized under the EULA or the SaaS Agreement.';
var trialTitle = 'Agree to Proceed';
var agreeBtnLabel = 'Agree';
var disagreeBtnLabel = 'Disagree';
function normalizeSignalRUrl(url) {
if (url.lastIndexOf("https://", 0) === 0 || url.lastIndexOf("http://", 0) === 0) {
return url;
}
if (typeof window === "undefined" || !window || !window.document) {
throw new Error("Cannot resolve '" + url + "'.");
}
var aTag = window.document.createElement("a");
var base = aTag.baseURI;
var baseIndex = base.indexOf("Frames");
if (baseIndex > 0) base = base.substring(0, baseIndex);
url = base + url;
return url;
}
function onchkEulaChanged(checked) {
btnLoginDisable(!checked);
}
var realFlagContainer = {
isReal: false,
isRealFederation: false,
isRealOAuth: false,
isRealOpenId: false
}
function wrapClick(e, isRealFlag, isRealFlagContainer, loginAction, needCheck) {
if (isRealFlagContainer[isRealFlag] === true) {
isRealFlagContainer[isRealFlag] = false;
return loginAction(e);
}
var opt = {
title: trialTitle,
body: trialMessage,
buttons: {
elements: [{
text: agreeBtnLabel,
click: function() {
isRealFlagContainer[isRealFlag] = true;
e.click();
}
}, {
text: disagreeBtnLabel,
}]
}
}
if (needCheck) {
var selectedOne = $('#txtSingleCompany');
if (selectedOne) {
var istrial = selectedOne.attr('istrial');
if (istrial != null && istrial === 'true') {
adialog.dialog(opt);
return false;
}
}
var selectedItem = $('#cmbCompany').find(":selected");
if (selectedItem) {
var istrial = selectedItem.attr('istrial');
if (istrial != null && istrial === 'true') {
adialog.dialog(opt);
return false;
}
}
}
isRealFlagContainer[isRealFlag] = true;
return wrapClick(e, isRealFlag, isRealFlagContainer, loginAction, needCheck);
}
function doLogin(e) {
var multiFactorNotStarted = $("[id$=MultiFactorPipelineNotStarted]").val() === 'true';
var login = $("[id$=txtUser]").val();
if (!login) return false;
var isOutlookPlugin = localStorage.getItem('doRedirect');
if (isOutlookPlugin) {
var lang = $('[id$=cmbLang]').val();
if (lang) {
localStorage.setItem('acumaticaLocale', lang);
}
}
window.delayedCallback = true;
clearInterval(timeoutId);
if (e == null) e = window.event;
if (e && (e.ctrlKey || e.shiftKey) && e.preventDefault != null) e.preventDefault();
if (multiFactorNotStarted) {
disableLoginFields();
startTwoFactorPipeline();
return false;
} else {
delete window.delayedCallback;
}
}
function startTwoFactorPipeline() {
connection.on("setOneTimePassword", function(oneTimePassword, correlationCode) {
$('[id$=oneTimePasswordText]').val(oneTimePassword);
$("[id$=MultiFactorPipelineNotStarted]").val('false');
btnLoginDisable(false);
var btnLogin = document.getElementById('btnLogin');
realFlagContainer.isReal = true;
btnLogin.click();
});
connection.on("denyAcceptTwoFactor", function(correlationCode) {
$('[id$=oneTimePasswordText]').val("");
$("#lblMsg").text("The confirmation request has been rejected. If you rejected it by mistake, click the Try Again button to try to sign in again.");
$("#openOtherMultiFactor").hide();
$(".multi-factor-tip").hide();
$("[id$=txtUser]").hide();
$('#retryAfterDeny').show();
});
startHub(0);
}
function btnLoginDisable(value) {
var btnLogin = document.getElementById('btnLogin');
if (!btnLogin) return;
btnLogin.disabled = !!value;
}
function disableLoginFields(disableCompany) {
$("[id$=txtUser]").attr('readonly', 'readonly');
$("[id$=txtPass]").attr('readonly', 'readonly');
if ((disableCompany || "") != "none") $("[id$=cmbCompany] option:not([selected])").attr('disabled', 'disabled');
btnLoginDisable(true);
$("#lblMsg").text("");
document.body.style.cursor = 'wait';
}
function enableLoginFields(withUser) {
if (withUser) $("[id$=txtUser]").attr('readonly', null);
$("[id$=txtPass]").attr('readonly', null);
$("[id$=cmbCompany] option:not([selected])").attr('disabled', null);
btnLoginDisable(false);
document.body.style.cursor = '';
}
function hideLoginFields() {
$("[id$=txtPass]").hide();
$("[id$=lblTenant]").hide();
$("[id$=cmbCompany]").hide();
$("[id$=txtSecureTenantNameDisplay]").hide();
$("[id$=btnLogin]").hide();
$("#login_ext").hide();
}
function startHub(retryCounter) {
console.log("Start hub connection");
$('#mfLoginButton').click(function() {
realFlagContainer.isReal = true;
btnLoginDisable(false);
document.getElementById('btnLogin').click();
});
if (connection.connection.connectionState === 2) connection.start().then(r => {
window.console.log("Hub connection started; transport = " + connection.transport);
startProviderSend("MobilePush", false, "smartphone", false);
}).catch(e => {
window.console.log(e);
if (retryCounter < 5) {
setTimeout(function() {
startHub(retryCounter + 1);
}, 2000);
} else {
$("[id$=MultiFactorPipelineNotStarted]").val('false');
var btnLogin = document.getElementById('btnLogin');
realFlagContainer.isReal = true;
enableLoginFields(true);
btnLogin.click();
}
});
}
function showMultiFactorMenu() {
$("#multiFactorMenu").show();
$('[id$=oneTimePasswordText]').hide();
$("#openOtherMultiFactor").hide();
$('#multiFactorTip').hide();
$('#noDeviceSend').hide();
$("#mfLoginButton").hide();
stopTimer();
}
function stopTimer() {
if (timeoutId != 0) clearInterval(timeoutId);
$("#resendTimer").hide();
$("#resendTimer").html("");
$("#resendButton").hide();
}
function hideMultiFactorMenu() {
$("#multiFactorMenu").hide();
$("#openOtherMultiFactor").show();
$('#multiFactorTip').show();
document.getElementById("lnkForgotPswd").classList.add("multy-factor");
document.getElementById("lblSignIn").innerHTML = "Username";
}
function SetVisibilityForMultiFactorMenuItems(providers) {
$(".multiFactorMenuItem").hide();
for (i = 0; i < providers.length; i++) {
$("#" + providers[i] + "buttonId").show();
}
};
function startProviderSend(providerType, showTextbox, iconName, noDeviceSend) {
var login = $("[id$=txtUser]").val();
var pass = $("[id$=txtPass]").val();
startTwoFactorPipeLine(providerType, login, pass, 0, showTextbox, iconName, noDeviceSend);
}
function startTwoFactorPipeLine(providerType, login, pass, retryCount, showTextbox, iconName, noDeviceSend) {
$("#lblMsg").text("");
if (connection.state === "Disconnected") {
connection.start().then(r => {
window.console.log("Hub connection started; transport = " + connection.transport);
startTwoFactorPipeLine(providerType, login, pass, retryCount, showTextbox, iconName, noDeviceSend);
}).catch(e => {
window.console.log(e);
document.getElementById('btnLogin').click();
});
}
//var hub = $.connection.multifactorHub;
console.log("Start two factor pipeline, provider: " + providerType);
var lang = $('[id$=cmbLang]').val();
connection.invoke("startTwoFactorPipeline", login, pass, providerType, lang).then(result => {
console.log("Success");
stopTimer();
if (result.isMultiFactor > 0) {
$("#lb2Factor").html(result.text.replace(new RegExp("\r\n", "g"), "<br />"));
$('#multiFactorTip').show();
$('#multiFactorIcon').attr('class', 'ac ac-' + iconName);
document.body.style.cursor = '';
hideLoginFields();
if (showTextbox && !result.isError) {
$('[id$=oneTimePasswordText]').show();
$("#mfLoginButton").show();
$("[id$=MultiFactorPipelineNotStarted]").val('false');
} else {
$('[id$=oneTimePasswordText]').hide();
$("#mfLoginButton").hide();
}
SetVisibilityForMultiFactorMenuItems(result.providers);
hideMultiFactorMenu();
if (result.resendTimer > 0 && !(result.hasNoDevice && noDeviceSend)) startResendTimer(result.resendTimer, providerType, showTextbox, iconName, false);
if (result.isMultiFactor == 1 && !result.hasNoDevice) {
$("#rememberContainer").show();
} else {
$("#rememberContainer").hide();
}
if (result.hasNoDevice) {
$("#noDeviceSend").show();
if (noDeviceSend) {
$("#lblMsg").text(
"There is no registered device, so the confirmation request could not be sent. Please follow the instructions below to register a device. If you are not able to register a device now, use another authentication method.");
}
} else {
$("#noDeviceSend").hide();
}
delete window.delayedCallback;
} else {
$("[id$=MultiFactorPipelineNotStarted]").val('false');
realFlagContainer.isReal = true;
btnLoginDisable(false);
document.getElementById('btnLogin').click();
btnLoginDisable(true);
}
if (result.isError) {
$("#lb2Factor").addClass("error");
$("#rememberContainer").hide();
stopTimer();
} else {
$("#lb2Factor").removeClass("error");
}
}).catch(error => {
if (retryCount < 5) {
console.log('Invocation of startTwoFactorPipeline failed. Error: ' + error + '; Retry');
startTwoFactorPipeLine(providerType, login, pass, retryCount + 1, showTextbox, iconName, noDeviceSend);
} else {
console.log('Invocation of startTwoFactorPipeline failed. Error: ' + error);
$("#lblMsg").text(error);
enableLoginFields(true);
}
});
}
function startResendTimer(time, providerType, showTextbox, iconName, noDeviceSend) {
resend = function() {
$("#resendButton").hide();
startProviderSend(providerType, showTextbox, iconName, noDeviceSend);
};
var setTimerSpan = function(countDown) {
var minutes = Math.floor(countDown / 60);
var seconds = "0" + countDown % 60;
$("#resendTimer").html("You will be able to re-send the code after " + minutes + ":" + seconds.substr(seconds.length - 2));
};
if (time === 0) $("#resendButton").show();
else {
$("#resendTimer").show();
setTimerSpan(time);
timeoutId = setInterval(function() {
if (time <= 0) {
$("#resendButton").show();
$("#resendTimer").hide();
$("#resendTimer").html("");
clearInterval(timeoutId);
timeoutId = 0;
}
time--;
setTimerSpan(time);
}, 1000);
}
}
function ShowNoDeviceSendButton() {
$("#noDeviceSend").show();
};
</script>
</div>
<div id="login_ext">
<!-- Oidc providers will be added dinamically here -->
</div>
<div id="login_info" style="display:none;">
<div id="logOutReasone" style="display:none;">
<div id="logOutReasoneMsg" class="login_error">Last update was unsuccessful.</div>
</div>
<div id="dbmsMisconfigured" style="display:none;">
<div id="dbmsProblems" class="login_error">There are problems on database server side:</div>
<div id="dbmsMisconfiguredLabel" class="label">Contact server administrator.</div>
</div>
<div id="updateError" style="display:none;">
<div id="updateErrorMsg" class="login_error">Last update was unsuccessful.</div>
<div id="updateErrorLabel" class="label">Contact server administrator.</div>
</div>
<div id="customizationError" style="display:none;">
<div id="customizationErrorMsg" class="login_error">Warning: customization failed to apply automatically after the upgrade.</div>
<div id="customizationErrorLabel" class="label">Some functionality may be unavailable.<br> Contact server administrator.<br> Click <a href="#" onclick="document.getElementById('custErrorDetails').style.display='';">here</a> to view details
about this error.</div>
<div style="display:none; width: 100%; height: 200px; margin-top: 10px;" id="custErrorDetails">
<pre id="custErrorContent"></pre>
</div>
</div>
<div id="passwordRecoveryError" style="display:none">
<div id="passwordRecoveryErrorMsg" class="login_error"></div>
</div>
</div>
</div>
<div id="login_copyright" class="border-box" style="display: block;">
<div id="login_links">
</div>
<div id="login_customization">
<div class="customization-dlg">
<div class="customization-dlg-top">
<span class="customization-dlg-top-title">
<span id="lblCustomizationDlgTopTitle" class="labelH">Customization details</span>
</span>
<span class="ac ac-close customization-dlg-top-close"></span>
</div>
<div class="customization-dlg-body">
</div>
</div>
</div>
<span id="lblCopy" class="labelH">Copyright © 2005-2024 Acumatica, Inc. All rights reserved.<br>Acumatica Cloud ERP 2024 R1<br>Build 24.104.0008</span>
</div>
</div>
<script type="text/javascript">
initLoginImage();
window.onresize = resizeLoginImage;
var customizationUi = {
extBtnId: "lblCopy",
containerId: "login_customization",
customizationDlgClass: "customization-dlg",
closeBtnClass: "customization-dlg-top-close"
}
customizationUi.extBtn = document.getElementById(customizationUi.extBtnId);
var versionBuildTxt = customizationUi.extBtn.innerText;
if (versionBuildTxt.lastIndexOf("+") == versionBuildTxt.length - 1) {
customizationUi.container = document.getElementById(customizationUi.containerId);
customizationUi.customizationDlg = customizationUi.container.querySelector("." + customizationUi.customizationDlgClass);
customizationUi.closeBtn = customizationUi.container.querySelector("." + customizationUi.closeBtnClass);
customizationUi.extBtn.addEventListener("click", function() {
customizationUi.container.style.display = "flex";
});
customizationUi.closeBtn.addEventListener("click", function() {
customizationUi.container.style.display = 'none';
});
customizationUi.customizationDlg.addEventListener("dblclick", function() {
customizationUi.container.style.display = 'none';
});
}
</script>
<script type="text/javascript">
window.onload = function() {
try {
if (window != window.top && window.top.location.origin == window.location.origin) {
if (window.top.location.pathname.split("/")[1] == window.location.pathname.split("/")[1]) {
window.top.location.href = window.top.location.href;
}
}
} catch (ex) {}
var cmbCompanyEl = document.getElementById("cmbCompany");
if (cmbCompanyEl) cmbCompanyEl.addEventListener("change", function(el) {
disableLoginFields("none");
});
document.getElementById("login_data").style.paddingBottom = (document.getElementById("login_copyright").clientHeight + 40) + "px";
var editor = document.form1['txtUser'];
if (editor == null || editor.readOnly) editor = document.form1['txtNewPassword'];
if (editor && !editor.readOnly) editor.focus();
}
</script>
</form>
Text Content
English Enter credentials Two-Factor Authentication Do not request confirmation on this device again 3. Approve push request on your mobile device: Use another authentication method Select Authentication Method: Receive code by email Enter code generated in mobile app or from the list Receive code in SMS Receive push notification on the confirmation device Forgot your credentials? Last update was unsuccessful. There are problems on database server side: Contact server administrator. Last update was unsuccessful. Contact server administrator. Warning: customization failed to apply automatically after the upgrade. Some functionality may be unavailable. Contact server administrator. Click here to view details about this error. Customization details Copyright © 2005-2024 Acumatica, Inc. All rights reserved. Acumatica Cloud ERP 2024 R1 Build 24.104.0008