nextcloud/core/js/publicshareauth.js
Cyrille Bollu c6a5c07041 Adds a "Request password" button to the public share authentication page for shares
of type TYPE_EMAIL, when the "video verification" checkbox isn't checked. Users accessing
non-anonymous public shares (TYPE_EMAIL shares) can now request a temporary password themselves.

- Creates a migration step for the files_sharing app to add the 'password_expiration_time'
  attribute to the oc_shares table.
- Makes share temporary passwords' expiration time configurable via a system value.
- Adds a system config value to allow permanent share passwords

-Fixes a typo in a comment in apps/files_sharing/src/components/SharingEntryLink.vue

See https://github.com/nextcloud/server/issues/31005

Signed-off-by: Cyrille Bollu <cyrpub@bollu.be>
2022-04-11 21:58:24 +02:00

52 lines
2.2 KiB
JavaScript

function showEmailAddressPromptForm() {
// Shows email prompt
var emailInput = document.getElementById('email-input-form');
emailInput.style.display="block";
// Shows back button
var backButton = document.getElementById('request-password-back-button');
backButton.style.display="block";
// Hides password prompt and 'request password' button
var passwordRequestButton = document.getElementById('request-password-button-not-talk');
var passwordInput = document.getElementById('password-input-form');
passwordRequestButton.style.display="none";
passwordInput.style.display="none";
// Hides identification result messages, if any
var identificationResultSuccess = document.getElementById('identification-success');
var identificationResultFailure = document.getElementById('identification-failure');
if (identificationResultSuccess) {
identificationResultSuccess.style.display="none";
}
if (identificationResultFailure) {
identificationResultFailure.style.display="none";
}
}
document.addEventListener('DOMContentLoaded', function() {
// Enables password submit button only when user has typed something in the password field
var passwordInput = document.getElementById('password');
var passwordButton = document.getElementById('password-submit');
var eventListener = function() {
passwordButton.disabled = passwordInput.value.length === 0;
};
passwordInput.addEventListener('click', eventListener);
passwordInput.addEventListener('keyup', eventListener);
passwordInput.addEventListener('change', eventListener);
// Enables email request button only when user has typed something in the email field
var emailInput = document.getElementById('email');
var emailButton = document.getElementById('password-request');
eventListener = function() {
emailButton.disabled = emailInput.value.length === 0;
};
emailInput.addEventListener('click', eventListener);
emailInput.addEventListener('keyup', eventListener);
emailInput.addEventListener('change', eventListener);
// Adds functionality to the request password button
var passwordRequestButton = document.getElementById('request-password-button-not-talk');
passwordRequestButton.addEventListener('click', showEmailAddressPromptForm);
});