introduce pre-disable-app hook and use it for the encryption app to reset migration status if the app was disabled
This commit is contained in:
parent
aa7403500f
commit
c4aef89278
|
@ -22,6 +22,9 @@ if (!OC_Config::getValue('maintenance', false)) {
|
|||
// Filesystem related hooks
|
||||
OCA\Encryption\Helper::registerFilesystemHooks();
|
||||
|
||||
// App manager related hooks
|
||||
OCA\Encryption\Helper::registerAppHooks();
|
||||
|
||||
stream_wrapper_register('crypt', 'OCA\Encryption\Stream');
|
||||
|
||||
// check if we are logged in
|
||||
|
|
|
@ -543,4 +543,17 @@ class Hooks {
|
|||
|
||||
\OC_FileProxy::$enabled = $proxyStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* set migration status back to '0' so that all new files get encrypted
|
||||
* if the app gets enabled again
|
||||
* @param array $params contains the app ID
|
||||
*/
|
||||
public static function preDisable($params) {
|
||||
if ($params['app'] === 'files_encryption') {
|
||||
$query = \OC_DB::prepare('UPDATE `*PREFIX*encryption` SET `migration_status`=0');
|
||||
$query->execute();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -62,6 +62,15 @@ class Helper {
|
|||
\OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OCA\Encryption\Hooks', 'postRename');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief register filesystem related hooks
|
||||
*
|
||||
*/
|
||||
public static function registerAppHooks() {
|
||||
|
||||
\OCP\Util::connectHook('OC_App', 'pre_disable', 'OCA\Encryption\Hooks', 'preDisable');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief setup user for files_encryption
|
||||
*
|
||||
|
|
|
@ -259,6 +259,7 @@ class OC_App{
|
|||
*/
|
||||
public static function disable( $app ) {
|
||||
// check if app is a shipped app or not. if not delete
|
||||
\OC_Hook::emit('OC_App', 'pre_disable', array('app' => $app));
|
||||
OC_Appconfig::setValue( $app, 'enabled', 'no' );
|
||||
|
||||
// check if app is a shipped app or not. if not delete
|
||||
|
|
Loading…
Reference in New Issue