diff --git a/web/js/actions.js b/web/js/actions.js index 39cea8dc..f4370e51 100644 --- a/web/js/actions.js +++ b/web/js/actions.js @@ -1,3 +1,13 @@ +App.Actions.view_nginx_extensions = function(evt) +{ + var elm = $(evt.target); + var ref = elm.hasClass('row') ? elm : elm.parents('.row'); + var data = App.Helpers.evalJSON(ref.find('.source').val()); + var extensions = data['NGINX_EXT'] || ''; + var html = extensions.replace(/,/gi, ' '); + App.Helpers.openInnerPopup(elm, html, 'Nginx extensions'); +} + App.Actions.login_as = function(evt) { var elm = $(evt.target); diff --git a/web/js/templates.js b/web/js/templates.js index db41646e..d55b753a 100644 --- a/web/js/templates.js +++ b/web/js/templates.js @@ -303,7 +303,7 @@ App.Templates.html = { \ \
\ -
\ +
\
\ ~!:SUSPENDED_TPL~!\
\ @@ -509,19 +509,19 @@ App.Templates.html = {
~!:DISK_QUOTA~! ~!:DISK_QUOTA_MEASURE_2~!
\
\ \ -
\ - bandwidth:\ -
\ -
\ -
\ - ~!:U_BANDWIDTH_PERCENTAGE~!% (~!:U_BANDWIDTH~! ~!:BANDWIDTH_MEASURE~!)\ - \ - ~!:OVER_BAR_2~!\ -
\ -
\ -
~!:BANDWIDTH~! ~!:BANDWIDTH_MEASURE_2~!
\ -
\ -
\ +
\ + bandwidth:\ +
\ +
\ +
\ + ~!:U_BANDWIDTH_PERCENTAGE~!% (~!:U_BANDWIDTH~! ~!:BANDWIDTH_MEASURE~!)\ + \ + ~!:OVER_BAR_2~!\ +
\ +
\ +
~!:BANDWIDTH~! ~!:BANDWIDTH_MEASURE_2~!
\ +
\ +
\ \ \ \ @@ -641,6 +641,10 @@ App.Templates.html = { \ \ \ +
\ + \ + \ +
\
\ \ \ @@ -762,7 +766,7 @@ App.Templates.html = {
\ \ \ -
\ +
\ bandwidth:\
\
\ @@ -809,7 +813,7 @@ App.Templates.html = { ~!:NGINX~!\ extension list\ \ -
\ +
\
\
'] }, @@ -856,6 +860,10 @@ App.Templates.html = { \ \ \ +
\ + \ + \ +
\
\ \ \ @@ -899,7 +907,11 @@ App.Templates.html = { Add user\
\
\ - backup\ + \ + \ + encoding:\ + ~!:ENCODING~!\ + \ \
\
\ diff --git a/web/vesta/api/WEB_DOMAIN.class.php b/web/vesta/api/WEB_DOMAIN.class.php index dc793216..73b4b0f2 100644 --- a/web/vesta/api/WEB_DOMAIN.class.php +++ b/web/vesta/api/WEB_DOMAIN.class.php @@ -38,14 +38,26 @@ class WEB_DOMAIN extends AjaxHandler 'STATS_LOGIN' => $record['STATS_AUTH'], 'SSL' => $record['SSL'], 'SSL_HOME' => $record['SSL_HOME'], - 'SSL_CERT' => $record['SSL_CERT'], - 'SSL_KEY' => $record['SSL_KEY'], + 'SSL_CRT' => '', + 'SSL_KEY' => '', + 'SSL_CA' => '', 'NGINX' => $record['NGINX'], 'NGINX_EXT' => $record['NGINX_EXT'], - 'SUSPEND' => $record['SUSPEND'], + 'SUSPEND' => $record['SUSPEND'] == 'on' ? 'on' : 'off', 'DATE' => date(Config::get('ui_date_format', strtotime($record['DATE']))) ); $web_details['STAT'] == '' ? $web_details['STAT'] = 'none' : true; + + if($record['SSL'] == 'yes'){ + $result_ssl = Vesta::execute(Vesta::V_LIST_WEB_DOMAIN_SSL, array('USER' => $user['uid'], 'DOMAIN' => $web_domain, self::JSON)); + + if($result_ssl['status']){ + foreach ($result_ssl['data'][$web_domain] as $key => $value) { + $web_details['SSL_'.$key] = $value; + } + } + } + $reply[$web_domain] = $web_details; } @@ -439,25 +451,7 @@ class WEB_DOMAIN extends AjaxHandler } } - /*if ($_new['SSL']) { - $params = array( - 'USER' => $user['uid'], - 'DOMAIN' => $_new['DOMAIN'], - 'SSL_CERT' => $_new['SSL_CERT'] - ); - - if ($_new['SSL_HOME']) { - $params['SSL_HOME'] = $_new['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_KEY'])) { $ssl_file = tempnam(sys_get_temp_dir(), 'ssl'); file_put_contents($ssl_file, $_s['SSL_KEY']); @@ -498,8 +492,74 @@ class WEB_DOMAIN extends AjaxHandler $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(); + $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'])) + + $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']); + } + + + // echo '
'; + // echo $ssl_crt_file; + // echo '
'; + // echo $ssl_key_file; + // echo '
'; + // echo $ssl_ca_file; + + $params = array( + 'USER' => $user['uid'], + 'DOMAIN' => $_DOMAIN, + 'SSL_DIR' => $ssl_dir + // 'SSL_DIR' => 'tmp' + ); + + // 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); + } + else{ + $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']); + } + + unlink($ssl_crt_file); + unlink($ssl_key_file); + unlink($ssl_ca_file); + + } + + if (empty($_new['SSL_KEY']) && empty($_new['SSL_CRT']) && $_old['SSL'] == 'on') { + $result = 0; + $result = Vesta::execute(Vesta::V_DEL_WEB_DOMAIN_SSL, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN)); + } + return $this->reply($result['status'], $result['data']); } @@ -551,7 +611,7 @@ class WEB_DOMAIN extends AjaxHandler $_entities = $request->getParameter('entities'); foreach($_entities as $entity){ - $result = Vesta::execute(Vesta::V_SUSPEND_WEB_DOMAIN, array('USER' => $user, $entity['DOMAIN'])); + $result = Vesta::execute(Vesta::V_SUSPEND_WEB_DOMAIN, array('USER' => $user['uid'], $entity['DOMAIN'])); } return $this->reply($result['status'], $result['data']); @@ -563,7 +623,7 @@ class WEB_DOMAIN extends AjaxHandler $_entities = $request->getParameter('entities'); foreach($_entities as $entity){ - $result = Vesta::execute(Vesta::V_UNUSPEND_WEB_DOMAIN, array('USER' => $user, $entity['DOMAIN'])); + $result = Vesta::execute(Vesta::V_UNSUSPEND_WEB_DOMAIN, array('USER' => $user['uid'], $entity['DOMAIN'])); } return $this->reply($result['status'], $result['data']); @@ -575,7 +635,7 @@ class WEB_DOMAIN extends AjaxHandler $_entities = $request->getParameter('entities'); foreach($_entities as $entity){ - $result = Vesta::execute(Vesta::V_DEL_WEB_DOMAIN, array('USER' => $user, $entity['DOMAIN'])); + $result = Vesta::execute(Vesta::V_DEL_WEB_DOMAIN, array('USER' => $user['uid'], $entity['DOMAIN'])); } return $this->reply($result['status'], $result['data']);