2015-04-16 14:47:27 +03:00
< ? php
/**
2016-07-21 17:49:16 +03:00
* @ copyright Copyright ( c ) 2016 , ownCloud , Inc .
*
2016-05-26 20:56:05 +03:00
* @ author Björn Schießle < bjoern @ schiessle . org >
2015-06-25 12:43:55 +03:00
* @ author Thomas Müller < thomas . mueller @ tmit . eu >
2015-04-16 14:47:27 +03:00
*
* @ 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 ;
2017-05-30 14:22:27 +03:00
use OCP\Encryption\IManager ;
2015-04-16 14:47:27 +03:00
use OCP\IL10N ;
use OCP\IRequest ;
class StatusController extends Controller {
/** @var IL10N */
private $l ;
/** @var Session */
private $session ;
2017-05-30 14:22:27 +03:00
/** @var IManager */
private $encryptionManager ;
2015-04-16 14:47:27 +03:00
/**
* @ param string $AppName
* @ param IRequest $request
* @ param IL10N $l10n
* @ param Session $session
2017-05-30 14:22:27 +03:00
* @ param IManager $encryptionManager
2015-04-16 14:47:27 +03:00
*/
public function __construct ( $AppName ,
IRequest $request ,
IL10N $l10n ,
2017-05-30 14:22:27 +03:00
Session $session ,
IManager $encryptionManager
2015-04-16 14:47:27 +03:00
) {
parent :: __construct ( $AppName , $request );
$this -> l = $l10n ;
$this -> session = $session ;
2017-05-30 14:22:27 +03:00
$this -> encryptionManager = $encryptionManager ;
2015-04-16 14:47:27 +03:00
}
/**
* @ 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 (
2016-08-05 16:50:17 +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-17 15:26:58 +03:00
);
2015-04-16 14:47:27 +03:00
break ;
case Session :: NOT_INITIALIZED :
2015-05-27 12:10:06 +03:00
$status = 'interactionNeeded' ;
2017-05-30 14:22:27 +03:00
if ( $this -> encryptionManager -> isEnabled ()) {
$message = ( string ) $this -> l -> t (
'Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again.'
);
} else {
$message = ( string ) $this -> l -> t (
'Please enable server side encryption in the admin settings in order to use the encryption module.'
);
}
2015-04-16 14:47:27 +03:00
break ;
2015-05-27 12:10:06 +03:00
case Session :: INIT_SUCCESSFUL :
$status = 'success' ;
2016-08-05 16:50:17 +03:00
$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
);
}
}