From e65ff413e27ea852ee63076a3e404e358f443f50 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Mon, 3 Jun 2013 23:41:57 +0200 Subject: [PATCH] changed redirect handling --- apps/files_encryption/files/error.php | 18 +++++++++++++ apps/files_encryption/lib/helper.php | 9 +++++++ apps/files_encryption/lib/stream.php | 25 +++++++------------ .../templates/invalid_private_key.php | 10 ++++++++ 4 files changed, 46 insertions(+), 16 deletions(-) create mode 100644 apps/files_encryption/files/error.php create mode 100644 apps/files_encryption/templates/invalid_private_key.php diff --git a/apps/files_encryption/files/error.php b/apps/files_encryption/files/error.php new file mode 100644 index 00000000000..3118299b519 --- /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 c603aa1677d..40e12ae367f 100755 --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -195,4 +195,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 dee5a7cccc0..3c1eb2c5f5e 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 00000000000..b0ff1db5993 --- /dev/null +++ b/apps/files_encryption/templates/invalid_private_key.php @@ -0,0 +1,10 @@ + -- 2.39.5