diff --git a/admin_customers.php b/admin_customers.php
index 3a88dd38..74dc10b8 100644
--- a/admin_customers.php
+++ b/admin_customers.php
@@ -532,6 +532,14 @@ if ($page == 'customers'
$phpenabled = intval($_POST['phpenabled']);
}
+ $allowed_phpconfigs = array();
+ if (isset($_POST['allowed_phpconfigs']) && is_array($_POST['allowed_phpconfigs'])) {
+ foreach ($_POST['allowed_phpconfigs'] as $allowed_phpconfig) {
+ $allowed_phpconfig = intval($allowed_phpconfig);
+ $allowed_phpconfigs[] = $allowed_phpconfig;
+ }
+ }
+
$perlenabled = 0;
if (isset($_POST['perlenabled'])) {
$perlenabled = intval($_POST['perlenabled']);
@@ -693,6 +701,7 @@ if ($page == 'customers'
'tickets' => $tickets,
'mysqls' => $mysqls,
'phpenabled' => $phpenabled,
+ 'allowed_phpconfigs' => empty($allowed_phpconfigs) ? "" : json_encode($allowed_phpconfigs),
'imap' => $email_imap,
'pop3' => $email_pop3,
'perlenabled' => $perlenabled,
@@ -733,6 +742,7 @@ if ($page == 'customers'
`mysqls` = :mysqls,
`standardsubdomain` = '0',
`phpenabled` = :phpenabled,
+ `allowed_phpconfigs` = :allowed_phpconfigs,
`imap` = :imap,
`pop3` = :pop3,
`perlenabled` = :perlenabled,
@@ -1043,6 +1053,26 @@ if ($page == 'customers'
$gender_options .= makeoption($lng['gender']['male'], 1, null, true, true);
$gender_options .= makeoption($lng['gender']['female'], 2, null, true, true);
+ $phpconfigs = array();
+ $configs = Database::query("
+ SELECT c.*, fc.description as interpreter
+ FROM `" . TABLE_PANEL_PHPCONFIGS . "` c
+ LEFT JOIN `" . TABLE_PANEL_FPMDAEMONS . "` fc ON fc.id = c.fpmsettingid
+ ");
+ while ($row = $configs->fetch(PDO::FETCH_ASSOC)) {
+ if ((int) Settings::Get('phpfpm.enabled') == 1) {
+ $phpconfigs[] = array(
+ 'label' => $row['description'] . " [".$row['interpreter']."]
",
+ 'value' => $row['id']
+ );
+ } else {
+ $phpconfigs[] = array(
+ 'label' => $row['description']."
",
+ 'value' => $row['id']
+ );
+ }
+ }
+
$customer_add_data = include_once dirname(__FILE__).'/lib/formfields/admin/customer/formfield.customer_add.php';
$customer_add_form = htmlform::genHTMLForm($customer_add_data);
@@ -1205,6 +1235,14 @@ if ($page == 'customers'
$phpenabled = intval($_POST['phpenabled']);
}
+ $allowed_phpconfigs = array();
+ if (isset($_POST['allowed_phpconfigs']) && is_array($_POST['allowed_phpconfigs'])) {
+ foreach ($_POST['allowed_phpconfigs'] as $allowed_phpconfig) {
+ $allowed_phpconfig = intval($allowed_phpconfig);
+ $allowed_phpconfigs[] = $allowed_phpconfig;
+ }
+ }
+
$perlenabled = 0;
if (isset($_POST['perlenabled'])) {
$perlenabled = intval($_POST['perlenabled']);
@@ -1457,6 +1495,7 @@ if ($page == 'customers'
'mysqls' => $mysqls,
'deactivated' => $deactivated,
'phpenabled' => $phpenabled,
+ 'allowed_phpconfigs' => empty($allowed_phpconfigs) ? "" : json_encode($allowed_phpconfigs),
'imap' => $email_imap,
'pop3' => $email_pop3,
'perlenabled' => $perlenabled,
@@ -1490,6 +1529,7 @@ if ($page == 'customers'
`mysqls` = :mysqls,
`deactivated` = :deactivated,
`phpenabled` = :phpenabled,
+ `allowed_phpconfigs` = :allowed_phpconfigs,
`email_quota` = :email_quota,
`imap` = :imap,
`pop3` = :pop3,
@@ -1695,6 +1735,26 @@ if ($page == 'customers'
$gender_options .= makeoption($lng['gender']['male'], 1, ($result['gender'] == '1' ? true : false), true, true);
$gender_options .= makeoption($lng['gender']['female'], 2, ($result['gender'] == '2' ? true : false), true, true);
+ $phpconfigs = array();
+ $configs = Database::query("
+ SELECT c.*, fc.description as interpreter
+ FROM `" . TABLE_PANEL_PHPCONFIGS . "` c
+ LEFT JOIN `" . TABLE_PANEL_FPMDAEMONS . "` fc ON fc.id = c.fpmsettingid
+ ");
+ while ($row = $configs->fetch(PDO::FETCH_ASSOC)) {
+ if ((int) Settings::Get('phpfpm.enabled') == 1) {
+ $phpconfigs[] = array(
+ 'label' => $row['description'] . " [".$row['interpreter']."]
",
+ 'value' => $row['id']
+ );
+ } else {
+ $phpconfigs[] = array(
+ 'label' => $row['description']."
",
+ 'value' => $row['id']
+ );
+ }
+ }
+
$customer_edit_data = include_once dirname(__FILE__).'/lib/formfields/admin/customer/formfield.customer_edit.php';
$customer_edit_form = htmlform::genHTMLForm($customer_edit_data);
diff --git a/lib/formfields/admin/customer/formfield.customer_add.php b/lib/formfields/admin/customer/formfield.customer_add.php
index eaa408aa..9d3d26ef 100644
--- a/lib/formfields/admin/customer/formfield.customer_add.php
+++ b/lib/formfields/admin/customer/formfield.customer_add.php
@@ -14,7 +14,6 @@
* @package Formfields
*
*/
-
return array(
'customer_add' => array(
'title' => $lng['admin']['customer_add'],
@@ -29,20 +28,30 @@ return array(
'type' => 'text'
),
'createstdsubdomain' => array(
- 'label' => $lng['admin']['stdsubdomain_add'].'?',
+ 'label' => $lng['admin']['stdsubdomain_add'] . '?',
'type' => 'checkbox',
'values' => array(
- array ('label' => $lng['panel']['yes'], 'value' => '1')
- ),
- 'value' => array('1')
+ array(
+ 'label' => $lng['panel']['yes'],
+ 'value' => '1'
+ )
+ ),
+ 'value' => array(
+ '1'
+ )
),
'store_defaultindex' => array(
- 'label' => $lng['admin']['store_defaultindex'].'?',
+ 'label' => $lng['admin']['store_defaultindex'] . '?',
'type' => 'checkbox',
'values' => array(
- array ('label' => $lng['panel']['yes'], 'value' => '1')
- ),
- 'value' => array('1')
+ array(
+ 'label' => $lng['panel']['yes'],
+ 'value' => '1'
+ )
+ ),
+ 'value' => array(
+ '1'
+ )
),
'new_customer_password' => array(
'label' => $lng['login']['password'],
@@ -53,15 +62,20 @@ return array(
'label' => $lng['customer']['generated_pwd'],
'type' => 'text',
'visible' => (Settings::Get('panel.password_regex') == ''),
- 'value' => generatePassword(),
+ 'value' => generatePassword()
),
'sendpassword' => array(
'label' => $lng['admin']['sendpassword'],
'type' => 'checkbox',
'values' => array(
- array ('label' => $lng['panel']['yes'], 'value' => '1')
- ),
- 'value' => array('1')
+ array(
+ 'label' => $lng['panel']['yes'],
+ 'value' => '1'
+ )
+ ),
+ 'value' => array(
+ '1'
+ )
),
'def_language' => array(
'label' => $lng['login']['language'],
@@ -135,7 +149,10 @@ return array(
'label' => $lng['usersettings']['custom_notes']['show'],
'type' => 'checkbox',
'values' => array(
- array ('label' => $lng['panel']['yes'], 'value' => '1')
+ array(
+ 'label' => $lng['panel']['yes'],
+ 'value' => '1'
+ )
),
'value' => array()
)
@@ -206,18 +223,28 @@ return array(
'label' => $lng['customer']['email_imap'],
'type' => 'checkbox',
'values' => array(
- array ('label' => $lng['panel']['yes'], 'value' => '1')
- ),
- 'value' => array('1'),
+ array(
+ 'label' => $lng['panel']['yes'],
+ 'value' => '1'
+ )
+ ),
+ 'value' => array(
+ '1'
+ ),
'mandatory' => true
),
'email_pop3' => array(
'label' => $lng['customer']['email_pop3'],
'type' => 'checkbox',
'values' => array(
- array ('label' => $lng['panel']['yes'], 'value' => '1')
- ),
- 'value' => array('1'),
+ array(
+ 'label' => $lng['panel']['yes'],
+ 'value' => '1'
+ )
+ ),
+ 'value' => array(
+ '1'
+ ),
'mandatory' => true
),
'ftps' => array(
@@ -244,28 +271,51 @@ return array(
'ul_field' => $mysqls_ul
),
'phpenabled' => array(
- 'label' => $lng['admin']['phpenabled'].'?',
+ 'label' => $lng['admin']['phpenabled'] . '?',
'type' => 'checkbox',
'values' => array(
- array ('label' => $lng['panel']['yes'], 'value' => '1')
- ),
- 'value' => array('1')
+ array(
+ 'label' => $lng['panel']['yes'],
+ 'value' => '1'
+ )
+ ),
+ 'value' => array(
+ '1'
+ )
+ ),
+ 'allowed_phpconfigs' => array(
+ 'visible' => (((int) Settings::Get('system.mod_fcgid') == 1 || (int) Settings::Get('phpfpm.enabled') == 1) ? true : false),
+ 'label' => $lng['admin']['phpsettings']['title'],
+ 'type' => 'checkbox',
+ 'values' => $phpconfigs,
+ 'value' => ((int) Settings::Get('system.mod_fcgid') == 1 ? array(
+ Settings::Get('system.mod_fcgid_defaultini')
+ ) : (int) Settings::Get('phpfpm.enabled') == 1) ? array(
+ Settings::Get('phpfpm.defaultini')
+ ) : array(),
+ 'is_array' => 1
),
'perlenabled' => array(
- 'label' => $lng['admin']['perlenabled'].'?',
+ 'label' => $lng['admin']['perlenabled'] . '?',
'type' => 'checkbox',
'values' => array(
- array ('label' => $lng['panel']['yes'], 'value' => '1')
- )
+ array(
+ 'label' => $lng['panel']['yes'],
+ 'value' => '1'
+ )
+ )
),
'dnsenabled' => array(
- 'label' => $lng['admin']['dnsenabled'].'?',
+ 'label' => $lng['admin']['dnsenabled'] . '?',
'type' => 'checkbox',
'values' => array(
- array ('label' => $lng['panel']['yes'], 'value' => '1')
- ),
+ array(
+ 'label' => $lng['panel']['yes'],
+ 'value' => '1'
+ )
+ ),
'visible' => (Settings::Get('system.dnsenabled') == '1' ? true : false)
- ),
+ )
)
)
)
diff --git a/lib/formfields/admin/customer/formfield.customer_edit.php b/lib/formfields/admin/customer/formfield.customer_edit.php
index b099651f..c5f74d74 100644
--- a/lib/formfields/admin/customer/formfield.customer_edit.php
+++ b/lib/formfields/admin/customer/formfield.customer_edit.php
@@ -260,6 +260,14 @@ return array(
),
'value' => array($result['phpenabled'])
),
+ 'allowed_phpconfigs' => array(
+ 'visible' => (((int) Settings::Get('system.mod_fcgid') == 1 || (int) Settings::Get('phpfpm.enabled') == 1) ? true : false),
+ 'label' => $lng['admin']['phpsettings']['title'],
+ 'type' => 'checkbox',
+ 'values' => $phpconfigs,
+ 'value' => isset($result['allowed_phpconfigs']) && !empty($result['allowed_phpconfigs']) ? json_decode($result['allowed_phpconfigs'], JSON_OBJECT_AS_ARRAY) : array(),
+ 'is_array' => 1
+ ),
'perlenabled' => array(
'label' => $lng['admin']['perlenabled'].'?',
'type' => 'checkbox',