From 4042a1aecae3461784c3099b91e78c64e02dfaf3 Mon Sep 17 00:00:00 2001
From: Uma <uma.s@vtiger.com>
Date: Tue, 24 Nov 2020 13:08:30 +0530
Subject: [PATCH] Password regex for validation has been centralized

---
 config_override.php                           | 2 +-
 include/Webservices/Custom/ChangePassword.php | 2 +-
 includes/runtime/Configs.php                  | 8 +++++---
 modules/Install/views/Index.php               | 2 +-
 modules/Users/views/List.php                  | 2 +-
 modules/Users/views/PreferenceDetail.php      | 2 +-
 modules/Users/views/PreferenceEdit.php        | 2 +-
 7 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/config_override.php b/config_override.php
index d85886167..342360724 100644
--- a/config_override.php
+++ b/config_override.php
@@ -20,4 +20,4 @@ $max_mailboxes = 3;
 $runtime_connectors = array();
 
 //Password Regex for validation
-$password_regex = '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})';
\ No newline at end of file
+$validation_regex = array('password_regex' => '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})');
\ No newline at end of file
diff --git a/include/Webservices/Custom/ChangePassword.php b/include/Webservices/Custom/ChangePassword.php
index 2d37e9b01..716244b18 100644
--- a/include/Webservices/Custom/ChangePassword.php
+++ b/include/Webservices/Custom/ChangePassword.php
@@ -76,7 +76,7 @@ function vtws_changePassword($id, $oldPassword, $newPassword, $confirmPassword,
 
 function isPasswordStrong($new_password){
     $runtime_configs = Vtiger_Runtime_Configs::getInstance();
-    $password_regex = $runtime_configs->get('password_regex');
+    $password_regex = $runtime_configs->getValidationRegex('password_regex');
     if (preg_match('/'.$password_regex.'/i', $new_password) == 1) {
             return true;
     }
diff --git a/includes/runtime/Configs.php b/includes/runtime/Configs.php
index 4ab97f209..1ced96a96 100644
--- a/includes/runtime/Configs.php
+++ b/includes/runtime/Configs.php
@@ -45,10 +45,12 @@
     /**
      * Function to fetch the value for given key
      */
-    public function get($key, $default = '') {
+    public function getValidationRegex($key, $default = '') {
+        global $validation_regex;
+        
         $value = '';
-        if(isset($GLOBALS[$key])) {
-            $value = $GLOBALS[$key];
+        if(isset($validation_regex[$key])) {
+            $value = $validation_regex[$key];
         }
 
         if(empty($value) && !empty($default)) {
diff --git a/modules/Install/views/Index.php b/modules/Install/views/Index.php
index 59276d24b..61097a2ad 100644
--- a/modules/Install/views/Index.php
+++ b/modules/Install/views/Index.php
@@ -113,7 +113,7 @@ class Install_Index_view extends Vtiger_View_Controller {
 		$viewer->assign('ADMIN_EMAIL', $defaultParameters['admin_email']);
                 
                 $runtime_configs = Vtiger_Runtime_Configs::getInstance();
-                $password_regex = $runtime_configs->get('password_regex');
+                $password_regex = $runtime_configs->getValidationRegex('password_regex');
                 $viewer->assign('PWD_REGEX', $password_regex);
 
 		$viewer->view('Step4.tpl', $moduleName);
diff --git a/modules/Users/views/List.php b/modules/Users/views/List.php
index 122a8ea86..6daceada7 100644
--- a/modules/Users/views/List.php
+++ b/modules/Users/views/List.php
@@ -169,7 +169,7 @@ class Users_List_View extends Settings_Vtiger_List_View {
 		$viewer->assign('SEARCH_DETAILS', $searchParams);
                 
                 $runtime_configs = Vtiger_Runtime_Configs::getInstance();
-                $password_regex = $runtime_configs->get('password_regex');
+                $password_regex = $runtime_configs->getValidationRegex('password_regex');
                 $viewer->assign('PWD_REGEX', $password_regex);
 	}
 
diff --git a/modules/Users/views/PreferenceDetail.php b/modules/Users/views/PreferenceDetail.php
index 49e6be3cf..8df592a4b 100644
--- a/modules/Users/views/PreferenceDetail.php
+++ b/modules/Users/views/PreferenceDetail.php
@@ -173,7 +173,7 @@ class Users_PreferenceDetail_View extends Vtiger_Detail_View {
 		$viewer->assign('IMAGE_DETAILS', $recordModel->getImageDetails());
 
                 $runtime_configs = Vtiger_Runtime_Configs::getInstance();
-                $password_regex = $runtime_configs->get('password_regex');
+                $password_regex = $runtime_configs->getValidationRegex('password_regex');
                 $viewer->assign('PWD_REGEX', $password_regex);
 		return parent::process($request);
 	}
diff --git a/modules/Users/views/PreferenceEdit.php b/modules/Users/views/PreferenceEdit.php
index 1ad9ebbba..108680c55 100644
--- a/modules/Users/views/PreferenceEdit.php
+++ b/modules/Users/views/PreferenceEdit.php
@@ -152,7 +152,7 @@ Class Users_PreferenceEdit_View extends Vtiger_Edit_View {
 		$viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel());
                 
                 $runtime_configs = Vtiger_Runtime_Configs::getInstance();
-                $password_regex = $runtime_configs->get('password_regex');
+                $password_regex = $runtime_configs->getValidationRegex('password_regex');
                 $viewer->assign('PWD_REGEX', $password_regex);
 
 		parent::process($request);
-- 
GitLab