]> source.dussan.org Git - nextcloud-server.git/commitdiff
Squashed commit of the following:
authorBjörn Schießle <schiessle@owncloud.com>
Fri, 21 Jun 2013 08:37:51 +0000 (10:37 +0200)
committerBjörn Schießle <schiessle@owncloud.com>
Fri, 21 Jun 2013 08:37:51 +0000 (10:37 +0200)
commit 1345201c9da99a82f198e41fba24da6b0d7ae59a
Author: Björn Schießle <schiessle@owncloud.com>
Date:   Thu Jun 20 16:27:46 2013 +0200

    add l10n support

commit bf2c79c8de8710e839a4a55642a91874c374fa1c
Author: Björn Schießle <schiessle@owncloud.com>
Date:   Thu Jun 20 16:19:10 2013 +0200

    only init session if openssl extension is loaded

commit cbd52af6afbaa310bb1a534db64ff5e476dfd5d7
Author: Björn Schießle <schiessle@owncloud.com>
Date:   Thu Jun 20 12:25:40 2013 +0200

    first disable app and than show error page

commit 55baf593179c433642de59552592e6b0f1932880
Author: Björn Schießle <schiessle@owncloud.com>
Date:   Thu Jun 20 12:17:34 2013 +0200

    typo fixed

commit 1d9bef0b058e7cc3d511b81ae12d5a07660c75b2
Author: Björn Schießle <schiessle@owncloud.com>
Date:   Thu Jun 20 12:15:40 2013 +0200

    move dependency check to the encryption app

commit c186e95da526f0470e20f014f1bd9513db5518ff
Author: Björn Schießle <schiessle@owncloud.com>
Date:   Thu Jun 20 11:13:11 2013 +0200

    make sure that openssl is installed and loaded

apps/files_encryption/appinfo/app.php
apps/files_encryption/hooks/hooks.php

index 419bef1edef09183b09e92a68cbc366bbfcfd8df..d97811bb791e503052c8a85594d12555772b8920 100644 (file)
@@ -33,13 +33,18 @@ if (!OC_Config::getValue('maintenance', false)) {
                }
 
                $view = new OC_FilesystemView('/');
-               $session = new \OCA\Encryption\Session($view);
+
+               $sessionReady = false;
+               if(extension_loaded("openssl")) {
+                       $session = new \OCA\Encryption\Session($view);
+                       $sessionReady = true;
+               }
 
                $user = \OCP\USER::getUser();
                // check if user has a private key
-               if (
-                       !$view->file_exists('/' . $user . '/files_encryption/' . $user . '.private.key')
-                       && OCA\Encryption\Crypt::mode() === 'server'
+               if ($sessionReady === false
+                       || (!$view->file_exists('/' . $user . '/files_encryption/' . $user . '.private.key')
+                               && OCA\Encryption\Crypt::mode() === 'server')
                ) {
 
                        // Force the user to log-in again if the encryption key isn't unlocked
index 7698b95cfd36b9c897722df0d37c6fb7d1b544b4..e39e068cc5d341897c5621a142262c8e8974e767 100644 (file)
@@ -38,11 +38,15 @@ class Hooks {
         * @note This method should never be called for users using client side encryption\r
         */\r
        public static function login($params) {\r
-\r
-               // Manually initialise Filesystem{} singleton with correct \r
-               // fake root path, in order to avoid fatal webdav errors\r
-               // NOTE: disabled because this give errors on webdav!\r
-               //\OC\Files\Filesystem::init( $params['uid'], '/' . 'files' . '/' );\r
+               $l = new \OC_L10N('files_encryption');\r
+               //check if openssl is available\r
+               if(!extension_loaded("openssl") ) {\r
+                       $error_msg = $l->t("PHP module OpenSSL is not installed.");\r
+                       $hint = $l->t('Please ask your server administrator to install the module. For now the encryption app was disabled.');\r
+                       \OC_App::disable('files_encryption');\r
+                       \OCP\Util::writeLog('Encryption library', $error_msg . ' ' . $hint, \OCP\Util::ERROR);\r
+                       \OCP\Template::printErrorPage($error_msg, $hint);\r
+               }\r
 \r
                $view = new \OC_FilesystemView('/');\r
 \r