From adcee5b695c25bc9e06dc9aeddb4ae2713a2ea05 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= <schiessle@owncloud.com>
Date: Mon, 1 Jul 2013 12:16:36 +0200
Subject: [PATCH] check php version, the encryption app needs php >= 5.3.3

---
 apps/files_encryption/appinfo/app.php |  5 ++---
 apps/files_encryption/hooks/hooks.php |  8 ++++----
 apps/files_encryption/lib/helper.php  | 16 ++++++++++++++++
 3 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php
index d97811bb79..78b226be01 100644
--- a/apps/files_encryption/appinfo/app.php
+++ b/apps/files_encryption/appinfo/app.php
@@ -34,10 +34,9 @@ if (!OC_Config::getValue('maintenance', false)) {
 
 		$view = new OC_FilesystemView('/');
 
-		$sessionReady = false;
-		if(extension_loaded("openssl")) {
+		$sessionReady = OCA\Encryption\Helper::checkRequirements();
+		if($sessionReady) {
 			$session = new \OCA\Encryption\Session($view);
-			$sessionReady = true;
 		}
 
 		$user = \OCP\USER::getUser();
diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php
index e39e068cc5..786de177e8 100644
--- a/apps/files_encryption/hooks/hooks.php
+++ b/apps/files_encryption/hooks/hooks.php
@@ -39,10 +39,10 @@ class Hooks {
 	 */
 	public static function login($params) {
 		$l = new \OC_L10N('files_encryption');
-		//check if openssl is available
-		if(!extension_loaded("openssl") ) {
-			$error_msg = $l->t("PHP module OpenSSL is not installed.");
-			$hint = $l->t('Please ask your server administrator to install the module. For now the encryption app was disabled.');
+		//check if all requirements are met
+		if(!Helper::checkRequirements() ) {
+			$error_msg = $l->t("Missing requirements.");
+			$hint = $l->t('Please make sure that the OpenSSL module and PHP >0 5.3.3 is installed. For now the encryption app was disabled.');
 			\OC_App::disable('files_encryption');
 			\OCP\Util::writeLog('Encryption library', $error_msg . ' ' . $hint, \OCP\Util::ERROR);
 			\OCP\Template::printErrorPage($error_msg, $hint);
diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php
index a22c139c50..f6201c7e5f 100755
--- a/apps/files_encryption/lib/helper.php
+++ b/apps/files_encryption/lib/helper.php
@@ -208,4 +208,20 @@ class Helper {
 		header('Location: ' . $location . '?p=' . $post);
 		exit();
 	}
+
+
+	/**
+	 * check requirements for encryptoin app.
+	 * @return bool true if requirements are met
+	 */
+	public static function checkRequirements() {
+		$result = true;
+
+		//openssl extension needs to be loaded
+		$result &= extension_loaded("openssl");
+		// we need php >= 5.3.3
+		$result &= version_compare(phpversion(), '5.3.11', '>=');
+
+		return $result;
+	}
 }
\ No newline at end of file
-- 
GitLab