aboutsummaryrefslogtreecommitdiffstats
path: root/core/js/publicshareauth.js
diff options
context:
space:
mode:
authorCyrille Bollu <cyrpub@bollu.be>2022-02-05 20:49:17 +0100
committerCyrille Bollu <cyrpub@bollu.be>2022-04-11 21:58:24 +0200
commitc6a5c07041d2e5d20771409aede8b755d28372ac (patch)
tree71051efd25c16bed5a419eb1670477f1f5471933 /core/js/publicshareauth.js
parent60f946aba5862102a81100b09e26b37b6d59a3fa (diff)
downloadnextcloud-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.js43
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);
+
});