*/
class Session {
+
+ private $view;
/**
* @brief if session is started, check if ownCloud key pair is set up, if not create it
*
* The ownCloud key pair is used to allow public link sharing even if encryption is enabled
*/
- public function __construct() {
+ public function __construct( \OC_FilesystemView $view ) {
+
+ $this->view = $view;
+
+ if ( ! $this->view->is_dir( 'owncloud_private_key' ) ) {
- $view = new \OC\Files\View('/');
- if (!$view->is_dir('owncloud_private_key')) {
- $view->mkdir('owncloud_private_key');
+ $this->view->mkdir('owncloud_private_key');
}
- if (!$view->file_exists("/public-keys/owncloud.public.key") || !$view->file_exists("/owncloud_private_key/owncloud.private.key") ) {
+
+ if (
+ ! $this->view->file_exists("/public-keys/owncloud.public.key")
+ || ! $this->view->file_exists("/owncloud_private_key/owncloud.private.key" )
+ ) {
$keypair = Crypt::createKeypair();
\OC_FileProxy::$enabled = false;
+
// Save public key
- $view->file_put_contents( '/public-keys/ownCloud.public.key', $keypair['publicKey'] );
+ $this->view->file_put_contents( '/public-keys/owncloud.public.key', $keypair['publicKey'] );
+
// Encrypt private key empthy passphrase
$encryptedPrivateKey = Crypt::symmetricEncryptFileContent( $keypair['privateKey'], '' );
+
// Save private key
- $view->file_put_contents( '/owncloud_private_key/ownCloud.private.key', $encryptedPrivateKey );
+ $this->view->file_put_contents( '/owncloud_private_key/owncloud.private.key', $encryptedPrivateKey );
\OC_FileProxy::$enabled = true;
+
}
}