Merge pull request #6048 from owncloud/encryption_initial_enc_indicator
show a message at the log-in screen if inital encryption take place
This commit is contained in:
commit
54b24ca88d
6 changed files with 88 additions and 16 deletions
27
apps/files_encryption/ajax/getMigrationStatus.php
Normal file
27
apps/files_encryption/ajax/getMigrationStatus.php
Normal file
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2013, Bjoern Schiessle <schiessle@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or later.
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
* @brief check migration status
|
||||
*/
|
||||
use OCA\Encryption\Util;
|
||||
|
||||
\OCP\JSON::checkAppEnabled('files_encryption');
|
||||
|
||||
$user = isset($_POST['user']) ? $_POST['user'] : '';
|
||||
$password = isset($_POST['password']) ? $_POST['password'] : '';
|
||||
|
||||
$migrationCompleted = true;
|
||||
|
||||
if ($user !== '' && $password !== '') {
|
||||
if (\OCP\User::checkPassword($user, $password)) {
|
||||
$util = new Util(new \OC_FilesystemView('/'), $user);
|
||||
if ($util->getMigrationStatus() !== Util::MIGRATION_COMPLETED) {
|
||||
$migrationCompleted = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
\OCP\JSON::success(array('data' => array('migrationCompleted' => $migrationCompleted)));
|
|
@ -10,6 +10,8 @@ OC::$CLASSPATH['OCA\Encryption\Session'] = 'files_encryption/lib/session.php';
|
|||
OC::$CLASSPATH['OCA\Encryption\Capabilities'] = 'files_encryption/lib/capabilities.php';
|
||||
OC::$CLASSPATH['OCA\Encryption\Helper'] = 'files_encryption/lib/helper.php';
|
||||
|
||||
\OCP\Util::addscript('files_encryption', 'detect-migration');
|
||||
|
||||
if (!OC_Config::getValue('maintenance', false)) {
|
||||
OC_FileProxy::register(new OCA\Encryption\Proxy());
|
||||
|
||||
|
@ -52,4 +54,3 @@ if (!OC_Config::getValue('maintenance', false)) {
|
|||
// Register settings scripts
|
||||
OCP\App::registerAdmin('files_encryption', 'settings-admin');
|
||||
OCP\App::registerPersonal('files_encryption', 'settings-personal');
|
||||
|
||||
|
|
29
apps/files_encryption/js/detect-migration.js
Normal file
29
apps/files_encryption/js/detect-migration.js
Normal file
|
@ -0,0 +1,29 @@
|
|||
/**
|
||||
* Copyright (c) 2013
|
||||
* Bjoern Schiessle <schiessle@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
$('form[name="login"]').on('submit', function() {
|
||||
var user = $('#user').val();
|
||||
var password = $('#password').val();
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: OC.linkTo('files_encryption', 'ajax/getMigrationStatus.php'),
|
||||
dataType: 'json',
|
||||
data: {user: user, password: password},
|
||||
async: false,
|
||||
success: function(response) {
|
||||
if (response.data.migrationCompleted === false) {
|
||||
var message = t('files_encryption', 'Initial encryption started... This can take some time. Please wait.');
|
||||
$('#messageText').text(message);
|
||||
$('#message').removeClass('hidden').addClass('update');
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
|
@ -1245,7 +1245,6 @@ class Util {
|
|||
$sql = 'SELECT `migration_status` FROM `*PREFIX*encryption` WHERE `uid` = ?';
|
||||
|
||||
$args = array($this->userId);
|
||||
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
|
||||
$result = $query->execute($args);
|
||||
|
@ -1266,20 +1265,23 @@ class Util {
|
|||
// If no record is found
|
||||
if (empty($migrationStatus)) {
|
||||
\OCP\Util::writeLog('Encryption library', "Could not get migration status for " . $this->userId . ", no record found", \OCP\Util::ERROR);
|
||||
// insert missing entry in DB with status open
|
||||
$sql = 'INSERT INTO `*PREFIX*encryption` (`uid`,`mode`,`recovery_enabled`,`migration_status`) VALUES (?,?,?,?)';
|
||||
$args = array(
|
||||
$this->userId,
|
||||
'server-side',
|
||||
0,
|
||||
self::MIGRATION_OPEN
|
||||
);
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$query->execute($args);
|
||||
// insert missing entry in DB with status open if the user exists
|
||||
if (\OCP\User::userExists($this->userId)) {
|
||||
$sql = 'INSERT INTO `*PREFIX*encryption` (`uid`,`mode`,`recovery_enabled`,`migration_status`) VALUES (?,?,?,?)';
|
||||
$args = array(
|
||||
$this->userId,
|
||||
'server-side',
|
||||
0,
|
||||
self::MIGRATION_OPEN
|
||||
);
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$query->execute($args);
|
||||
|
||||
return self::MIGRATION_OPEN;
|
||||
// If a record is found
|
||||
} else {
|
||||
return self::MIGRATION_OPEN;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else { // If a record is found
|
||||
return (int)$migrationStatus[0];
|
||||
}
|
||||
|
||||
|
|
|
@ -283,6 +283,11 @@ input[type="submit"].enabled {
|
|||
opacity: .6;
|
||||
}
|
||||
|
||||
#body-login p#message img {
|
||||
vertical-align: middle;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#body-login div.buttons { text-align:center; }
|
||||
#body-login p.info {
|
||||
width: 22em;
|
||||
|
@ -481,6 +486,10 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
|
|||
color: #ccc;
|
||||
}
|
||||
|
||||
#body-login .update img.float-spinner {
|
||||
float: left;
|
||||
}
|
||||
|
||||
#body-user .warning, #body-settings .warning {
|
||||
margin-top: 8px;
|
||||
padding: 5px;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<!--[if IE 8]><style>input[type="checkbox"]{padding:0;}</style><![endif]-->
|
||||
<form method="post">
|
||||
<form method="post" name="login">
|
||||
<fieldset>
|
||||
<?php if (!empty($_['redirect_url'])) {
|
||||
print_unescaped('<input type="hidden" name="redirect_url" value="' . OC_Util::sanitizeHTML($_['redirect_url']) . '" />');
|
||||
|
@ -18,6 +18,10 @@
|
|||
<small><?php p($l->t('Please contact your administrator.')); ?></small>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<p id="message" class="hidden">
|
||||
<img class="float-spinner" src="<?php p(\OCP\Util::imagePath('core', 'loading-dark.gif'));?>"/>
|
||||
<span id="messageText"></span>
|
||||
</p>
|
||||
<p class="infield grouptop">
|
||||
<input type="text" name="user" id="user" placeholder=""
|
||||
value="<?php p($_['username']); ?>"<?php p($_['user_autofocus'] ? ' autofocus' : ''); ?>
|
||||
|
|
Loading…
Reference in a new issue