|
@@ -235,7 +235,7 @@ function recursiveBase64StrToArrayBuffer(obj) {
|
|
|
$(".totp-authenticator-selection").click(function(){
|
|
$(".totp-authenticator-selection").click(function(){
|
|
|
$(".totp-authenticator-selection").removeClass("active");
|
|
$(".totp-authenticator-selection").removeClass("active");
|
|
|
$(this).addClass("active");
|
|
$(this).addClass("active");
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
var id = $(this).children('input').first().val();
|
|
var id = $(this).children('input').first().val();
|
|
|
$("#totp_selected_id").val(id);
|
|
$("#totp_selected_id").val(id);
|
|
|
|
|
|
|
@@ -244,7 +244,7 @@ function recursiveBase64StrToArrayBuffer(obj) {
|
|
|
if ($('.totp-authenticator-selection').length == 1 &&
|
|
if ($('.totp-authenticator-selection').length == 1 &&
|
|
|
$('#pending_tfa_tab_yubi_otp').length == 0 &&
|
|
$('#pending_tfa_tab_yubi_otp').length == 0 &&
|
|
|
$('.webauthn-authenticator-selection').length == 0){
|
|
$('.webauthn-authenticator-selection').length == 0){
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// select default if only one authenticator exists
|
|
// select default if only one authenticator exists
|
|
|
$('.totp-authenticator-selection').addClass("active");
|
|
$('.totp-authenticator-selection').addClass("active");
|
|
|
|
|
|
|
@@ -257,7 +257,7 @@ function recursiveBase64StrToArrayBuffer(obj) {
|
|
|
$('#pending_tfa_tab_totp').on('shown.bs.tab', function() {
|
|
$('#pending_tfa_tab_totp').on('shown.bs.tab', function() {
|
|
|
// autofocus
|
|
// autofocus
|
|
|
setTimeout(function() { $("#collapseTotpTFA").find('input[name="token"]').focus(); }, 200);
|
|
setTimeout(function() { $("#collapseTotpTFA").find('input[name="token"]').focus(); }, 200);
|
|
|
- });
|
|
|
|
|
|
|
+ });
|
|
|
// validate Yubi OTP tfa
|
|
// validate Yubi OTP tfa
|
|
|
if ($('.webauthn-authenticator-selection').length == 0){
|
|
if ($('.webauthn-authenticator-selection').length == 0){
|
|
|
// autofocus
|
|
// autofocus
|
|
@@ -276,10 +276,10 @@ function recursiveBase64StrToArrayBuffer(obj) {
|
|
|
$(".webauthn-authenticator-selection").click(function(){
|
|
$(".webauthn-authenticator-selection").click(function(){
|
|
|
$(".webauthn-authenticator-selection").removeClass("active");
|
|
$(".webauthn-authenticator-selection").removeClass("active");
|
|
|
$(this).addClass("active");
|
|
$(this).addClass("active");
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
var id = $(this).children('input').first().val();
|
|
var id = $(this).children('input').first().val();
|
|
|
$("#webauthn_selected_id").val(id);
|
|
$("#webauthn_selected_id").val(id);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
var webauthn_status_auth = document.getElementById('webauthn_status_auth');
|
|
var webauthn_status_auth = document.getElementById('webauthn_status_auth');
|
|
|
webauthn_status_auth.style.setProperty('display', 'flex', 'important');
|
|
webauthn_status_auth.style.setProperty('display', 'flex', 'important');
|
|
|
var webauthn_return_code = document.getElementById('webauthn_return_code');
|
|
var webauthn_return_code = document.getElementById('webauthn_return_code');
|
|
@@ -302,7 +302,7 @@ function recursiveBase64StrToArrayBuffer(obj) {
|
|
|
console.log(json);
|
|
console.log(json);
|
|
|
if (json.success === false) throw new Error();
|
|
if (json.success === false) throw new Error();
|
|
|
if (json.type === "error") throw new Error(json.msg);
|
|
if (json.type === "error") throw new Error(json.msg);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
recursiveBase64StrToArrayBuffer(json);
|
|
recursiveBase64StrToArrayBuffer(json);
|
|
|
return json;
|
|
return json;
|
|
|
}).then(getCredentialArgs => {
|
|
}).then(getCredentialArgs => {
|
|
@@ -329,7 +329,7 @@ function recursiveBase64StrToArrayBuffer(obj) {
|
|
|
webauthn_return_code.style.setProperty('display', 'block', 'important');
|
|
webauthn_return_code.style.setProperty('display', 'block', 'important');
|
|
|
webauthn_return_code.innerHTML = lang_tfa.error_code + ': ' + err + ' ' + lang_tfa.reload_retry;
|
|
webauthn_return_code.innerHTML = lang_tfa.error_code + ': ' + err + ' ' + lang_tfa.reload_retry;
|
|
|
});
|
|
});
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
});
|
|
});
|
|
|
$('#ConfirmTFAModal').on('hidden.bs.modal', function(){
|
|
$('#ConfirmTFAModal').on('hidden.bs.modal', function(){
|
|
|
// cancel pending login
|
|
// cancel pending login
|
|
@@ -540,7 +540,7 @@ function recursiveBase64StrToArrayBuffer(obj) {
|
|
|
Version: <a href="{{ mailcow_info.git_project_url }}/releases/tag/{{ mailcow_info.version_tag }}" target="_blank">{{ mailcow_info.version_tag }}
|
|
Version: <a href="{{ mailcow_info.git_project_url }}/releases/tag/{{ mailcow_info.version_tag }}" target="_blank">{{ mailcow_info.version_tag }}
|
|
|
</a>
|
|
</a>
|
|
|
</span>
|
|
</span>
|
|
|
- {% endif %}
|
|
|
|
|
|
|
+ {% endif %}
|
|
|
{% if mailcow_cc_username and mailcow_info.mailcow_branch|lower == "nightly" and mailcow_info.version_tag|default %}
|
|
{% if mailcow_cc_username and mailcow_info.mailcow_branch|lower == "nightly" and mailcow_info.version_tag|default %}
|
|
|
<span class="version">
|
|
<span class="version">
|
|
|
🛠️🐮 + 🐋 = 💕
|
|
🛠️🐮 + 🐋 = 💕
|
|
@@ -549,6 +549,14 @@ function recursiveBase64StrToArrayBuffer(obj) {
|
|
|
<span style="text-align:right;display:block;">Build: {{ mailcow_info.git_commit_date }}</span>
|
|
<span style="text-align:right;display:block;">Build: {{ mailcow_info.git_commit_date }}</span>
|
|
|
</span>
|
|
</span>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
|
+ {% if mailcow_cc_username and mailcow_info.mailcow_branch|lower == "legacy" and mailcow_info.version_tag|default %}
|
|
|
|
|
+ <span class="version">
|
|
|
|
|
+ ⚰️🐮 + 🐋 = 💕
|
|
|
|
|
+ Legacy: <a href="{{ mailcow_info.git_project_url }}/commit/{{ mailcow_info.git_commit }}" target="_blank">{{ mailcow_info.version_tag }}
|
|
|
|
|
+ </a><br>
|
|
|
|
|
+ <span style="text-align:right;display:block;">Build: {{ mailcow_info.git_commit_date }}</span>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ {% endif %}
|
|
|
</div>
|
|
</div>
|
|
|
</body>
|
|
</body>
|
|
|
</html>
|
|
</html>
|