Skip to content
Snippets Groups Projects
Commit 4f6eb2c2 authored by ms217's avatar ms217
Browse files

Transform the domain placeholder in command_format function

parent 50266744
No related branches found
No related tags found
1 merge request!1829Resolve "website PHP version select should also apply for CLI"
...@@ -45,15 +45,37 @@ class validate_cron { ...@@ -45,15 +45,37 @@ class validate_cron {
Validator function to check if a given cron command is in correct form (url only). Validator function to check if a given cron command is in correct form (url only).
*/ */
function command_format($field_name, $field_value, $validator) { function command_format($field_name, $field_value, $validator) {
global $app, $page;
if(preg_match("'^(\w+):\/\/'", $field_value, $matches)) { if(preg_match("'^(\w+):\/\/'", $field_value, $matches)) {
if(preg_match("/\{DOMAIN\}/", $field_value)) {
if(isset($app->remoting_lib->primary_id)) {
$domain = $app->remoting_lib->dataRecord;
} else {
$domain = $page->dataRecord;
}
if($domain['parent_domain_id'] > 0){
$parent_domain = $app->db->queryOneRecord("SELECT `domain` FROM `web_domain` WHERE `domain_id` = ?", $domain['parent_domain_id']);
}
$trans = array(
'{DOMAIN}' => $parent_domain['domain']
);
$field_value = strtr($field_value, $trans);
}
$parsed = parse_url($field_value); $parsed = parse_url($field_value);
if($parsed === false) return $this->get_error($validator['errmsg']); if($parsed === false) return $this->get_error($validator['errmsg']);
if($parsed["scheme"] != "http" && $parsed["scheme"] != "https") return $this->get_error($validator['errmsg']); if($parsed["scheme"] != "http" && $parsed["scheme"] != "https") return $this->get_error($validator['errmsg']);
if(preg_match("'^([a-z0-9][a-z0-9\-]{0,62}\.)+([A-Za-z0-9\-]{2,63})$'i", $parsed["host"]) == false) return $this->get_error($validator['errmsg']);
if(preg_match("'^([a-z0-9][a-z0-9_\-]{0,62}\.)+([A-Za-z0-9\-]{2,63})$'i", $parsed["host"]) == false) return $this->get_error($validator['errmsg']);
} }
if(strpos($field_value, "\n") !== false || strpos($field_value, "\r") !== false || strpos($field_value, chr(0)) !== false) { if(strpos($field_value, "\n") !== false || strpos($field_value, "\r") !== false || strpos($field_value, chr(0)) !== false) {
return $this->get_error($validator['errmsg']); return $this->get_error($validator['errmsg']);
} }
......
<div class="form-group"> <div class="form-group">
<tmpl_if name="edit_disabled"> <tmpl_if name="edit_disabled">
<label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label> <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label>
<div class="col-sm-9"><select name="parent_domain_id" id="parent_domain_id" class="form-control" disabled="disabled"> <div class="col-sm-9"><i class="fa-solid fa-circle-info"></i><select name="parent_domain_id" id="parent_domain_id" class="form-control" disabled="disabled">
{tmpl_var name='parent_domain_id'} {tmpl_var name='parent_domain_id'}
</select></div> </select></div>
<input type="hidden" name="parent_domain_id" value="{tmpl_var name='parent_domain_id_value'}" /> <input type="hidden" name="parent_domain_id" value="{tmpl_var name='parent_domain_id_value'}" />
...@@ -12,6 +13,7 @@ ...@@ -12,6 +13,7 @@
</select></div> </select></div>
</tmpl_if> </tmpl_if>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="run_min" class="col-sm-3 control-label">{tmpl_var name='run_min_txt'}</label> <label for="run_min" class="col-sm-3 control-label">{tmpl_var name='run_min_txt'}</label>
<div class="col-sm-9"> <div class="col-sm-9">
...@@ -70,8 +72,6 @@ ...@@ -70,8 +72,6 @@
{tmpl_var name='active'} {tmpl_var name='active'}
</div> </div>
</div> </div>
<input type="hidden" name="id" value="{tmpl_var name='id'}"> <input type="hidden" name="id" value="{tmpl_var name='id'}">
<div class="clear"><div class="right"> <div class="clear"><div class="right">
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
jQuery('#parent_domain_id').trigger('change'); jQuery('#parent_domain_id').trigger('change');
}); });
// Reload cron placeholders if a different domain was selected // Reload cron placeholders if a different domain was selected
jQuery('#parent_domain_id').change(function(){ jQuery('#parent_domain_id').change(function() {
reloadCronPlaceholders(); reloadCronPlaceholders();
}); });
......
...@@ -231,6 +231,7 @@ class cron_plugin { ...@@ -231,6 +231,7 @@ class cron_plugin {
$cron_line = str_replace(" ", "", $job['run_min']) . "\t" . str_replace(" ", "", $job['run_hour']) . "\t" . str_replace(" ", "", $job['run_mday']) . "\t" . str_replace(" ", "", $job['run_month']) . "\t" . str_replace(" ", "", $job['run_wday']); $cron_line = str_replace(" ", "", $job['run_min']) . "\t" . str_replace(" ", "", $job['run_hour']) . "\t" . str_replace(" ", "", $job['run_mday']) . "\t" . str_replace(" ", "", $job['run_month']) . "\t" . str_replace(" ", "", $job['run_wday']);
} }
$web_domain = $this->parent_domain['domain'];
$log_target = ""; $log_target = "";
$log_wget_target = '/dev/null'; $log_wget_target = '/dev/null';
$log_root = ''; $log_root = '';
...@@ -242,8 +243,16 @@ class cron_plugin { ...@@ -242,8 +243,16 @@ class cron_plugin {
$log_wget_target = $log_root . '/cron_wget.log'; $log_wget_target = $log_root . '/cron_wget.log';
} }
$cron_line .= "\t{$this->parent_domain['system_user']}"; //* running as user $cron_line .= "\t{$this->parent_domain['system_user']}"; //* running as user
if($job['type'] == 'url') { if($job['type'] == 'url') {
$trans = array(
'{DOMAIN}' => $web_domain
);
$job['command'] = strtr($job['command'], $trans);
$cron_line .= "\t{$cron_config['wget']} --no-check-certificate --user-agent='Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0' -q -t 1 -T 7200 -O " . $log_wget_target . " " . escapeshellarg($job['command']) . " " . $log_target; $cron_line .= "\t{$cron_config['wget']} --no-check-certificate --user-agent='Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0' -q -t 1 -T 7200 -O " . $log_wget_target . " " . escapeshellarg($job['command']) . " " . $log_target;
} else { } else {
if(strpos($job['command'], "\n") !== false || strpos($job['command'], "\r") !== false || strpos($job['command'], chr(0)) !== false) { if(strpos($job['command'], "\n") !== false || strpos($job['command'], "\r") !== false || strpos($job['command'], chr(0)) !== false) {
...@@ -253,8 +262,6 @@ class cron_plugin { ...@@ -253,8 +262,6 @@ class cron_plugin {
$web_docroot_client = ''; $web_docroot_client = '';
$web_domain = $this->parent_domain['domain'];
// web folder is hardcoded to /web: // web folder is hardcoded to /web:
$web_folder = '/web'; $web_folder = '/web';
......
...@@ -726,6 +726,7 @@ class shelluser_jailkit_plugin { ...@@ -726,6 +726,7 @@ class shelluser_jailkit_plugin {
} }
if($app->system->is_redhat_os() == true) { if($app->system->is_redhat_os() == true) {
//$bashrc = $this->web['document_root'] . '/home/' . $this->web['system_user'] . '/.bashrc';
$bashrc = $this->web['document_root'] . '/etc/bashrc'; $bashrc = $this->web['document_root'] . '/etc/bashrc';
} else { } else {
$bashrc = $this->web['document_root'] . '/etc/bash.bashrc'; $bashrc = $this->web['document_root'] . '/etc/bash.bashrc';
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment