From 902373eb7e9f92fcbd2415939715dc88c7fdd521 Mon Sep 17 00:00:00 2001 From: cdujeu Date: Mon, 4 Jul 2016 12:57:55 +0200 Subject: [PATCH] Dedup files in UserSelection --- core/src/core/classes/class.AuthService.php | 4 ++- core/src/core/classes/class.UserSelection.php | 26 ++++++++++++------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/core/src/core/classes/class.AuthService.php b/core/src/core/classes/class.AuthService.php index 49c0034346..d84d4a9fdc 100644 --- a/core/src/core/classes/class.AuthService.php +++ b/core/src/core/classes/class.AuthService.php @@ -195,8 +195,10 @@ public static function checkBruteForceLogin(&$loginArray) { if (isSet($_SERVER['REMOTE_ADDR'])) { $serverAddress = $_SERVER['REMOTE_ADDR']; - } else { + } else if(isSet($_SERVER['SERVER_ADDR'])) { $serverAddress = $_SERVER['SERVER_ADDR']; + } else { + return TRUE; } $login = null; if (isSet($loginArray[$serverAddress])) { diff --git a/core/src/core/classes/class.UserSelection.php b/core/src/core/classes/class.UserSelection.php index 45ad83782d..444e526283 100644 --- a/core/src/core/classes/class.UserSelection.php +++ b/core/src/core/classes/class.UserSelection.php @@ -90,7 +90,7 @@ public function initFromNodes($nodes) $this->files = array(); $this->inZip = false; foreach ($nodes as $n) { - $this->files[] = $n->getPath(); + $this->addFile($n->getPath()); } } @@ -110,7 +110,7 @@ public function initFromArray($array) if(strpos($v, "base64encoded:") === 0){ $v = base64_decode(array_pop(explode(':', $v, 2))); } - $this->files[] = AJXP_Utils::decodeSecureMagic($v); + $this->addFile(AJXP_Utils::decodeSecureMagic($v)); $this->isUnique = true; //return ; } @@ -121,7 +121,7 @@ public function initFromArray($array) if(strpos($v, "base64encoded:") === 0){ $v = base64_decode(array_pop(explode(':', $v, 2))); } - $this->files[] = AJXP_Utils::decodeSecureMagic($v); + $this->addFile(AJXP_Utils::decodeSecureMagic($v)); $index ++; } $this->isUnique = false; @@ -133,7 +133,7 @@ public function initFromArray($array) if (isSet($array["nodes"]) && is_array($array["nodes"])) { $this->files = array(); foreach($array["nodes"] as $value){ - $this->files[] = AJXP_Utils::decodeSecureMagic($value); + $this->addFile(AJXP_Utils::decodeSecureMagic($value)); } $this->isUnique = count($this->files) == 1; } @@ -152,6 +152,18 @@ public function initFromArray($array) } } } + + /** + * Add file to selection + * @param string $filePath + */ + public function addFile($filePath){ + if(!in_array($filePath, $this->files)){ + $this->files[] = $filePath; + } + } + + /** * Does the selection have one or more items * @return bool @@ -318,9 +330,5 @@ public function removeFile($file){ $this->nodes = $newNodes; } } - - public function addFile($file){ - $this->files[] = $file; - } - + }