[php][js] ssl uploading

This commit is contained in:
naumov-socolov 2012-01-14 04:49:30 +03:00
parent ff84992687
commit b7710ee5da
3 changed files with 50 additions and 101 deletions

View file

@ -146,13 +146,20 @@ App.HTML.Build.web_domain_form = function (options, id) {
tpl.set(':title', 'Edit WEB domain');
tpl.set(':save_button', 'SAVE');
tpl.set(':DELETE_ACTION', App.Templates.get('DELETE_ACTION', 'general').finalize());
if (options.SSL == 'yes') {
if (options.SSL == 'on') {
tpl.set(':ssl_checked', 'checked="checked"');
}
else {
tpl.set(':ssl_checked', '');
}
if (options.SSL_HOME == 'on') {
tpl.set(':ssl_home_checked', 'checked="checked"');
}
else{
tpl.set(':ssl_home_checked', '');
}
}
options = !App.Helpers.isEmpty(options) ? options : App.Empty.WEB_DOMAIN;
if (in_edit == true) {
options.STATS_PASSWORD = options.STATS_LOGIN.trim() != '' ? App.Settings.PASSWORD_IMMUTE : '';
@ -176,6 +183,25 @@ App.HTML.Build.web_domain_form = function (options, id) {
tpl.set(':ACTIVE_PASSWORD', 'hidden');
tpl.set(':stats_auth_checked', '');
}
if (options.SSL == 'on') {
tpl.set(':ssl_checked', 'checked="checked"');
if (options.SSL_HOME == 'on') {
tpl.set(':ssl_home_checked', 'checked="checked"');
}
else{
tpl.set(':ssl_home_checked', '');
}
}
else {
tpl.set(':ssl_checked', '');
tpl.set(':ssl_home_checked', '');
tpl.set(':SSL_HOME', '');
tpl.set(':SSL_CRT', '');
tpl.set(':SSL_KEY', '');
tpl.set(':SSL_CA', '');
}
return tpl.finalize();
}

View file

@ -669,8 +669,8 @@ App.Templates.html = {
<input type="checkbox" name="SSL" class="styled do_action_toggle_ssl_support ssl_support" ~!:ssl_checked~! value="~!SSL~!">\
</div>\
<div class="form-row cc ssl-crtfct-box">\
<label for="#" class="field-label">SSL Document Root:</label>\
<input type="text" name="SSL_HOME" class="text-field" value="~!:SSL_HOME~!">\
<label for="#" class="field-label">SSL Shared DocRoot:</label>\
<input type="checkbox" name="SSL_HOME" class="styled" ~!:ssl_home_checked~! value="~!SSL_HOME~!">\
</div>\
<div class="form-row ssl-crtfct-box cc">\
<label for="#" class="field-label">SSL Crtificate: <span class="remark">(upload file or paste as text)</span></label>\

View file

@ -36,8 +36,8 @@ class WEB_DOMAIN extends AjaxHandler
'ELOG' => $record['ELOG'],
'STAT' => $record['STATS'],
'STATS_LOGIN' => $record['STATS_AUTH'],
'SSL' => $record['SSL'],
'SSL_HOME' => $record['SSL_HOME'],
'SSL' => $record['SSL'] == 'yes' ? 'on' : 'off',
'SSL_HOME' => $record['SSL_HOME'] == 'tsingle' ? 'off' : 'on',
'SSL_CRT' => '',
'SSL_KEY' => '',
'SSL_CA' => '',
@ -170,29 +170,10 @@ class WEB_DOMAIN extends AjaxHandler
}
}
/* if ($_s['SSL']) {
$params = array(
'USER' => $user['uid'],
'DOMAIN' => $_s['DOMAIN'],
'SSL_CERT' => $_s['SSL_CERT']
);
if ($_s['SSL_HOME']) {
$params['SSL_HOME'] = $_s['SSL_HOME'];
}
$result = 0;
$result = Vesta::execute(Vesta::V_ADD_WEB_DOMAIN_SSL, $params);
if (!$result['status']) {
$this->errors['SSL'] = array($result['error_code'] => $result['error_message']);
}
}
if ($_s['SSL_HOME']) {
}*/
/*if (!empty($_s['DNS'])) {
if (($_s['DNS_DOMAIN']) == 'on') {
echo 'adding dns domain';
echo '<br>';
$params = array(
'USER' => $user['uid'],
'DNS_DOMAIN' => $_s['DOMAIN'],
@ -207,7 +188,7 @@ class WEB_DOMAIN extends AjaxHandler
if (!$result['status']) {
$this->errors['DNS_DOMAIN'] = array($result['error_code'] => $result['error_message']);
}
}*/
}
/*if (!empty($_s['MAIL'])) {
@ -277,11 +258,15 @@ class WEB_DOMAIN extends AjaxHandler
$_old['ELOG'] = $_old['ELOG'] == 'yes' ? 'on' : 'off';
$_old['CGI'] = $_old['CGI'] == 'yes' ? 'on' : 'off';
$_old['AUTH'] = $_old['AUTH'] == 'yes' ? 'on' : 'off';
$_old['SSL'] = $_old['SSL'] == 'yes' ? 'on' : 'off';
// $_old['SSL'] = $_old['SSL'] == 'yes' ? 'on' : 'off';
// $_new['SSL'] = $_new['SSL'] == 'yes' ? 'on' : 'off';
// $_new['SSL_HOME'] = $_new['SSL_HOME'] == 'no' ? 'shared' : 'single';
$user = $this->getLoggedUser();
$_DOMAIN = $_new['DOMAIN'];
$result['status'] = TRUE;
if ($_old['SUSPEND'] != $_new['SUSPEND']) {
if ($_new['SUSPEND'] == 'on') {
$result = Vesta::execute(Vesta::V_SUSPEND_WEB_DOMAIN, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN));
@ -451,91 +436,29 @@ class WEB_DOMAIN extends AjaxHandler
}
}
/*
if (!empty($_s['SSL_KEY'])) {
$ssl_file = tempnam(sys_get_temp_dir(), 'ssl');
file_put_contents($ssl_file, $_s['SSL_KEY']);
$params = array(
'USER' => $user['uid'],
'DOMAIN' => $_s['DOMAIN'],
'SSL_KEY' => $ssl_file
);
if (!empty($_s['SSL_HOME'])) {
$params['SSL_HOME'] = $_s['SSL_HOME'];
}
$result = 0;
$result = Vesta::execute(Vesta::V_ADD_WEB_DOMAIN_SSL, $params);
if (!$result['status']) {
$this->errors['SSL'] = array($result['error_code'] => $result['error_message']);
}
}
if (!empty($_s['SSL_CERT'])) {
$sslcert_file = tempnam(sys_get_temp_dir(), 'ssl');
file_put_contents($sslcert_file, $_s['SSL_CERT']);
$params = array(
'USER' => $user['uid'],
'DOMAIN' => $_s['DOMAIN'],
'SSL_CERT' => $sslcert_file
);
$result = 0;
$result = Vesta::execute(Vesta::V_ADD_WEB_DOMAIN_SSLCERT, $params);
if (!$result['status']) {
$this->errors['SSL_CERT'] = array($result['error_code'] => $result['error_message']);
}
}
*/
if (!empty($_new['SSL_KEY']) && !empty($_new['SSL_CRT'])) {
// $ssl_dir = sys_get_temp_dir().'/ssl/'.rand();
if (( !empty($_new['SSL_KEY']) && !empty($_new['SSL_CRT']) && $_new['SSL'] == 'on') || $_old['SSL_HOME'] != $_new['SSL_HOME']) {
$ssl_dir = sys_get_temp_dir().'/';
// if(!mkdir($ssl_dir)){
// return $this->reply(FALSE, array('error' => 'can\'t create temp ssl dir: '.$ssl_dir));
// }
$ssl_crt_file = $ssl_dir . $_new['DOMAIN'] . '.crt';
if(!file_put_contents($ssl_crt_file, $_new['SSL_CRT']))
file_put_contents($ssl_crt_file, $_new['SSL_CRT']);
$ssl_key_file = $ssl_dir . $_new['DOMAIN'] . '.key';
file_put_contents($ssl_key_file, $_new['SSL_KEY']);
if (!empty($_new['SSL_CA'])) {
$ssl_ca_file = $ssl_dir . $_new['DOMAIN'] . '.ca';
// file_put_contents($ssl_ca_file, $_new['SSL_CA']);
file_put_contents($ssl_ca_file, $_new['SSL_CA']);
}
// echo '<br>';
// echo $ssl_crt_file;
// echo '<br>';
// echo $ssl_key_file;
// echo '<br>';
// echo $ssl_ca_file;
$params = array(
'USER' => $user['uid'],
'DOMAIN' => $_DOMAIN,
'SSL_DIR' => $ssl_dir
// 'SSL_DIR' => 'tmp'
'SSL_DIR' => $ssl_dir,
'SSL_HOME' => $_new['SSL_HOME'] == 'on' ? 'shared' : 'single'
);
// if (!empty($_s['SSL_HOME'])) {
// $params['SSL_HOME'] = $_s['SSL_HOME'];
// }
$result = 0;
if($_old['SSL'] == 'on'){
$result = Vesta::execute(Vesta::V_CHANGE_WEB_DOMAIN_SSL, $params);
}
@ -543,8 +466,6 @@ class WEB_DOMAIN extends AjaxHandler
$result = Vesta::execute(Vesta::V_ADD_WEB_DOMAIN_SSL, $params);
}
// print_r($result);
if (!$result['status']) {
$this->errors['SSL'] = array($result['error_code'] => $result['error_message']);
}
@ -552,12 +473,14 @@ class WEB_DOMAIN extends AjaxHandler
unlink($ssl_crt_file);
unlink($ssl_key_file);
unlink($ssl_ca_file);
}
if (empty($_new['SSL_KEY']) && empty($_new['SSL_CRT']) && $_old['SSL'] == 'on') {
if ( ((empty($_new['SSL_KEY']) || empty($_new['SSL_CRT'])) && $_old['SSL'] == 'on') || ( $_old['SSL'] == 'on' && $_new['SSL'] == 'off') ){
$result = 0;
$result = Vesta::execute(Vesta::V_DEL_WEB_DOMAIN_SSL, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN));
if (!$result['status']) {
$this->errors['SSL_REMOVING'] = array($result['error_code'] => $result['error_message']);
}
}
return $this->reply($result['status'], $result['data']);