diff --git a/apps/files_encryption/files/error.php b/apps/files_encryption/files/error.php new file mode 100644 index 0000000000..3118299b51 --- /dev/null +++ b/apps/files_encryption/files/error.php @@ -0,0 +1,18 @@ + array('message' => $l->t('Your private key is not valid! Maybe the your password was changed from outside.')))); + } else { + header('HTTP/1.0 404 ' . $l->t('Your private key is not valid! Maybe the your password was changed from outside.')); + $tmpl = new OC_Template('files_encryption', 'invalid_private_key', 'guest'); + $tmpl->printPage(); + } + + exit; +} +?> diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php index 3e581a6ee3..daa95f3f89 100755 --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -194,4 +194,13 @@ class Helper { return $relPath; } + + /** + * @brief redirect to a error page + */ + public static function redirectToErrorPage() { + $location = \OC_Helper::linkToAbsolute('apps/files_encryption/files', 'error.php'); + header('Location: ' . $location); + exit(); + } } \ No newline at end of file diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index dee5a7cccc..3c1eb2c5f5 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -116,6 +116,11 @@ class Stream { } else { + if($this->privateKey === false) { + // if private key is not valid redirect user to a error page + \OCA\Encryption\Helper::redirectToErrorPage(); + } + $this->size = $this->rootView->filesize($this->rawPath, $mode); } @@ -239,12 +244,8 @@ class Stream { // if there is no valid private key return false if ($this->privateKey === false) { - if (\OC_Util::isCallRegistered()) { - $l = \OC_L10N::get('core'); - \OCP\JSON::error(array('data' => array('message' => $l->t('Private key is not valid! Maybe the user password was changed from outside if so please change it back to gain access')))); - throw new \Exception('Private key for user "' . $this->userId - . '" is not valid! Maybe the user password was changed from outside if so please change it back to gain access'); - } + // if private key is not valid redirect user to a error page + \OCA\Encryption\Helper::redirectToErrorPage(); return false; } @@ -450,10 +451,6 @@ class Stream { // if there is no valid private key return false if ($this->privateKey === false) { - if (\OC_Util::isCallRegistered()) { - $l = \OC_L10N::get('core'); - \OCP\JSON::error(array('data' => array('message' => $l->t('Private key is not valid! Maybe the user password was changed from outside if so please change it back to gain access')))); - // cleanup if ($this->meta['mode'] !== 'r' && $this->meta['mode'] !== 'rb') { @@ -469,12 +466,8 @@ class Stream { \OC_FileProxy::$enabled = $proxyStatus; } - throw new \Exception('Private key for user "' . $this->userId - . '" is not valid! Maybe the user password was changed from outside if so please change it back to gain access'); - } - - - return false; + // if private key is not valid redirect user to a error page + \OCA\Encryption\Helper::redirectToErrorPage(); } if ( diff --git a/apps/files_encryption/templates/invalid_private_key.php b/apps/files_encryption/templates/invalid_private_key.php new file mode 100644 index 0000000000..b0ff1db599 --- /dev/null +++ b/apps/files_encryption/templates/invalid_private_key.php @@ -0,0 +1,10 @@ +