From fe04451cb1fdda99b79798d21f0a229f99224250 Mon Sep 17 00:00:00 2001
From: Joas Schilling <nickvergessen@owncloud.com>
Date: Mon, 9 Nov 2015 11:10:37 +0100
Subject: [PATCH] Do not allow two different version requirements

---
 core/command/app/checkcode.php              |  4 ++++
 lib/private/app/codechecker/infochecker.php | 15 +++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/core/command/app/checkcode.php b/core/command/app/checkcode.php
index a04f4bb5e03..e186d458c01 100644
--- a/core/command/app/checkcode.php
+++ b/core/command/app/checkcode.php
@@ -131,6 +131,10 @@ class CheckCode extends Command {
 				}
 			});
 
+			$infoChecker->listen('InfoChecker', 'duplicateRequirement', function($minMax) use ($output) {
+				$output->writeln("<error>Duplicate $minMax ownCloud version requirement found</error>");
+			});
+
 			$infoChecker->listen('InfoChecker', 'differentVersions', function($versionFile, $infoXML) use ($output) {
 				$output->writeln("<error>Different versions provided (appinfo/version: $versionFile - appinfo/info.xml: $infoXML)</error>");
 			});
diff --git a/lib/private/app/codechecker/infochecker.php b/lib/private/app/codechecker/infochecker.php
index 91580bde07d..24835d8148f 100644
--- a/lib/private/app/codechecker/infochecker.php
+++ b/lib/private/app/codechecker/infochecker.php
@@ -77,6 +77,21 @@ class InfoChecker extends BasicEmitter {
 
 		$info = $this->infoParser->parse($appPath . '/appinfo/info.xml');
 
+		if (isset($info['dependencies']['owncloud']['@attributes']['min-version']) && ($info['requiremin'] || $info['require'])) {
+			$this->emit('InfoChecker', 'duplicateRequirement', ['min']);
+			$errors[] = [
+				'type' => 'duplicateRequirement',
+				'field' => 'min',
+			];
+		}
+		if (isset($info['dependencies']['owncloud']['@attributes']['max-version']) && $info['requiremax']) {
+			$this->emit('InfoChecker', 'duplicateRequirement', ['max']);
+			$errors[] = [
+				'type' => 'duplicateRequirement',
+				'field' => 'max',
+			];
+		}
+
 		foreach ($info as $key => $value) {
 			if(is_array($value)) {
 				$value = json_encode($value);
-- 
GitLab