From a3471bc8fa49d734099cbf2ebfcc412560515227 Mon Sep 17 00:00:00 2001
From: Herman van Rink <rink@initfour.nl>
Date: Sat, 26 Jan 2019 21:52:36 +0100
Subject: [PATCH] Create a util function to remove duplication

Lost on master(!866) ... now on cherry-picked on !1132
---
 interface/lib/classes/auth.inc.php            | 30 +++++++++++++++++++
 .../lib/classes/validate_password.inc.php     |  6 ++--
 interface/web/login/password_reset.php        |  3 +-
 3 files changed, 33 insertions(+), 6 deletions(-)

diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php
index 5daabd50b3..c117e53707 100644
--- a/interface/lib/classes/auth.inc.php
+++ b/interface/lib/classes/auth.inc.php
@@ -198,6 +198,36 @@ class auth {
 		
 	}
 
+	/**
+	 * Get the minimum password length.
+	 */
+	public function get_min_password_length() {
+		global $app;
+		$server_config_array = $app->getconf->get_global_config();
+		$min_password_length = 8;
+		if(isset($server_config_array['misc']['min_password_length'])) $min_password_length = $server_config_array['misc']['min_password_length'];
+		return $min_password_length;
+	}
+
+	/**
+	 * Get the minimum password strength.
+	 */
+	public function get_min_password_strength() {
+		global $app;
+		$server_config_array = $app->getconf->get_global_config();
+		$min_password_strength = 0;
+		if(isset($server_config_array['misc']['min_password_strength'])) $min_password_strength = $server_config_array['misc']['min_password_strength'];;
+		return $min_password_strength;
+	}
+
+	/**
+	 * Generate a ranmdom password.
+	 *
+	 * @param int $minLength
+	 *   Minimum number of characters.
+	 * @param boolean $special
+	 *   Include special characters, like # and !
+	 */
 	public function get_random_password($minLength = 8, $special = false) {
 		if($minLength < 8) $minLength = 8;
 		$maxLength = $minLength + 5;
diff --git a/interface/lib/classes/validate_password.inc.php b/interface/lib/classes/validate_password.inc.php
index a0f6de2e96..fc7b969843 100644
--- a/interface/lib/classes/validate_password.inc.php
+++ b/interface/lib/classes/validate_password.inc.php
@@ -111,10 +111,8 @@ class validate_password {
 		$app->uses('ini_parser,getconf');
 		$server_config_array = $app->getconf->get_global_config();
 		
-		$min_password_strength = 0;
-		$min_password_length = 5;
-		if(isset($server_config_array['misc']['min_password_length'])) $min_password_length = $server_config_array['misc']['min_password_length'];
-		if(isset($server_config_array['misc']['min_password_strength'])) $min_password_strength = $server_config_array['misc']['min_password_strength'];
+		$min_password_length = $app->auth->get_min_password_length();
+		$min_password_strength = $app->auth->get_min_password_strength();
 		
 		if($min_password_strength > 0) {
 			$lng_text = $app->lng('weak_password_txt');
diff --git a/interface/web/login/password_reset.php b/interface/web/login/password_reset.php
index 0a15b0c52b..f14548dd91 100644
--- a/interface/web/login/password_reset.php
+++ b/interface/web/login/password_reset.php
@@ -126,8 +126,7 @@ if(isset($_POST['username']) && $_POST['username'] != '' && $_POST['email'] != '
 	} elseif ($continue) {
 		if($client['client_id'] > 0) {
 			$server_config_array = $app->getconf->get_global_config();
-			$min_password_length = 8;
-			if(isset($server_config_array['misc']['min_password_length'])) $min_password_length = $server_config_array['misc']['min_password_length'];
+			$min_password_length = $app->auth->get_min_password_length();
 			
 			$new_password = $app->auth->get_random_password($min_password_length, true);
 			$new_password_encrypted = $app->auth->crypt_password($new_password);
-- 
GitLab