2013-09-06 14:27:25 +04:00
< ? php
2015-03-26 13:44:34 +03:00
/**
* @ author Björn Schießle < schiessle @ owncloud . com >
* @ author Joas Schilling < nickvergessen @ owncloud . com >
* @ author Lukas Reschke < lukas @ owncloud . com >
* @ author Morris Jobke < hey @ morrisjobke . de >
* @ author Robin Appelman < icewind @ owncloud . com >
* @ author Thomas Müller < thomas . mueller @ tmit . eu >
* @ author Volkan Gezer < volkangezer @ gmail . com >
*
* @ copyright Copyright ( c ) 2015 , ownCloud , Inc .
* @ license AGPL - 3.0
*
* This code is free software : you can redistribute it and / or modify
* it under the terms of the GNU Affero General Public License , version 3 ,
* as published by the Free Software Foundation .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU Affero General Public License for more details .
*
* You should have received a copy of the GNU Affero General Public License , version 3 ,
* along with this program . If not , see < http :// www . gnu . org / licenses />
*
*/
2013-09-06 14:27:25 +04:00
if ( ! isset ( $_ )) { //also provide standalone error page
require_once __DIR__ . '/../../../lib/base.php' ;
2014-07-16 13:46:13 +04:00
require_once __DIR__ . '/../lib/crypt.php' ;
2013-09-06 14:27:25 +04:00
2014-09-17 19:12:06 +04:00
OC_JSON :: checkAppEnabled ( 'files_encryption' );
OC_App :: loadApp ( 'files_encryption' );
2014-08-31 12:05:59 +04:00
$l = \OC :: $server -> getL10N ( 'files_encryption' );
2013-09-06 14:27:25 +04:00
2013-10-11 16:20:46 +04:00
if ( isset ( $_GET [ 'errorCode' ])) {
$errorCode = $_GET [ 'errorCode' ];
switch ( $errorCode ) {
2014-12-03 18:52:44 +03:00
case \OCA\Files_Encryption\Crypt :: ENCRYPTION_NOT_INITIALIZED_ERROR :
2013-10-11 16:20:46 +04:00
$errorMsg = $l -> t ( 'Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app.' );
break ;
2014-12-03 18:52:44 +03:00
case \OCA\Files_Encryption\Crypt :: ENCRYPTION_PRIVATE_KEY_NOT_VALID_ERROR :
2013-10-30 02:29:16 +04:00
$theme = new OC_Defaults ();
$errorMsg = $l -> t ( 'Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files.' , array ( $theme -> getName ()));
2013-10-11 16:20:46 +04:00
break ;
2014-12-03 18:52:44 +03:00
case \OCA\Files_Encryption\Crypt :: ENCRYPTION_NO_SHARE_KEY_FOUND :
2013-10-11 16:20:46 +04:00
$errorMsg = $l -> t ( 'Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you.' );
break ;
default :
2014-05-25 22:42:52 +04:00
$errorMsg = $l -> t ( " Unknown error. Please check your system settings or contact your administrator " );
2013-10-11 16:20:46 +04:00
break ;
}
2013-09-06 14:27:25 +04:00
} else {
2014-12-03 18:52:44 +03:00
$errorCode = \OCA\Files_Encryption\Crypt :: ENCRYPTION_UNKNOWN_ERROR ;
2014-05-25 22:42:52 +04:00
$errorMsg = $l -> t ( " Unknown error. Please check your system settings or contact your administrator " );
2013-09-06 14:27:25 +04:00
}
if ( isset ( $_GET [ 'p' ]) && $_GET [ 'p' ] === '1' ) {
2013-10-11 17:23:12 +04:00
header ( 'HTTP/1.0 403 ' . $errorMsg );
2013-09-06 14:27:25 +04:00
}
// 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' => $errorMsg )));
} else {
2013-10-11 17:24:49 +04:00
header ( 'HTTP/1.0 403 ' . $errorMsg );
2013-09-06 14:27:25 +04:00
$tmpl = new OC_Template ( 'files_encryption' , 'invalid_private_key' , 'guest' );
$tmpl -> assign ( 'message' , $errorMsg );
2013-10-11 16:20:46 +04:00
$tmpl -> assign ( 'errorCode' , $errorCode );
2013-09-06 14:27:25 +04:00
$tmpl -> printPage ();
}
exit ;
}