]> source.dussan.org Git - nextcloud-server.git/commitdiff
improved visual feedback if recovery key gets enabled/disabled
authorBjoern Schiessle <schiessle@owncloud.com>
Tue, 7 Oct 2014 10:06:46 +0000 (12:06 +0200)
committerBjoern Schiessle <schiessle@owncloud.com>
Tue, 7 Oct 2014 10:32:09 +0000 (12:32 +0200)
apps/files_encryption/ajax/adminrecovery.php
apps/files_encryption/js/settings-admin.js
apps/files_encryption/templates/settings-admin.php

index 070ca6f667e2e789194bc69bce4cc06d2cf507a4..684fd51ae136543c299ef6943bfb72272fc97f1e 100644 (file)
@@ -16,8 +16,28 @@ use OCA\Encryption;
 $l = \OC::$server->getL10N('files_encryption');
 
 $return = false;
-// Enable recoveryAdmin
+$errorMessage = $l->t("Unknown error");
+
+//check if both passwords are the same
+if (empty($_POST['recoveryPassword'])) {
+       $errorMessage = $l->t('Missing recovery key password');
+       \OCP\JSON::error(array('data' => array('message' => $errorMessage)));
+       exit();
+}
 
+if (empty($_POST['confirmPassword'])) {
+       $errorMessage = $l->t('Please repeat the recovery key password');
+       \OCP\JSON::error(array('data' => array('message' => $errorMessage)));
+       exit();
+}
+
+if ($_POST['recoveryPassword'] !== $_POST['confirmPassword']) {
+       $errorMessage = $l->t('Repeated recovery key password does not match the provided recovery key password');
+       \OCP\JSON::error(array('data' => array('message' => $errorMessage)));
+       exit();
+}
+
+// Enable recoveryAdmin
 $recoveryKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryKeyId');
 
 if (isset($_POST['adminEnableRecovery']) && $_POST['adminEnableRecovery'] === '1') {
@@ -26,14 +46,9 @@ if (isset($_POST['adminEnableRecovery']) && $_POST['adminEnableRecovery'] === '1
 
        // Return success or failure
        if ($return) {
-               \OCP\JSON::success(array('data' => array('message' => $l->t('Recovery key successfully enabled'))));
+               $successMessage = $l->t('Recovery key successfully enabled');
        } else {
-               \OCP\JSON::error(array(
-                                                         'data' => array(
-                                                                 'message' => $l->t(
-                                                                         'Could not enable recovery key. Please check your recovery key password!')
-                                                         )
-                                                ));
+               $errorMessage = $l->t('Could not disable recovery key. Please check your recovery key password!');
        }
 
 // Disable recoveryAdmin
@@ -43,17 +58,16 @@ if (isset($_POST['adminEnableRecovery']) && $_POST['adminEnableRecovery'] === '1
 ) {
        $return = \OCA\Encryption\Helper::adminDisableRecovery($_POST['recoveryPassword']);
 
-       // Return success or failure
        if ($return) {
-               \OCP\JSON::success(array('data' => array('message' => $l->t('Recovery key successfully disabled'))));
+               $successMessage = $l->t('Recovery key successfully disabled');
        } else {
-               \OCP\JSON::error(array(
-                                                         'data' => array(
-                                                                 'message' => $l->t(
-                                                                         'Could not disable recovery key. Please check your recovery key password!')
-                                                         )
-                                                ));
+               $errorMessage = $l->t('Could not disable recovery key. Please check your recovery key password!');
        }
 }
 
-
+// Return success or failure
+if ($return) {
+       \OCP\JSON::success(array('data' => array('message' => $successMessage)));
+} else {
+       \OCP\JSON::error(array('data' => array('message' => $errorMessage)));
+}
index 4c6b1bac2f7c5169961e2d0a674af0754de52035..38a5cd1b556b69038ebcf37a5da2787c9422165d 100644 (file)
@@ -9,32 +9,21 @@
 
 $(document).ready(function(){
 
-       $('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 !== '' && 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(
                function() {
                        var recoveryStatus = $( this ).val();
                        var oldStatus = (1+parseInt(recoveryStatus)) % 2;
                        var recoveryPassword = $( '#encryptionRecoveryPassword' ).val();
+                       var confirmPassword = $( '#repeatEncryptionRecoveryPassword' ).val();
+                       OC.msg.startSaving('#encryptionSetRecoveryKey .msg');
                        $.post(
                                OC.filePath( 'files_encryption', 'ajax', 'adminrecovery.php' )
-                               , { adminEnableRecovery: recoveryStatus, recoveryPassword: recoveryPassword }
+                               , { adminEnableRecovery: recoveryStatus, recoveryPassword: recoveryPassword, confirmPassword: confirmPassword }
                                ,  function( result ) {
+                                       OC.msg.finishedSaving('#encryptionSetRecoveryKey .msg', result);
                                        if (result.status === "error") {
-                                               OC.Notification.show(t('admin', result.data.message));
                                                $('input:radio[name="adminEnableRecovery"][value="'+oldStatus.toString()+'"]').attr("checked", "true");
                                        } else {
-                                               OC.Notification.hide();
                                                if (recoveryStatus === "0") {
                                                        $('p[name="changeRecoveryPasswordBlock"]').addClass("hidden");
                                                } else {
@@ -49,19 +38,6 @@ $(document).ready(function(){
 
        // change recovery password
 
-       $('input:password[name="changeRecoveryPassword"]').keyup(function(event) {
-               var oldRecoveryPassword = $('#oldEncryptionRecoveryPassword').val();
-               var newRecoveryPassword = $('#newEncryptionRecoveryPassword').val();
-               var newRecoveryPasswordRepeated = $('#repeatedNewEncryptionRecoveryPassword').val();
-
-               if (newRecoveryPassword !== '' && oldRecoveryPassword !== '' && newRecoveryPassword === newRecoveryPasswordRepeated) {
-                       $('button:button[name="submitChangeRecoveryKey"]').removeAttr("disabled");
-               } else {
-                       $('button:button[name="submitChangeRecoveryKey"]').attr("disabled", "true");
-               }
-       });
-
-
        $('button:button[name="submitChangeRecoveryKey"]').click(function() {
                var oldRecoveryPassword = $('#oldEncryptionRecoveryPassword').val();
                var newRecoveryPassword = $('#newEncryptionRecoveryPassword').val();
index 2d5f7084c96adf87a783caefbd123ce8598b2609..e97f64b6482f5d6503589945fbc51c76eb6d20ca 100644 (file)
@@ -4,8 +4,9 @@
        <?php if($_["initStatus"] === \OCA\Encryption\Session::NOT_INITIALIZED): ?>
                <?php p($l->t("Encryption App is enabled but your keys are not initialized, please log-out and log-in again")); ?>
        <?php else: ?>
-       <p>
+       <p id="encryptionSetRecoveryKey">
                <?php p($l->t("Enable recovery key (allow to recover users files in case of password loss):")); ?>
+               <span class="msg"></span>
                <br/>
                <br/>
                <input type="password" name="encryptionRecoveryPassword" id="encryptionRecoveryPassword"/>
@@ -19,7 +20,7 @@
                        id='adminEnableRecovery'
                        name='adminEnableRecovery'
                        value='1'
-                       <?php echo($_["recoveryEnabled"] === '1' ? 'checked="checked"' : 'disabled'); ?> />
+                       <?php echo($_["recoveryEnabled"] === '1' ? 'checked="checked"' : ''); ?> />
                <label for="adminEnableRecovery"><?php p($l->t("Enabled")); ?></label>
                <br/>
 
@@ -28,7 +29,7 @@
                        id='adminDisableRecovery'
                        name='adminEnableRecovery'
                        value='0'
-                       <?php echo($_["recoveryEnabled"] === '0' ? 'checked="checked"' : 'disabled'); ?> />
+                       <?php echo($_["recoveryEnabled"] === '0' ? 'checked="checked"' : ''); ?> />
                <label for="adminDisableRecovery"><?php p($l->t("Disabled")); ?></label>
        </p>
        <br/><br/>
@@ -57,8 +58,8 @@
                <br/>
                <button
                        type="button"
-                       name="submitChangeRecoveryKey"
-                       disabled><?php p($l->t("Change Password")); ?>
+                       name="submitChangeRecoveryKey">
+                               <?php p($l->t("Change Password")); ?>
                </button>
                <span class="msg"></span>
        </p>