summaryrefslogtreecommitdiffstats
path: root/apps/files_encryption
diff options
context:
space:
mode:
authorFlorin Peter <github@florin-peter.de>2013-06-03 23:41:57 +0200
committerFlorin Peter <github@florin-peter.de>2013-06-03 23:41:57 +0200
commitef97481a0d7dcedba830bc423d623111f6c2e774 (patch)
treecb71bb2e9ba1917690926b5eb73368db04138148 /apps/files_encryption
parentb46e7323ec6189f16405b8a22b073ca2d18d3bdb (diff)
downloadnextcloud-server-ef97481a0d7dcedba830bc423d623111f6c2e774.tar.gz
nextcloud-server-ef97481a0d7dcedba830bc423d623111f6c2e774.zip
changed redirect handling
Diffstat (limited to 'apps/files_encryption')
-rw-r--r--apps/files_encryption/files/error.php18
-rwxr-xr-xapps/files_encryption/lib/helper.php9
-rw-r--r--apps/files_encryption/lib/stream.php25
-rw-r--r--apps/files_encryption/templates/invalid_private_key.php10
4 files changed, 46 insertions, 16 deletions
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 @@
+<?php
+if (!isset($_)) { //also provide standalone error page
+ require_once '../../../lib/base.php';
+
+ $l = OC_L10N::get('files_encryption');
+
+ // check if ajax request
+ if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
+ \OCP\JSON::error(array('data' => 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 3e581a6ee39..daa95f3f897 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 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 @@
+<ul>
+ <li class='error'>
+ <?php $location = \OC_Helper::linkToRoute( "settings_personal" ) ?>
+
+ <?php p($l->t('Your private key is not valid! Maybe the your password was changed from outside.')); ?>
+ <br/>
+ <?php p($l->t('You can unlock your private key in your ')); ?> <a href="<?php echo $location?>"><?php p($l->t('personal settings')); ?>.</a>
+ <br/>
+ </li>
+</ul>