diff options
author | Bjoern Schiessle <schiessle@owncloud.com> | 2014-10-07 12:06:46 +0200 |
---|---|---|
committer | Bjoern Schiessle <schiessle@owncloud.com> | 2014-10-07 12:32:09 +0200 |
commit | 5fa1cbc4e5aa0c0127713859291a0b14a8b8e348 (patch) | |
tree | 1fca9cf2185fb2b20be2b07b2d77d6606fc2c5bf | |
parent | 94a9ff1cd8b18577e16bde90146b0be84223d725 (diff) | |
download | nextcloud-server-5fa1cbc4e5aa0c0127713859291a0b14a8b8e348.tar.gz nextcloud-server-5fa1cbc4e5aa0c0127713859291a0b14a8b8e348.zip |
improved visual feedback if recovery key gets enabled/disabled
-rw-r--r-- | apps/files_encryption/ajax/adminrecovery.php | 48 | ||||
-rw-r--r-- | apps/files_encryption/js/settings-admin.js | 32 | ||||
-rw-r--r-- | apps/files_encryption/templates/settings-admin.php | 11 |
3 files changed, 41 insertions, 50 deletions
diff --git a/apps/files_encryption/ajax/adminrecovery.php b/apps/files_encryption/ajax/adminrecovery.php index 070ca6f667e..684fd51ae13 100644 --- a/apps/files_encryption/ajax/adminrecovery.php +++ b/apps/files_encryption/ajax/adminrecovery.php @@ -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))); +} diff --git a/apps/files_encryption/js/settings-admin.js b/apps/files_encryption/js/settings-admin.js index 4c6b1bac2f7..38a5cd1b556 100644 --- a/apps/files_encryption/js/settings-admin.js +++ b/apps/files_encryption/js/settings-admin.js @@ -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(); diff --git a/apps/files_encryption/templates/settings-admin.php b/apps/files_encryption/templates/settings-admin.php index 2d5f7084c96..e97f64b6482 100644 --- a/apps/files_encryption/templates/settings-admin.php +++ b/apps/files_encryption/templates/settings-admin.php @@ -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> |