summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern Schiessle <schiessle@owncloud.com>2015-05-27 10:37:12 +0200
committerBjoern Schiessle <schiessle@owncloud.com>2015-05-27 21:00:02 +0200
commit5549641f1f977ab2b105b8f9d7b8c6829c0e6d02 (patch)
treed2aed27bfc9ea13b29be2c9688f68b5e8763c8d0
parent3de945d13da0016cd8c602867ff18a33c2534418 (diff)
downloadnextcloud-server-5549641f1f977ab2b105b8f9d7b8c6829c0e6d02.tar.gz
nextcloud-server-5549641f1f977ab2b105b8f9d7b8c6829c0e6d02.zip
improve error messages displayed to the user
-rw-r--r--apps/encryption/lib/crypto/encryption.php2
-rw-r--r--lib/private/encryption/exceptions/decryptionfailedexception.php11
-rw-r--r--lib/private/encryption/manager.php11
-rw-r--r--lib/private/server.php2
-rw-r--r--lib/public/encryption/exceptions/genericencryptionexception.php17
-rw-r--r--tests/lib/encryption/managertest.php6
6 files changed, 21 insertions, 28 deletions
diff --git a/apps/encryption/lib/crypto/encryption.php b/apps/encryption/lib/crypto/encryption.php
index f527955b496..9094a84d4c8 100644
--- a/apps/encryption/lib/crypto/encryption.php
+++ b/apps/encryption/lib/crypto/encryption.php
@@ -387,7 +387,7 @@ class Encryption implements IEncryptionModule {
'" is not able to read ' . $path;
$hint = $this->l->t('Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you.');
$this->logger->warning($msg);
- throw new DecryptionFailedException($msg, 0, null, $hint);
+ throw new DecryptionFailedException($msg, $hint);
}
return false;
}
diff --git a/lib/private/encryption/exceptions/decryptionfailedexception.php b/lib/private/encryption/exceptions/decryptionfailedexception.php
index 7e9fa21eaef..406ae12968e 100644
--- a/lib/private/encryption/exceptions/decryptionfailedexception.php
+++ b/lib/private/encryption/exceptions/decryptionfailedexception.php
@@ -27,15 +27,4 @@ use OCP\Encryption\Exceptions\GenericEncryptionException;
class DecryptionFailedException extends GenericEncryptionException {
- /**
- * @param string $message
- * @param int $code
- * @param \Exception $previous
- * @param string $hint
- */
- public function __construct($message = '', $code = 0, \Exception $previous = null, $hint = '') {
- parent::__construct($message, $code, $previous, $hint);
-
-}
-
}
diff --git a/lib/private/encryption/manager.php b/lib/private/encryption/manager.php
index 45f45045643..6942376f0b7 100644
--- a/lib/private/encryption/manager.php
+++ b/lib/private/encryption/manager.php
@@ -30,6 +30,7 @@ use OCP\Encryption\IEncryptionModule;
use OCP\Encryption\IManager;
use OCP\Files\Mount\IMountPoint;
use OCP\IConfig;
+use OCP\IL10N;
use OCP\ILogger;
class Manager implements IManager {
@@ -43,14 +44,19 @@ class Manager implements IManager {
/** @var ILogger */
protected $logger;
+ /** @var Il10n */
+ protected $l;
+
/**
* @param IConfig $config
* @param ILogger $logger
+ * @param IL10N $l10n
*/
- public function __construct(IConfig $config, ILogger $logger) {
+ public function __construct(IConfig $config, ILogger $logger, IL10N $l10n) {
$this->encryptionModules = array();
$this->config = $config;
$this->logger = $logger;
+ $this->l = $l10n;
}
/**
@@ -145,7 +151,8 @@ class Manager implements IManager {
return call_user_func($this->encryptionModules[$moduleId]['callback']);
} else {
$message = "Module with id: $moduleId does not exists.";
- throw new Exceptions\ModuleDoesNotExistsException($message);
+ $hint = $this->l->t('Module with id: %s does not exists. Please enable it in your apps settings or contact your administrator.', [$moduleId]);
+ throw new Exceptions\ModuleDoesNotExistsException($message, $hint);
}
} else {
return $this->getDefaultEncryptionModule();
diff --git a/lib/private/server.php b/lib/private/server.php
index 7fa668b222e..aeea4a6485e 100644
--- a/lib/private/server.php
+++ b/lib/private/server.php
@@ -84,7 +84,7 @@ class Server extends SimpleContainer implements IServerContainer {
});
$this->registerService('EncryptionManager', function (Server $c) {
- return new Encryption\Manager($c->getConfig(), $c->getLogger());
+ return new Encryption\Manager($c->getConfig(), $c->getLogger(), $c->getL10N('core'));
});
$this->registerService('EncryptionFileHelper', function (Server $c) {
diff --git a/lib/public/encryption/exceptions/genericencryptionexception.php b/lib/public/encryption/exceptions/genericencryptionexception.php
index e97f00c88bf..5648e5edf73 100644
--- a/lib/public/encryption/exceptions/genericencryptionexception.php
+++ b/lib/public/encryption/exceptions/genericencryptionexception.php
@@ -21,6 +21,7 @@
*/
namespace OCP\Encryption\Exceptions;
+use OC\HintException;
/**
* Class GenericEncryptionException
@@ -28,28 +29,20 @@ namespace OCP\Encryption\Exceptions;
* @package OCP\Encryption\Exceptions
* @since 8.1.0
*/
-class GenericEncryptionException extends \Exception {
-
- /** @var string */
- protected $hint;
+class GenericEncryptionException extends HintException {
/**
* @param string $message
+ * @param string $hint
* @param int $code
* @param \Exception $previous
* @since 8.1.0
*/
- public function __construct($message = '', $code = 0, \Exception $previous = null, $hint = '') {
+ public function __construct($message = '', $hint = '', $code = 0, \Exception $previous = null) {
if (empty($message)) {
$message = 'Unspecified encryption exception';
}
- parent::__construct($message, $code, $previous);
-
- $this->hint = $hint;
- }
-
- public function getHint() {
- return $this->hint;
+ parent::__construct($message, $hint, $code, $previous);
}
}
diff --git a/tests/lib/encryption/managertest.php b/tests/lib/encryption/managertest.php
index faca6474504..3b1e07ffd69 100644
--- a/tests/lib/encryption/managertest.php
+++ b/tests/lib/encryption/managertest.php
@@ -16,11 +16,15 @@ class ManagerTest extends TestCase {
/** @var \PHPUnit_Framework_MockObject_MockObject */
private $logger;
+ /** @var \PHPUnit_Framework_MockObject_MockObject */
+ private $l10n;
+
public function setUp() {
parent::setUp();
$this->config = $this->getMock('\OCP\IConfig');
$this->logger = $this->getMock('\OCP\ILogger');
- $this->manager = new Manager($this->config, $this->logger);
+ $this->l10n = $this->getMock('\OCP\Il10n');
+ $this->manager = new Manager($this->config, $this->logger, $this->l10n);
}
public function testManagerIsDisabled() {