changed redirect handling

This commit is contained in:
Florin Peter 2013-06-03 23:41:57 +02:00
parent b46e7323ec
commit ef97481a0d
4 changed files with 46 additions and 16 deletions

View File

@ -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;
}
?>

View File

@ -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();
}
}

View File

@ -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 (

View File

@ -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>