| | |
| | | $app->uses('getconf'); |
| | | $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); |
| | | if ($web_config['CA_path']!='' && !file_exists($web_config['CA_path'].'/openssl.cnf')) |
| | | $app->log("CA path error, file does not exist:".$web_config['CA_path'].'/openssl.conf',LOGLEVEL_ERROR); |
| | | $app->log("CA path error, file does not exist:".$web_config['CA_path'].'/openssl.cnf',LOGLEVEL_ERROR); |
| | | |
| | | //* Only vhosts can have a ssl cert |
| | | if($data["new"]["type"] != "vhost" && $data["new"]["type"] != "vhostsubdomain") return; |
| | |
| | | if(trim($data["new"]["ssl_cert"]) != '') $app->system->file_put_contents($crt_file,$data["new"]["ssl_cert"]); |
| | | //if(trim($data["new"]["ssl_bundle"]) != '') $app->system->file_put_contents($bundle_file,$data["new"]["ssl_bundle"]); |
| | | if(trim($data["new"]["ssl_key"]) != '') $app->system->file_put_contents($key_file2,$data["new"]["ssl_key"]); |
| | | $app->system->chmod($key_file2,0400); |
| | | |
| | | // for nginx, bundle files have to be appended to the certificate file |
| | | if(trim($data["new"]["ssl_bundle"]) != ''){ |
| | |
| | | } |
| | | } |
| | | |
| | | //* add the nginx user to the client group if this is a vhost and security level is set to high, no matter if this is an insert or update and regardless of set_folder_permissions_on_update |
| | | if($data['new']['type'] == 'vhost' && $web_config['security_level'] == 20) $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['nginx_user'])); |
| | | |
| | | //* If the security level is set to high |
| | | if(($this->action == 'insert' && $data['new']['type'] == 'vhost') or ($web_config['set_folder_permissions_on_update'] == 'y' && $data['new']['type'] == 'vhost')) { |
| | | |
| | |
| | | //* add the nginx user to the client group in the chroot environment |
| | | $tmp_groupfile = $app->system->server_conf['group_datei']; |
| | | $app->system->server_conf['group_datei'] = $web_config['website_basedir'].'/etc/group'; |
| | | $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['user'])); |
| | | $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['nginx_user'])); |
| | | $app->system->server_conf['group_datei'] = $tmp_groupfile; |
| | | unset($tmp_groupfile); |
| | | } |
| | | |
| | | //* add the nginx user to the client group |
| | | $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['nginx_user'])); |
| | | |
| | | //* Chown all default directories |
| | | $app->system->chown($data['new']['document_root'],'root'); |
| | |
| | | if(!is_dir($web_config['website_basedir'].'/conf')) mkdir($web_config['website_basedir'].'/conf'); |
| | | if(trim($data['new']['custom_php_ini']) != '') { |
| | | $has_custom_php_ini = true; |
| | | if(!is_dir($custom_php_ini_dir)) $app->system->mkdir($custom_php_ini_dir); |
| | | if(!is_dir($custom_php_ini_dir)) $app->system->mkdirpath($custom_php_ini_dir); |
| | | $php_ini_content = ''; |
| | | if($data['new']['php'] == 'mod') { |
| | | $master_php_ini_path = $web_config['php_ini_path_apache']; |
| | |
| | | if(is_array($lines) && !empty($lines)){ |
| | | $linecount = sizeof($lines); |
| | | for($h=0;$h<$linecount;$h++){ |
| | | // remove comments |
| | | if(substr(trim($lines[$h]),0,1) == '#'){ |
| | | unset($lines[$h]); |
| | | continue; |
| | | } |
| | | |
| | | $lines[$h] = rtrim($lines[$h]); |
| | | /* |
| | | if(substr(ltrim($lines[$h]), 0, 8) == 'location' && strpos($lines[$h], '{') !== false && strpos($lines[$h], ';') !== false){ |
| | |
| | | $app->log('Removed client directory: '.$client_dir,LOGLEVEL_DEBUG); |
| | | } |
| | | |
| | | $this->_exec('groupdel client'.$client_id); |
| | | $app->log('Removed group client'.$client_id,LOGLEVEL_DEBUG); |
| | | if($app->system->is_group('client'.$client_id)){ |
| | | $this->_exec('groupdel client'.$client_id); |
| | | $app->log('Removed group client'.$client_id,LOGLEVEL_DEBUG); |
| | | } |
| | | } |
| | | |
| | | } |