diff options
author | Cyrille Bollu <cyrpub@bollu.be> | 2022-02-05 20:49:17 +0100 |
---|---|---|
committer | Cyrille Bollu <cyrpub@bollu.be> | 2022-04-11 21:58:24 +0200 |
commit | c6a5c07041d2e5d20771409aede8b755d28372ac (patch) | |
tree | 71051efd25c16bed5a419eb1670477f1f5471933 /core/js/publicshareauth.js | |
parent | 60f946aba5862102a81100b09e26b37b6d59a3fa (diff) | |
download | nextcloud-server-c6a5c07041d2e5d20771409aede8b755d28372ac.tar.gz nextcloud-server-c6a5c07041d2e5d20771409aede8b755d28372ac.zip |
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>
Diffstat (limited to 'core/js/publicshareauth.js')
-rw-r--r-- | core/js/publicshareauth.js | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/core/js/publicshareauth.js b/core/js/publicshareauth.js index af061954506..374d7e92e16 100644 --- a/core/js/publicshareauth.js +++ b/core/js/publicshareauth.js @@ -1,11 +1,52 @@ +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); + }); |