From 5fb0e257a4e7b16024389261cfe924f53deb69ae Mon Sep 17 00:00:00 2001
From: Bjoern Schiessle
Date: Wed, 18 Sep 2013 16:03:53 +0200
Subject: [PATCH 1/5] let user repeat the recovery key password to prevent
typos
---
apps/files_encryption/js/settings-admin.js | 36 ++++++++++---------
.../templates/settings-admin.php | 28 +++++++++------
2 files changed, 37 insertions(+), 27 deletions(-)
diff --git a/apps/files_encryption/js/settings-admin.js b/apps/files_encryption/js/settings-admin.js
index 6647c621e7..82fdb51708 100644
--- a/apps/files_encryption/js/settings-admin.js
+++ b/apps/files_encryption/js/settings-admin.js
@@ -1,6 +1,6 @@
/**
- * Copyright (c) 2013, Sam Tuke , Robin Appelman
- *
+ * Copyright (c) 2013, Sam Tuke , Robin Appelman
+ * , Bjoern Schiessle
* This file is licensed under the Affero General Public License version 3 or later.
* See the COPYING-README file.
*/
@@ -31,22 +31,23 @@ $(document).ready(function(){
// Trigger ajax on recoveryAdmin status change
var enabledStatus = $('#adminEnableRecovery').val();
- $('input:password[name="recoveryPassword"]').keyup(function(event) {
- var recoveryPassword = $( '#recoveryPassword' ).val();
+ $('input:password[name="encryptionRecoveryPassword"]').keyup(function(event) {
+ var recoveryPassword = $( '#encryptionRecoveryPassword' ).val();
+ var recoveryPasswordRepeated = $( '#repeatEncryptionRecoveryPassword' ).val();
var checkedButton = $('input:radio[name="adminEnableRecovery"]:checked').val();
var uncheckedValue = (1+parseInt(checkedButton)) % 2;
- if (recoveryPassword != '' ) {
+ if (recoveryPassword !== '' && recoveryPassword === recoveryPasswordRepeated) {
$('input:radio[name="adminEnableRecovery"][value="'+uncheckedValue.toString()+'"]').removeAttr("disabled");
} else {
$('input:radio[name="adminEnableRecovery"][value="'+uncheckedValue.toString()+'"]').attr("disabled", "true");
}
});
- $( 'input:radio[name="adminEnableRecovery"]' ).change(
+ $( 'input:radio[name="adminEnableRecovery"]' ).change(
function() {
var recoveryStatus = $( this ).val();
var oldStatus = (1+parseInt(recoveryStatus)) % 2;
- var recoveryPassword = $( '#recoveryPassword' ).val();
+ var recoveryPassword = $( '#encryptionRecoveryPassword' ).val();
$.post(
OC.filePath( 'files_encryption', 'ajax', 'adminrecovery.php' )
, { adminEnableRecovery: recoveryStatus, recoveryPassword: recoveryPassword }
@@ -57,11 +58,10 @@ $(document).ready(function(){
} else {
OC.Notification.hide();
if (recoveryStatus === "0") {
- $('button:button[name="submitChangeRecoveryKey"]').attr("disabled", "true");
- $('input:password[name="changeRecoveryPassword"]').attr("disabled", "true");
- $('input:password[name="changeRecoveryPassword"]').val("");
+ $('p[name="changeRecoveryPasswordBlock"]').attr("class", "hidden");
} else {
- $('input:password[name="changeRecoveryPassword"]').removeAttr("disabled");
+ $('input:password[name="changeRecoveryPassword"]').val("");
+ $('p[name="changeRecoveryPasswordBlock"]').removeAttr("class");
}
}
}
@@ -72,9 +72,11 @@ $(document).ready(function(){
// change recovery password
$('input:password[name="changeRecoveryPassword"]').keyup(function(event) {
- var oldRecoveryPassword = $('input:password[id="oldRecoveryPassword"]').val();
- var newRecoveryPassword = $('input:password[id="newRecoveryPassword"]').val();
- if (newRecoveryPassword != '' && oldRecoveryPassword != '' ) {
+ var oldRecoveryPassword = $('#oldEncryptionRecoveryPassword').val();
+ var newRecoveryPassword = $('#newEncryptionRecoveryPassword').val();
+ var newRecoveryPasswordRepeated = $('#repeatedNewEncryptionRecoveryPassword').val();
+ console.log("new: " + newRecoveryPassword + " - repeated: " + newRecoveryPasswordRepeated);
+ if (newRecoveryPassword !== '' && oldRecoveryPassword !== '' && newRecoveryPassword === newRecoveryPasswordRepeated) {
$('button:button[name="submitChangeRecoveryKey"]').removeAttr("disabled");
} else {
$('button:button[name="submitChangeRecoveryKey"]').attr("disabled", "true");
@@ -83,8 +85,8 @@ $(document).ready(function(){
$('button:button[name="submitChangeRecoveryKey"]').click(function() {
- var oldRecoveryPassword = $('input:password[id="oldRecoveryPassword"]').val();
- var newRecoveryPassword = $('input:password[id="newRecoveryPassword"]').val();
+ var oldRecoveryPassword = $('#oldEncryptionRecoveryPassword').val();
+ var newRecoveryPassword = $('#newEncryptionRecoveryPassword').val();
OC.msg.startSaving('#encryption .msg');
$.post(
OC.filePath( 'files_encryption', 'ajax', 'changeRecoveryPassword.php' )
@@ -98,5 +100,5 @@ $(document).ready(function(){
}
);
});
-
+
});
diff --git a/apps/files_encryption/templates/settings-admin.php b/apps/files_encryption/templates/settings-admin.php
index f5f7582c2a..3a6adc09f4 100644
--- a/apps/files_encryption/templates/settings-admin.php
+++ b/apps/files_encryption/templates/settings-admin.php
@@ -10,14 +10,17 @@
t("Enable recovery key (allow to recover users files in case of password loss):")); ?>
-
+
+
+
+
/>
+ />
t("Enabled")); ?>
@@ -25,27 +28,32 @@
type='radio'
name='adminEnableRecovery'
value='0'
- />
+ />
t("Disabled")); ?>
-
+
>
t("Change recovery key password:")); ?>
/>
-
+ id="oldEncryptionRecoveryPassword"
+
+
/>
-
+ id="newEncryptionRecoveryPassword"
+
+
+ t("Repeat New Recovery key password")); ?>