Commit e23c47d0 authored by Till Brehm's avatar Till Brehm

FS#3635 - Adding Shell Users with remote API is broken in 3.0.5.4p3

FS#3632 - Adding websites with remote API is broken in 3.0.5.4p3 release.
Missed to commit one file for: FS#3634 - Add option to disable statistics for a website
parent b54d4168
......@@ -36,7 +36,10 @@ class validate_ftpuser {
function ftp_dir($field_name, $field_value, $validator) {
global $app;
if($app->tform->primary_id == 0) {
$primary_id = (isset($app->tform->primary_id) && $app->tform->primary_id > 0)?$app->tform->primary_id:$app->remoting_lib->primary_id;
$primary_id = $app->functions->intval($primary_id);
if($primary_id == 0 && !isset($app->remoting_lib->dataRecord['parent_domain_id'])) {
$errmsg = $validator['errmsg'];
if(isset($app->tform->wordbook[$errmsg])) {
return $app->tform->wordbook[$errmsg]."<br>\r\n";
......@@ -45,8 +48,9 @@ class validate_ftpuser {
}
}
$ftp_data = $app->db->queryOneRecord("SELECT parent_domain_id FROM ftp_user WHERE ftp_user_id = '".$app->db->quote($app->tform->primary_id)."'");
if($primary_id > 0) {
//* get parent_domain_id from website
$ftp_data = $app->db->queryOneRecord("SELECT parent_domain_id FROM ftp_user WHERE ftp_user_id = '".$app->db->quote($primary_id)."'");
if(!is_array($ftp_data) || $ftp_data["parent_domain_id"] < 1) {
$errmsg = $validator['errmsg'];
if(isset($app->tform->wordbook[$errmsg])) {
......@@ -54,9 +58,15 @@ class validate_ftpuser {
} else {
return $errmsg."<br>\r\n";
}
} else {
$parent_domain_id = $ftp_data["parent_domain_id"];
}
} else {
//* get parent_domain_id from dataRecord when we have a insert operation trough remote API
$parent_domain_id = $app->functions->intval($app->remoting_lib->dataRecord['parent_domain_id']);
}
$domain_data = $app->db->queryOneRecord("SELECT domain_id, document_root FROM web_domain WHERE domain_id = '".$app->db->quote($ftp_data["parent_domain_id"])."'");
$domain_data = $app->db->queryOneRecord("SELECT domain_id, document_root FROM web_domain WHERE domain_id = '".$app->db->quote($parent_domain_id)."'");
if(!is_array($domain_data) || $domain_data["domain_id"] < 1) {
$errmsg = $validator['errmsg'];
if(isset($app->tform->wordbook[$errmsg])) {
......
......@@ -30,17 +30,31 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
class validate_systemuser {
function get_error($errmsg) {
global $app;
if(isset($app->tform->wordbook[$errmsg])) {
return $app->tform->wordbook[$errmsg]."<br>\r\n";
} else {
return $errmsg."<br>\r\n";
}
}
/*
Validator function to check if a given user is ok.
*/
function check_sysuser($field_name, $field_value, $validator) {
global $app;
//* Skip Test if we have the placeholder input of the remote APi for the web_domain system_user field here.
if($field_name == 'system_user' && $field_value == '-') return '';
//* Check the input
$errmsg = $validator['errmsg'];
$check_names = (isset($validator['check_names']) && $validator['check_names'] == true)?true:false;
if($app->functions->is_allowed_user(trim(strtolower($field_value)),$check_names) == false) {
return $app->tform->wordbook[$errmsg]."<br>\r\n";
return $this->get_error($errmsg);
}
}
......@@ -50,11 +64,14 @@ class validate_systemuser {
function check_sysgroup($field_name, $field_value, $validator) {
global $app;
//* Skip Test if we have the placeholder input of the remote APi for the web_domain system_group field here.
if($field_name == 'system_group' && $field_value == '-') return '';
$errmsg = $validator['errmsg'];
$check_names = (isset($validator['check_names']) && $validator['check_names'] == true)?true:false;
if($app->functions->is_allowed_group(trim(strtolower($field_value)),$check_names) == false) {
return $app->tform->wordbook[$errmsg]."<br>\r\n";
return $this->get_error($errmsg);
}
}
......@@ -64,7 +81,10 @@ class validate_systemuser {
function shelluser_dir($field_name, $field_value, $validator) {
global $app;
if($app->tform->primary_id == 0) {
$primary_id = (isset($app->tform->primary_id) && $app->tform->primary_id > 0)?$app->tform->primary_id:$app->remoting_lib->primary_id;
$primary_id = $app->functions->intval($primary_id);
if($primary_id == 0 && !isset($app->remoting_lib->dataRecord['parent_domain_id'])) {
$errmsg = $validator['errmsg'];
if(isset($app->tform->wordbook[$errmsg])) {
return $app->tform->wordbook[$errmsg]."<br>\r\n";
......@@ -73,8 +93,9 @@ class validate_systemuser {
}
}
$shell_data = $app->db->queryOneRecord("SELECT parent_domain_id FROM shell_user WHERE shell_user_id = '".$app->db->quote($app->tform->primary_id)."'");
if($primary_id > 0) {
//* get parent_domain_id from website
$shell_data = $app->db->queryOneRecord("SELECT parent_domain_id FROM shell_user WHERE shell_user_id = '".$app->db->quote($primary_id)."'");
if(!is_array($shell_data) || $shell_data["parent_domain_id"] < 1) {
$errmsg = $validator['errmsg'];
if(isset($app->tform->wordbook[$errmsg])) {
......@@ -82,9 +103,15 @@ class validate_systemuser {
} else {
return $errmsg."<br>\r\n";
}
} else {
$parent_domain_id = $shell_data["parent_domain_id"];
}
} else {
//* get parent_domain_id from dataRecord when we have a insert operation trough remote API
$parent_domain_id = $app->functions->intval($app->remoting_lib->dataRecord['parent_domain_id']);
}
$domain_data = $app->db->queryOneRecord("SELECT domain_id, document_root FROM web_domain WHERE domain_id = '".$app->db->quote($shell_data["parent_domain_id"])."'");
$domain_data = $app->db->queryOneRecord("SELECT domain_id, document_root FROM web_domain WHERE domain_id = '".$app->db->quote($parent_domain_id)."'");
if(!is_array($domain_data) || $domain_data["domain_id"] < 1) {
$errmsg = $validator['errmsg'];
if(isset($app->tform->wordbook[$errmsg])) {
......@@ -116,5 +143,4 @@ class validate_systemuser {
}
}
}
......@@ -205,6 +205,10 @@ if($app->auth->is_admin()) {
1 => array ( 'type' => 'REGEX',
'regex' => '/^\/[a-zA-Z0-9\ \.\-\_\/]{10,128}$/',
'errmsg'=> 'directory_error_regex'),
2 => array ( 'type' => 'CUSTOM',
'class' => 'validate_ftpuser',
'function' => 'ftp_dir',
'errmsg' => 'directory_error_notinweb'),
),
'default' => '',
'value' => '',
......
......@@ -486,7 +486,7 @@ $form["tabs"]['stats'] = array (
'datatype' => 'VARCHAR',
'formtype' => 'SELECT',
'default' => 'webalizer',
'value' => array('webalizer' => 'Webalizer', 'awstats' => 'AWStats')
'value' => array('webalizer' => 'Webalizer', 'awstats' => 'AWStats', '' => 'None')
),
//#################################
// ENDE Datatable fields
......
......@@ -20,13 +20,13 @@ try {
$params = array(
'server_id' => 1,
'parent_domain_id' => 1,
'username' => 'threep',
'password' => 'wood',
'username' => 'tom',
'password' => 'secret',
'quota_size' => 10000,
'active' => 'y',
'uid' => '5000',
'gid' => '5000',
'dir' => 'maybe',
'dir' => '/var/www/clients/client0/web1',
'quota_files' => -1,
'ul_ratio' => -1,
'dl_ratio' => -1,
......
......@@ -15,7 +15,7 @@ try {
}
//* Parameters
$client_id = 1;
$client_id = 0;
$ftp_user_id = 1;
......
......@@ -20,14 +20,14 @@ try {
$params = array(
'server_id' => 1,
'parent_domain_id' => 1,
'username' => 'threep2',
'password' => 'wood',
'username' => 'tom',
'password' => 'test',
'quota_size' => 10000,
'active' => 'y',
'puser' => 'null',
'pgroup' => 'null',
'puser' => 'web1',
'pgroup' => 'client0',
'shell' => '/bin/bash',
'dir' => 'maybe',
'dir' => '/var/www/clients/client0/web1',
'chroot' => ''
);
......
......@@ -15,7 +15,7 @@ try {
}
//* Parameters
$client_id = 3;
$client_id = 0;
$shell_user_id = 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment