2015-04-16 14:47:27 +03:00
< ? php
/**
* @ author Björn Schießle < schiessle @ owncloud . com >
2015-06-25 12:43:55 +03:00
* @ author Morris Jobke < hey @ morrisjobke . de >
* @ author Thomas Müller < thomas . mueller @ tmit . eu >
2015-04-16 14:47:27 +03:00
*
* @ 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 />
*
*/
namespace OCA\Encryption\Controller ;
use OCA\Encryption\Session ;
use OCP\AppFramework\Controller ;
use OCP\AppFramework\Http\DataResponse ;
use OCP\IL10N ;
use OCP\IRequest ;
class StatusController extends Controller {
/** @var IL10N */
private $l ;
/** @var Session */
private $session ;
/**
* @ param string $AppName
* @ param IRequest $request
* @ param IL10N $l10n
* @ param Session $session
*/
public function __construct ( $AppName ,
IRequest $request ,
IL10N $l10n ,
Session $session
) {
parent :: __construct ( $AppName , $request );
$this -> l = $l10n ;
$this -> session = $session ;
}
/**
* @ NoAdminRequired
* @ return DataResponse
*/
public function getStatus () {
2015-04-17 15:25:57 +03:00
$status = 'error' ;
2015-05-27 12:10:06 +03:00
$message = 'no valid init status' ;
2015-04-16 14:47:27 +03:00
switch ( $this -> session -> getStatus ()) {
2015-05-27 12:10:06 +03:00
case Session :: RUN_MIGRATION :
$status = 'interactionNeeded' ;
$message = ( string ) $this -> l -> t (
'You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run \'occ encryption:migrate\' or contact your administrator'
);
break ;
2015-04-16 14:47:27 +03:00
case Session :: INIT_EXECUTED :
2015-05-27 12:10:06 +03:00
$status = 'interactionNeeded' ;
2015-04-16 14:47:27 +03:00
$message = ( string ) $this -> l -> t (
2015-04-17 15:26:58 +03:00
'Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.'
);
2015-04-16 14:47:27 +03:00
break ;
case Session :: NOT_INITIALIZED :
2015-05-27 12:10:06 +03:00
$status = 'interactionNeeded' ;
2015-04-16 14:47:27 +03:00
$message = ( string ) $this -> l -> t (
2015-04-17 15:26:58 +03:00
'Encryption App is enabled but your keys are not initialized, please log-out and log-in again'
);
2015-04-16 14:47:27 +03:00
break ;
2015-05-27 12:10:06 +03:00
case Session :: INIT_SUCCESSFUL :
$status = 'success' ;
$message = ( string ) $this -> l -> t ( 'Encryption App is enabled and ready' );
2015-04-16 14:47:27 +03:00
}
return new DataResponse (
2015-04-17 15:25:57 +03:00
[
2015-04-16 14:47:27 +03:00
'status' => $status ,
2015-04-17 15:25:57 +03:00
'data' => [
'message' => $message ]
]
2015-04-16 14:47:27 +03:00
);
}
}