*
*/
-use OCA\Encryption\AppInfo\Encryption;
+namespace OCA\Encryption\AppInfo;
-if (!OC::$CLI) {
+if (!\OC::$CLI) {
$di = \OC::$server;
- $app = new Encryption('encryption',
- [],
- $di->getEncryptionManager(),
- $di->getConfig());
-
- $app->boot();
+ $app = new Application();
}
--- /dev/null
+<?php
+/**
+ * @author Clark Tomlinson <clark@owncloud.com>
+ * @since 3/11/15, 11:03 AM
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+namespace OCA\Encryption\AppInfo;
+
+
+use OC\Files\Filesystem;
+use OC\Files\View;
+use OCA\Encryption\Crypto\Crypt;
+use OCA\Encryption\HookManager;
+use OCA\Encryption\Hooks\UserHooks;
+use OCA\Encryption\KeyManager;
+use OCA\Encryption\Recovery;
+use OCA\Encryption\Users\Setup;
+use OCA\Encryption\Util;
+use OCP\App;
+use OCP\AppFramework\IAppContainer;
+use OCP\Encryption\IManager;
+use OCP\IConfig;
+
+
+class Application extends \OCP\AppFramework\App {
+ /**
+ * @var IManager
+ */
+ private $encryptionManager;
+ /**
+ * @var IConfig
+ */
+ private $config;
+
+ /**
+ * @param $appName
+ * @param array $urlParams
+ */
+ public function __construct($urlParams = array()) {
+ parent::__construct('encryption', $urlParams);
+ $this->encryptionManager = \OC::$server->getEncryptionManager();
+ $this->config = \OC::$server->getConfig();
+ $this->registerServices();
+ $this->registerEncryptionModule();
+ $this->registerHooks();
+ $this->registerSettings();
+ }
+
+ /**
+ *
+ */
+ public function registerHooks() {
+ if (!$this->config->getSystemValue('maintenance', false)) {
+
+ $container = $this->getContainer();
+ $server = $container->getServer();
+ // Register our hooks and fire them.
+ $hookManager = new HookManager();
+
+ $hookManager->registerHook([
+ new UserHooks($container->query('KeyManager'),
+ $server->getLogger(),
+ $container->query('UserSetup'),
+ $server->getUserSession(),
+ new \OCP\Util(),
+ $container->query('Util'),
+ $server->getSession()),
+ ]);
+
+ $hookManager->fireHooks();
+
+ } else {
+ // Logout user if we are in maintenance to force re-login
+ $this->getContainer()->getServer()->getUserSession()->logout();
+ }
+ }
+
+ /**
+ *
+ */
+ public function registerEncryptionModule() {
+ $container = $this->getContainer();
+ $container->registerService('EncryptionModule', function (IAppContainer $c) {
+ return new \OCA\Encryption\Crypto\Encryption(
+ $c->query('Crypt'),
+ $c->query('KeyManager'),
+ $c->query('Util'));
+ });
+ $module = $container->query('EncryptionModule');
+ $this->encryptionManager->registerEncryptionModule($module);
+ }
+
+ /**
+ *
+ */
+ public function registerServices() {
+ $container = $this->getContainer();
+
+ $container->registerService('Crypt',
+ function (IAppContainer $c) {
+ $server = $c->getServer();
+ return new Crypt($server->getLogger(),
+ $server->getUserSession(),
+ $server->getConfig());
+ });
+
+ $container->registerService('KeyManager',
+ function (IAppContainer $c) {
+ $server = $c->getServer();
+
+ return new KeyManager($server->getEncryptionKeyStorage(\OCA\Encryption\Crypto\Encryption::ID),
+ $c->query('Crypt'),
+ $server->getConfig(),
+ $server->getUserSession(),
+ $server->getSession(),
+ $server->getLogger()
+ );
+ });
+
+
+ $container->registerService('Recovery',
+ function (IAppContainer $c) {
+ $server = $c->getServer();
+
+ return new Recovery(
+ $server->getUserSession(),
+ $c->query('Crypt'),
+ $server->getSecureRandom(),
+ $c->query('KeyManager'),
+ $server->getConfig(),
+ $server->getEncryptionKeyStorage(\OCA\Encryption\Crypto\Encryption::ID));
+ });
+
+ $container->registerService('RecoveryController', function (IAppContainer $c) {
+ $server = $c->getServer();
+ return new \OCA\Encryption\Controller\RecoveryController(
+ $c->getAppName(),
+ $server->getRequest(),
+ $server->getConfig(),
+ $server->getL10N($c->getAppName()),
+ $c->query('Recovery'));
+ });
+
+ $container->registerService('UserSetup',
+ function (IAppContainer $c) {
+ $server = $c->getServer();
+ return new Setup($server->getLogger(),
+ $server->getUserSession(),
+ $c->query('Crypt'),
+ $c->query('KeyManager'));
+ });
+
+ $container->registerService('Util',
+ function (IAppContainer $c) {
+ $server = $c->getServer();
+
+ return new Util(new View(),
+ new Filesystem(),
+ $c->query('Crypt'),
+ $c->query('KeyManager'),
+ $server->getLogger(),
+ $server->getUserSession(),
+ $server->getConfig()
+ );
+ });
+
+ }
+
+ /**
+ *
+ */
+ public function registerSettings() {
+
+// script('encryption', 'encryption');
+// script('encryption', 'detect-migration');
+
+
+ // Register settings scripts
+ App::registerAdmin('encryption', 'settings/settings-admin');
+ App::registerPersonal('encryption', 'settings/settings-personal');
+ }
+}
+++ /dev/null
-<?php
-/**
- * @author Clark Tomlinson <clark@owncloud.com>
- * @since 3/11/15, 11:03 AM
- * @copyright Copyright (c) 2015, ownCloud, Inc.
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-namespace OCA\Encryption\AppInfo;
-
-
-use OC\Files\Filesystem;
-use OC\Files\View;
-use OCA\Encryption\Crypto\Crypt;
-use OCA\Encryption\HookManager;
-use OCA\Encryption\Hooks\UserHooks;
-use OCA\Encryption\KeyManager;
-use OCA\Encryption\Recovery;
-use OCA\Encryption\Users\Setup;
-use OCA\Encryption\Util;
-use OCP\App;
-use OCP\AppFramework\IAppContainer;
-use OCP\Encryption\IManager;
-use OCP\IConfig;
-
-
-class Encryption extends \OCP\AppFramework\App {
- /**
- * @var IManager
- */
- private $encryptionManager;
- /**
- * @var IConfig
- */
- private $config;
-
- /**
- * @param $appName
- * @param array $urlParams
- * @param IManager $encryptionManager
- * @param IConfig $config
- */
- public function __construct($appName, $urlParams = array(), IManager $encryptionManager, IConfig $config) {
- parent::__construct($appName, $urlParams);
- $this->encryptionManager = $encryptionManager;
- $this->config = $config;
- }
-
- /**
- *
- */
- public function boot() {
- $this->registerServices();
- $this->registerEncryptionModule();
- $this->registerHooks();
- $this->registerSettings();
- }
-
- /**
- *
- */
- public function registerHooks() {
- if (!$this->config->getSystemValue('maintenance', false)) {
-
- $container = $this->getContainer();
- $server = $container->getServer();
- // Register our hooks and fire them.
- $hookManager = new HookManager();
-
- $hookManager->registerHook([
- new UserHooks($container->query('KeyManager'),
- $server->getLogger(),
- $container->query('UserSetup'),
- $server->getUserSession(),
- new \OCP\Util(),
- $container->query('Util'),
- $server->getSession()),
- ]);
-
- $hookManager->fireHooks();
-
- } else {
- // Logout user if we are in maintenance to force re-login
- $this->getContainer()->getServer()->getUserSession()->logout();
- }
- }
-
- /**
- *
- */
- public function registerEncryptionModule() {
- $container = $this->getContainer();
- $container->registerService('EncryptionModule', function (IAppContainer $c) {
- return new \OCA\Encryption\Crypto\Encryption(
- $c->query('Crypt'),
- $c->query('KeyManager'),
- $c->query('Util'));
- });
- $module = $container->query('EncryptionModule');
- $this->encryptionManager->registerEncryptionModule($module);
- }
-
- /**
- *
- */
- public function registerServices() {
- $container = $this->getContainer();
-
- $container->registerService('Crypt',
- function (IAppContainer $c) {
- $server = $c->getServer();
- return new Crypt($server->getLogger(),
- $server->getUserSession(),
- $server->getConfig());
- });
-
- $container->registerService('KeyManager',
- function (IAppContainer $c) {
- $server = $c->getServer();
-
- return new KeyManager($server->getEncryptionKeyStorage(\OCA\Encryption\Crypto\Encryption::ID),
- $c->query('Crypt'),
- $server->getConfig(),
- $server->getUserSession(),
- $server->getSession(),
- $server->getLogger()
- );
- });
-
-
- $container->registerService('Recovery',
- function (IAppContainer $c) {
- $server = $c->getServer();
-
- return new Recovery(
- $server->getUserSession(),
- $c->query('Crypt'),
- $server->getSecureRandom(),
- $c->query('KeyManager'),
- $server->getConfig(),
- $server->getEncryptionKeyStorage(\OCA\Encryption\Crypto\Encryption::ID));
- });
-
- $container->registerService('UserSetup',
- function (IAppContainer $c) {
- $server = $c->getServer();
- return new Setup($server->getLogger(),
- $server->getUserSession(),
- $c->query('Crypt'),
- $c->query('KeyManager'));
- });
-
- $container->registerService('Util',
- function (IAppContainer $c) {
- $server = $c->getServer();
-
- return new Util(new View(),
- new Filesystem(),
- $c->query('Crypt'),
- $c->query('KeyManager'),
- $server->getLogger(),
- $server->getUserSession(),
- $server->getConfig()
- );
- });
-
- }
-
- /**
- *
- */
- public function registerSettings() {
-
-// script('encryption', 'encryption');
-// script('encryption', 'detect-migration');
-
-
- // Register settings scripts
- App::registerAdmin('encryption', 'settings/settings-admin');
- App::registerPersonal('encryption', 'settings/settings-personal');
- }
-}
*/
-use OCP\AppFramework\App;
+namespace OCA\Encryption\AppInfo;
-(new App('encryption'))->registerRoutes($this, array('routes' => array(
+(new Application())->registerRoutes($this, array('routes' => array(
[
- 'name' => 'recovery#adminRecovery',
+ 'name' => 'Recovery#adminRecovery',
'url' => '/ajax/adminRecovery',
'verb' => 'POST'
],
[
- 'name' => 'recovery#userRecovery',
+ 'name' => 'Recovery#userRecovery',
'url' => '/ajax/userRecovery',
'verb' => 'POST'
]
var confirmPassword = $( '#repeatEncryptionRecoveryPassword' ).val();
OC.msg.startSaving('#encryptionSetRecoveryKey .msg');
$.post(
- OC.filePath( 'files_encryption', 'ajax', 'adminrecovery.php' )
+ OC.generateUrl('/apps/encryption/ajax/adminRecovery')
, { adminEnableRecovery: recoveryStatus, recoveryPassword: recoveryPassword, confirmPassword: confirmPassword }
, function( result ) {
OC.msg.finishedSaving('#encryptionSetRecoveryKey .msg', result);
var confirmNewPassword = $('#repeatedNewEncryptionRecoveryPassword').val();
OC.msg.startSaving('#encryptionChangeRecoveryKey .msg');
$.post(
- OC.filePath( 'files_encryption', 'ajax', 'changeRecoveryPassword.php' )
+ OC.filePath( 'encryption', 'ajax', 'changeRecoveryPassword.php' )
, { oldPassword: oldRecoveryPassword, newPassword: newRecoveryPassword, confirmPassword: confirmNewPassword }
, function( data ) {
OC.msg.finishedSaving('#encryptionChangeRecoveryKey .msg', data);
if ($encryptedKey) {
$this->setPrivateKey($uid, $encryptedKey);
- $this->config->setAppValue('encryption', 'recoveryAdminEnabled', 1);
+ $this->config->setAppValue('encryption', 'recoveryAdminEnabled', 0);
return true;
}
return false;
$tmpl->assign('recoveryEnabled', $recoveryAdminEnabled);
$tmpl->assign('initStatus', KeyManager::$session->get('initStatus'));
-\OCP\Util::addscript('files_encryption', 'settings-admin');
-\OCP\Util::addscript('core', 'multiselect');
-
return $tmpl->fetchPage();
<?php
- /** @var array $_ */
- /** @var OC_L10N $l */
+/** @var array $_ */
+/** @var OC_L10N $l */
+script('encryption', 'settings-admin');
+script('core', 'multiselect');
?>
<form id="encryption" class="section">
<h2><?php p($l->t('ownCloud basic encryption module')); ?></h2>
public function registerEncryptionModule(IEncryptionModule $module) {
$id = $module->getId();
$name = $module->getDisplayName();
+
+ // FIXME why do we load the same encryption module multiple times
+ /*
if (isset($this->encryptionModules[$id])) {
$message = 'Id "' . $id . '" already used by encryption module "' . $name . '"';
throw new Exceptions\ModuleAlreadyExistsException($message);
}
-
+*/
$defaultEncryptionModuleId = $this->getDefaultEncryptionModuleId();
if (empty($defaultEncryptionModuleId)) {
*/
function getL10N($app, $lang = null);
+ /**
+ * @return \OC\Encryption\Manager
+ */
+ function getEncryptionManager();
+
+ /**
+ * @param string $encryptionModuleId encryption module ID
+ *
+ * @return \OCP\Encryption\Keys\IStorage
+ */
+ function getEncryptionKeyStorage($encryptionModuleId);
+
/**
* Returns the URL generator
*