From c8f87ac7e2c834cf0aacdb2e4d44dbc7c9b7849f Mon Sep 17 00:00:00 2001 From: markjcrane Date: Mon, 3 Aug 2015 10:11:41 -0600 Subject: [PATCH] Move the email settings into default settings app_defaults.php. --- core/default_settings/app_defaults.php | 250 ++++++++++++++++--------- 1 file changed, 159 insertions(+), 91 deletions(-) diff --git a/core/default_settings/app_defaults.php b/core/default_settings/app_defaults.php index 5121b7a8dd..eaebd7f793 100644 --- a/core/default_settings/app_defaults.php +++ b/core/default_settings/app_defaults.php @@ -27,90 +27,158 @@ //process this only one time if ($domains_processed == 1) { - //ensure that the language code is set - $sql = "select count(*) as num_rows from v_default_settings "; - $sql .= "where default_setting_category = 'domain' "; - $sql .= "and default_setting_subcategory = 'language' "; - $sql .= "and default_setting_name = 'code' "; + //define array of settings + $x = 0; + $array[$x]['default_setting_category'] = 'domain'; + $array[$x]['default_setting_subcategory'] = 'language'; + $array[$x]['default_setting_name'] = 'code'; + $array[$x]['default_setting_value'] = 'en-us'; + $array[$x]['default_setting_enabled'] = 'true'; + $array[$x]['default_setting_description'] = ''; + $x++; + $array[$x]['default_setting_category'] = 'security'; + $array[$x]['default_setting_subcategory'] = 'password_length'; + $array[$x]['default_setting_name'] = 'var'; + $array[$x]['default_setting_value'] = '10'; + $array[$x]['default_setting_enabled'] = 'true'; + $array[$x]['default_setting_description'] = 'Sets the default length for system generated passwords.'; + $x++; + $array[$x]['default_setting_category'] = 'security'; + $array[$x]['default_setting_subcategory'] = 'password_strength'; + $array[$x]['default_setting_name'] = 'var'; + $array[$x]['default_setting_value'] = '4'; + $array[$x]['default_setting_enabled'] = 'true'; + $array[$x]['default_setting_description'] = 'Set the default strength for system generated passwords. Valid Options: 1 - Numeric Only, 2 - Include Lower Apha, 3 - Include Upper Alpha, 4 - Include Special Characters.'; + $x++; + $array[$x]['default_setting_category'] = 'email'; + $array[$x]['default_setting_subcategory'] = 'smtp_auth'; + $array[$x]['default_setting_name'] = 'var'; + $array[$x]['default_setting_value'] = ''; + $array[$x]['default_setting_enabled'] = 'true'; + $array[$x]['default_setting_description'] = ''; + $x++; + $array[$x]['default_setting_category'] = 'email'; + $array[$x]['default_setting_subcategory'] = 'smtp_from'; + $array[$x]['default_setting_name'] = 'var'; + $array[$x]['default_setting_value'] = ''; + $array[$x]['default_setting_enabled'] = 'true'; + $array[$x]['default_setting_description'] = ''; + $x++; + $array[$x]['default_setting_category'] = 'email'; + $array[$x]['default_setting_subcategory'] = 'smtp_from_name'; + $array[$x]['default_setting_name'] = 'var'; + $array[$x]['default_setting_value'] = ''; + $array[$x]['default_setting_enabled'] = 'true'; + $array[$x]['default_setting_description'] = ''; + $x++; + $array[$x]['default_setting_category'] = 'email'; + $array[$x]['default_setting_subcategory'] = 'smtp_host'; + $array[$x]['default_setting_name'] = 'var'; + $array[$x]['default_setting_value'] = ''; + $array[$x]['default_setting_enabled'] = 'true'; + $array[$x]['default_setting_description'] = ''; + $x++; + $array[$x]['default_setting_category'] = 'email'; + $array[$x]['default_setting_subcategory'] = 'smtp_username'; + $array[$x]['default_setting_name'] = 'var'; + $array[$x]['default_setting_value'] = ''; + $array[$x]['default_setting_enabled'] = 'true'; + $array[$x]['default_setting_description'] = ''; + $x++; + $array[$x]['default_setting_category'] = 'email'; + $array[$x]['default_setting_subcategory'] = 'smtp_password'; + $array[$x]['default_setting_name'] = 'var'; + $array[$x]['default_setting_value'] = ''; + $array[$x]['default_setting_enabled'] = 'true'; + $array[$x]['default_setting_description'] = ''; + $x++; + $array[$x]['default_setting_category'] = 'email'; + $array[$x]['default_setting_subcategory'] = 'smtp_secure'; + $array[$x]['default_setting_name'] = 'var'; + $array[$x]['default_setting_value'] = ''; + $array[$x]['default_setting_enabled'] = 'true'; + $array[$x]['default_setting_description'] = ''; + $x++; + + //get an array of the default settings + $sql = "select * from v_default_settings "; $prep_statement = $db->prepare($sql); - if ($prep_statement) { - $prep_statement->execute(); - $row = $prep_statement->fetch(PDO::FETCH_ASSOC); - if ($row['num_rows'] == 0) { - $sql = "insert into v_default_settings "; - $sql .= "("; - $sql .= "default_setting_uuid, "; - $sql .= "default_setting_category, "; - $sql .= "default_setting_subcategory, "; - $sql .= "default_setting_name, "; - $sql .= "default_setting_value, "; - $sql .= "default_setting_enabled, "; - $sql .= "default_setting_description "; - $sql .= ")"; - $sql .= "values "; - $sql .= "("; - $sql .= "'".uuid()."', "; - $sql .= "'domain', "; - $sql .= "'language', "; - $sql .= "'code', "; - $sql .= "'en-us', "; - $sql .= "'true', "; - $sql .= "'' "; - $sql .= ")"; - $db->exec(check_sql($sql)); - unset($sql); + $prep_statement->execute(); + $default_settings = $prep_statement->fetchAll(PDO::FETCH_NAMED); + unset ($prep_statement, $sql); + + //find the missing default settings + $x = 0; + foreach ($array as $setting) { + $found = false; + $missing[$x] = $setting; + foreach ($default_settings as $row) { + if (trim($row['default_setting_subcategory']) == trim($setting['default_setting_subcategory'])) { + $found = true; + //remove items from the array that were found + unset($missing[$x]); + } } - unset($prep_statement, $row); + $x++; } - //ensure that the default password length and strength are set - $sql = "select count(*) as num_rows from v_default_settings "; - $sql .= "where ( "; - $sql .= "default_setting_category = 'security' "; - $sql .= "and default_setting_subcategory = 'password_length' "; - $sql .= "and default_setting_name = 'var' "; - $sql .= ") or ( "; - $sql .= "default_setting_category = 'security' "; - $sql .= "and default_setting_subcategory = 'password_strength' "; - $sql .= "and default_setting_name = 'var' "; - $sql .= ") "; - $prep_statement = $db->prepare($sql); - if ($prep_statement) { + //add the missing default settings + foreach ($missing as $row) { + //add the default settings + $orm = new orm; + $orm->name('default_settings'); + $orm->save($row); + $message = $orm->message; + unset($orm); + //print_r($message); + } + unset($missing); + + //move the dynamic provision variables that from v_vars table to v_default_settings + if (count($_SESSION['provision']) == 0) { + $sql = "select * from v_vars "; + $sql .= "where var_cat = 'Provision' "; + $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); - $row = $prep_statement->fetch(PDO::FETCH_ASSOC); - if ($row['num_rows'] == 0) { - $sql = "insert into v_default_settings "; - $sql .= "( "; - $sql .= "default_setting_uuid, "; - $sql .= "default_setting_category, "; - $sql .= "default_setting_subcategory, "; - $sql .= "default_setting_name, "; - $sql .= "default_setting_value, "; - $sql .= "default_setting_enabled, "; - $sql .= "default_setting_description "; - $sql .= ") "; - $sql .= "values "; - $sql .= "( "; - $sql .= "'".uuid()."', "; - $sql .= "'security', "; - $sql .= "'password_length', "; - $sql .= "'var', "; - $sql .= "'10', "; - $sql .= "'true', "; - $sql .= "'Sets the default length for system generated passwords.' "; - $sql .= "), ( "; - $sql .= "'".uuid()."', "; - $sql .= "'security', "; - $sql .= "'password_strength', "; - $sql .= "'var', "; - $sql .= "'4', "; - $sql .= "'true', "; - $sql .= "'Sets the default strength for system generated passwords. Valid Options: 1 - Numeric Only, 2 - Include Lower Apha, 3 - Include Upper Alpha, 4 - Include Special Characters' "; - $sql .= ") "; - $db->exec(check_sql($sql)); - unset($sql); + $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); + foreach ($result as &$row) { + //set the variable + $var_name = check_str($row['var_name']); + //remove the 'v_' prefix from the variable name + if (substr($var_name, 0, 2) == "v_") { + $var_name = substr($var_name, 2); + } + //add the provision variable to the default settings table + $sql = "insert into v_default_settings "; + $sql .= "("; + $sql .= "default_setting_uuid, "; + $sql .= "default_setting_category, "; + $sql .= "default_setting_subcategory, "; + $sql .= "default_setting_name, "; + $sql .= "default_setting_value, "; + $sql .= "default_setting_enabled, "; + $sql .= "default_setting_description "; + $sql .= ") "; + $sql .= "values "; + $sql .= "("; + $sql .= "'".uuid()."', "; + $sql .= "'provision', "; + $sql .= "'".$var_name."', "; + $sql .= "'var', "; + $sql .= "'".check_str($row['var_value'])."', "; + $sql .= "'".check_str($row['var_enabled'])."', "; + $sql .= "'".check_str($row['var_description'])."' "; + $sql .= ")"; + $db->exec(check_sql($sql)); + unset($sql); } - unset($prep_statement, $row); + unset($prep_statement); + //delete the provision variables from system -> variables + //$sql = "delete from v_vars "; + //$sql .= "where var_cat = 'Provision' "; + //echo $sql ."\n"; + //$db->exec(check_sql($sql)); + //echo "$var_name $var_value \n"; } //populate the languages table, if necessary @@ -282,19 +350,19 @@ if ($domains_processed == 1) { unset($prep_statement, $row); } -//set the sip_profiles directory for older installs - if (isset($_SESSION['switch']['gateways']['dir'])) { - $orm = new orm; - $orm->name('default_settings'); - $orm->uuid($_SESSION['switch']['gateways']['uuid']); - $array['default_setting_category'] = 'switch'; - $array['default_setting_subcategory'] = 'sip_profiles'; - $array['default_setting_name'] = 'dir'; - //$array['default_setting_value'] = ''; - //$array['default_setting_enabled'] = 'true'; - $orm->save($array); - unset($array); - } + //set the sip_profiles directory for older installs + if (isset($_SESSION['switch']['gateways']['dir'])) { + $orm = new orm; + $orm->name('default_settings'); + $orm->uuid($_SESSION['switch']['gateways']['uuid']); + $array['default_setting_category'] = 'switch'; + $array['default_setting_subcategory'] = 'sip_profiles'; + $array['default_setting_name'] = 'dir'; + //$array['default_setting_value'] = ''; + //$array['default_setting_enabled'] = 'true'; + $orm->save($array); + unset($array); + } } ?> \ No newline at end of file