Merge branch 'master' of github.com:serghey-rodin/vesta

This commit is contained in:
Serghey Rodin 2012-01-18 17:38:19 +02:00
commit 8f5b68b011
25 changed files with 6030 additions and 3562 deletions

View file

@ -1562,7 +1562,7 @@ input::-moz-focus-inner{
width: 195px;
height: 28px;
padding: 0 24px 0 8px;
color: #555;
color: #555555;
font:bold 14px/28px arial,sans-serif;
background:#fff url(../images/select-arrow.png) no-repeat 100% 50%;
overflow: hidden;
@ -2561,7 +2561,7 @@ input::-moz-focus-inner{
padding-top:6px;
}
.db-list .props-ext{
width:185px;
width:257px;
padding-top:6px;
}
.db-name{
@ -3148,6 +3148,16 @@ input::-moz-focus-inner{
}
/* START: DEV!! */
.stats-subbar {cursor: pointer;}
.stats-subbar .sub-active{font-weight: bold;}
.stats-subbar span{
cursor: pointer;
margin-left: 22px;
color: #5D5D5D;
border-bottom: 1px dotted #5D5D5D;
font-size: 11px;
}
.stats-subbar .sub-active{
font-weight: bold;
color: #FF6766;
border-bottom: 0;
}
/* END: DEV */

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Before After
Before After

BIN
web/images/checkboxes.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -11,9 +11,9 @@ $('document').ready(function() {
App.Utils.detectBrowser();
App.Ref.init();
App.Env.world = 'USER';
//App.Env.world = 'USER';
// Disabled cookie tab restoring. Enable if needed
/*if ('undefined' != typeof App.Tmp.loadTAB) {
if ('undefined' != typeof App.Tmp.loadTAB) {
App.Env.world = App.Tmp.loadTAB;
}
@ -25,7 +25,7 @@ $('document').ready(function() {
else {
App.Env.world = App.Constants.TABS[0];
}
}*/
}
App.Pages.init();
App.Core.listen();

View file

@ -59,11 +59,12 @@ App.Messages.get = function(key, plural) {
}
// Imutable
App.Settings.Imutable = {};
App.Settings.Imutable.USER = ['LOGIN_NAME'];
App.Settings.Imutable.DB = ['DB', 'TYPE', 'USER'];
App.Settings.Imutable.DNS = ['DNS_DOMAIN'];
App.Settings.Imutable.IP = ['INTERFACE'];
App.Settings.Imutable = {};
App.Settings.Imutable.USER = ['LOGIN_NAME'];
App.Settings.Imutable.WEB_DOMAIN = ['DOMAIN'];
App.Settings.Imutable.DB = ['DB', 'TYPE', 'USER', 'CHARSET', 'HOST'];
App.Settings.Imutable.DNS = ['DNS_DOMAIN'];
App.Settings.Imutable.IP = ['IP_ADDRESS', 'NETMASK', 'INTERFACE'];
// Empty

View file

@ -87,7 +87,7 @@ App.Actions.update_cs_value = function(evt)
if (App.Tmp[App.Env.world + '_selected_records'] > 0) {
var confirm_message_key = App.Tmp[App.Env.world + '_selected_records'] == 1 ? 1 + ' record' : App.Tmp[App.Env.world + '_selected_records'] + ' records';
var confirmed = confirm('This action will ' + val.toLowerCase() + ' ' + confirm_message_key + '. Do you want to proceede?');
var confirmed = confirm('This action will ' + val.toLowerCase() + ' ' + confirm_message_key + '. Do you want to proceed?');
if (confirmed) {
fb.log('mass_' + val);
var func_name = val.toLowerCase();
@ -366,14 +366,13 @@ App.Actions.save_form = function(evt) {
if (!confirmed) {
return true;
}
else {
var values = App.Helpers.getFormValues(elm);
if(App.Validate.form(values, $('#'+elm_id))) {
App.Model.add(values, source);
var form_id = App.Constants[App.Env.world + '_FORM_ID'];
$('#'+form_id).remove();
}
}
}
var values = App.Helpers.getFormValues(elm);
if(App.Validate.form(values, $('#'+elm_id))) {
App.Model.add(values, source);
var form_id = App.Constants[App.Env.world + '_FORM_ID'];
$('#'+form_id).remove();
}
}
else { // OLD ITEM, UPDATING IT

View file

@ -95,6 +95,7 @@ App.HTML.Build.user_form = function (options, id) {
tpl.set(':DELETE_ACTION', App.Templates.get('DELETE_ACTION', 'general').finalize());
}
options = !App.Helpers.isEmpty(options) ? options : App.Empty.USER;
if (in_edit == true) {
options.PASSWORD = App.Settings.PASSWORD_IMMUTE;
var ns = [];
@ -146,6 +147,15 @@ 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_CRT == '' || options.SSL_KEY == ''){
options.SSL = '';
options.SSL_HOME = '';
options.SSL_CRT = '';
options.SSL_KEY = '';
options.SSL_CA = '';
}
if (options.SSL == 'on') {
tpl.set(':ssl_checked', 'checked="checked"');
}
@ -167,7 +177,7 @@ App.HTML.Build.web_domain_form = function (options, id) {
tpl = App.HTML.setTplKeys(tpl, options, true);
tpl = App.HTML.Build.web_domain_selects(tpl, options);
tpl = App.HTML.toggle_suspended_form(tpl, options);
if (options.CGI == 'yes') {
if (options.CGI == 'yes' || !in_edit) {
tpl.set(':CHECKED_CGI', 'checked="checked"');
}
if (options.ELOG == 'yes') {
@ -384,8 +394,11 @@ App.HTML.Build.web_domain_entry = function (o, key) {
'DISK_QUOTA_MEASURE': App.Helpers.getMbHumanMeasure(App.Env.initialParams.user_data.DISK_QUOTA),
'BANDWIDTH_MEASURE': App.Helpers.getMbHumanMeasure(App.Env.initialParams.user_data.BANDWIDTH),
'BANDWIDTH': App.Helpers.getMbHuman(App.Env.initialParams.user_data.BANDWIDTH),
'DISK_QUOTA': App.Helpers.getMbHuman(App.Env.initialParams.user_data.DISK_QUOTA)
'DISK_QUOTA': App.Helpers.getMbHuman(App.Env.initialParams.user_data.DISK_QUOTA),
'SSL': (o.SSL_CRT == '' || o.SSL_KEY == '' || o.SSL != 'on') ? 'off' : 'on'
};
var o = $.extend(o, processed_data);
o.U_DISK_PERCENTAGE_2 = o.U_DISK_PERCENTAGE;
o.U_DISK_PERCENTAGE_3 = o.U_DISK_PERCENTAGE;
@ -651,27 +664,14 @@ App.HTML.Build.db_selects = function (tpl, options) {
});
tpl.set(':TYPE_OPTIONS', acc.done());
acc = [];
var items = App.Env.initialParams.DB.HOST;
$.each(items, function (val) {
var tpl = App.Templates.get('select_option', 'general');
tpl.set(':VALUE', val);
tpl.set(':TEXT', items[val]);
tpl.set(':SELECTED', val == options.HOST ? 'selected="selected"' : '');
acc[acc.length++] = tpl.finalize();
});
tpl.set(':HOST_OPTIONS', acc.done());
var obj = App.Env.initialParams.DB.HOST;
var opts = App.HTML.Build.options(obj, options.HOST);
tpl.set(':HOST_OPTIONS', opts);
acc = [];
var items = App.Env.initialParams.DB.ENCODING;
$.each(items, function (val) {
var tpl = App.Templates.get('select_option', 'general');
tpl.set(':VALUE', val);
tpl.set(':TEXT', items[val]);
tpl.set(':SELECTED', val == options.ENCODING ? 'selected="selected"' : '');
acc[acc.length++] = tpl.finalize();
});
tpl.set(':ENCODING_OPTIONS', acc.done());
var obj = App.Env.initialParams.DB.CHARSET;
var opts = App.HTML.Build.options(obj, options.CHARSET);
tpl.set(':CHARSET_OPTIONS', opts);
return tpl;
}
@ -691,9 +691,11 @@ App.HTML.Build.dns_selects = function (tpl, options) {
$.each(App.Env.initialParams.DNS.TPL, function (key) {
obj[key] = key;
});
var opts = App.HTML.Build.options(obj, options.PACKAGE);
var opts = App.HTML.Build.options(obj, options.TPL);
tpl.set(':TPL', opts);
tpl.set(':TPL_DEFAULT_VALUE', options.TPL || App.Helpers.getFirstKey(obj));
// tpl.set(':TPL_DEFAULT_VALUE', options.TPL || App.Helpers.getFirstKey(obj));
} catch (e) {
return tpl;
}

View file

@ -70,7 +70,8 @@ App.Pages.USER.new_entry = function(evt)
$(box).find('.suspended').addClass('hidden');
App.Ref.CONTENT.prepend($(box).html());
App.Helpers.updateScreen();
$('#'+form_id).find('.ns-entry, .additional-ns-add').addClass('hidden');
$('#'+form_id).find('.ns-entry, .additional-ns-add').addClass('hidden').find('.rule-required').removeClass('rule-required');
$('#'+form_id).find('.shell-entry').addClass('hidden');
}
App.Pages.WEB_DOMAIN.new_entry = function(evt)

View file

@ -138,20 +138,20 @@ App.Templates.html = {
</div>\
<div class="form-row dns-template-box cc">\
<label for="#" class="field-label">Template:</label>\
<span class="select" id="selecttemplate">~!:TPL_DEFAULT_VALUE~!</span>\
<span class="select" id="selecttemplate">~!:TPL_DEFAULT_VALUE~! t </span>\
<select name="TPL" class="styled tpl-item">\
~!:TPL~!\
</select>\
<span class="context-settings do_action_view_dns_template_settings">View template settings</span>\
</div>\
<div class="form-row cc">\
<!-- div class="form-row cc">\
<label for="#" class="field-label">TTL:</label>\
<input type="text" value="~!:TTL~!" name="TTL" class="text-field ttl-field rule-required rule-numeric">\
</div>\
<div class="form-row cc">\
<label for="#" class="field-label">SOA:</label>\
<input type="text" value="~!:SOA~!" name="SOA" class="text-field rule-required rule-ns">\
</div>\
</div -->\
<div class="form-row suspended cc">\
<label for="#" class="field-label">Suspended:</label>\
<input type="checkbox" ~!:SUSPENDED_CHECKED~! value="~!:SUSPENDED_VALUE~!" class="styled do_action_toggle_suspend" name="SUSPEND" />\
@ -241,7 +241,7 @@ App.Templates.html = {
<label for="#" class="field-label">value:</label>\
<input type="text" value="~!:RECORD_VALUE~!" name="RECORD_VALUE" class="text-field">\
</div>\
<div class="delete-record do_action_delete_subentry"></div>\
<!-- div class="delete-record do_action_delete_subentry"></div -->\
</div>']
},
ip: {
@ -286,10 +286,10 @@ App.Templates.html = {
<label for="#" class="field-label">Associated DNS Name:</label>\
<input type="text" name="NAME" value="~!:NAME~!" class="text-field rule-domain">\
</div>\
<div class="form-row suspended cc">\
<!-- div class="form-row suspended cc">\
<label for="#" class="field-label">Suspended:</label>\
<input type="checkbox" ~!:SUSPENDED_CHECKED~! value="~!:SUSPENDED_VALUE~!" class="styled do_action_toggle_suspend" name="SUSPEND"/>\
</div>\
</div -->\
<div class="form-row buttons-row cc">\
<input class="add-entry-btn do_action_save_form" type="submit" value="~!:save_button~!"/>\
<span class="cancel-btn do_action_cancel_form">Cancel</span>\
@ -403,7 +403,7 @@ App.Templates.html = {
~!:PACKAGE_OPTIONS~!\
</select>\
</div>\
<div class="form-row cc">\
<div class="form-row shell-entry cc">\
<label for="#" class="field-label">Shell:</label>\
<select class="styled disabled" name="SHELL">\
~!:SHELL_OPTIONS~!\
@ -474,9 +474,9 @@ App.Templates.html = {
<span class="prop-value">~!:FULLNAME~!</span>\
</span>\ </div>\
<div class="user-details-box">\
<span class="prop-box prop-box_group-values cc user-details do_action_login_as">\
<!-- span class="prop-box prop-box_group-values cc user-details do_action_login_as">\
<span class="prop-value login-as do_action_login_as">login as</span>\
</span>\
</span -->\
<span class="prop-box prop-box_group-values cc user-details">\
<span class="prop-title">email:</span>\
<span class="group-values">\
@ -641,10 +641,10 @@ App.Templates.html = {
<label for="#" class="field-label">Domain Aliases:</label>\
<textarea name="ALIAS" class="textarea rule-alias">~!:ALIAS~!</textarea>\
</div>\
<div class="form-row cc">\
<!-- div class="form-row cc">\
<label for="#" class="field-label">Nginx extensions:</label>\
<textarea name="NGINX_EXT" class="textarea rule-list">~!:NGINX_EXT~!</textarea>\
</div>\
</div -->\
<div class="form-row cc">\
<label for="#" class="field-label">Statistics:</label>\
<select name="STAT" class="styled">~!:STAT_OPTIONS~!</select>\
@ -716,7 +716,7 @@ App.Templates.html = {
</div>\
</div><!-- Mail options -->\
<div class="form-row cc">\
<label for="#" class="field-label">create DNS domain:</label>\
<label for="#" class="field-label">Create DNS domain also:</label>\
<input type="checkbox" value="" name="DNS_DOMAIN" class="styled">\
</div>\
<div class="form-row buttons-row cc">\
@ -846,7 +846,7 @@ App.Templates.html = {
<select name="TYPE" class="styled">~!:TYPE_OPTIONS~!</select>\
</div>\
<div class="form-row cc">\
<label for="#" class="field-label">Name:</label>\
<label for="#" class="field-label">DB name:</label>\
<input type="text" class="text-field" name="DB" value="~!:DB~!">\
</div>\
<div class="db-credentials ">\
@ -860,13 +860,13 @@ App.Templates.html = {
<span class="generate-pwd do_action_generate_pass">Generate</span>\
</div>\
</div>\
<!--div class="form-row hidden cc">\
<div class="form-row cc">\
<label for="#" class="field-label">Host:</label>\
<select name="HOST" class="styled">~!:HOST_OPTIONS~!</select>\
</div -->\
</div>\
<div class="form-row cc">\
<label for="#" class="field-label">Encoding:</label>\
<select name="ENCODING" class="styled">~!:ENCODING_OPTIONS~!</select>\
<label for="#" class="field-label">Character Set:</label>\
<select name="CHARSET" class="styled">~!:CHARSET_OPTIONS~!</select>\
</div>\
<div class="form-row suspended cc">\
<label for="#" class="field-label">Suspended:</label>\
@ -913,8 +913,8 @@ App.Templates.html = {
<div class="props-ext">\
<!-- span class="backup-db do_action_backup_db">backup</span-->\
<span class="prop-box">\
<span class="prop-title">encoding:</span>\
<span class="prop-value">~!:ENCODING~!</span>\
<span class="prop-title">Character Set:</span>\
<span class="prop-value">~!:CHARSET~!</span>\
</span>\
<!-- disk usage block -->\
<div class="b-usage-box disk-usage cc">\
@ -1075,13 +1075,13 @@ App.Templates.html = {
<a class="backup-url" href="return alert(\'Not available at the time\');">download</a>\
</div>\
<div class="props-ext">\
<div class="backup-actions">\
<!-- div class="backup-actions">\
<a class="backup-actions-url restore-url" href="return alert(\'Not available at the time\');">restore</a>\
<a class="backup-actions-url detailed-restore-url" href="return alert(\'Not available at the time\');">\
<span class="detailed-restore-title">detailed</span>\
<span class="detailed-restore-ext">restore</span>\
</a>\
</div>\
</div -->\
</div> \
</div><!-- // .row-details -->\
</div><!-- // .row 1 -->']

1151
web/js/templates_admin.js Normal file

File diff suppressed because it is too large Load diff

1151
web/js/user_templates.js Normal file

File diff suppressed because it is too large Load diff

View file

@ -132,17 +132,19 @@ class CRON extends AjaxHandler
$_new = $request->getParameter('new');
$result = array();
if($_new['SUSPEND'] == 'on') {
$result = Vesta::execute(Vesta::V_SUSPEND_CRON_JOB, array('USER' => $user['uid'], 'JOB' => $_new['CMD']));
return $this->reply($result['status']);
}
else {
$result = Vesta::execute(Vesta::V_UNSUSPEND_CRON_JOB, array('USER' => $user['uid'], 'JOB' => $_new['CMD']));
}
if (!$result['status']) {
$this->status = FALSE;
$this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
$result = array();
if(@Utils::getCheckboxBooleanValue($_new['SUSPEND'])){
$result = Vesta::execute(Vesta::V_SUSPEND_CRON_JOB, array('USER' => $user['uid'], 'JOB' => $_old['JOB']));
return $this->reply($result['status'], $result['error_message']);
}
elseif(@Utils::getCheckboxBooleanValue($_old['SUSPEND'])){
$result = Vesta::execute(Vesta::V_UNSUSPEND_CRON_JOB, array('USER' => $user['uid'], 'JOB' => $_old['JOB']));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['UNSUSPEND'] = array($result['error_code'] => $result['error_message']);
return $this->reply($result['status'], $result['error_message']);
}
}
$params = array(

View file

@ -38,6 +38,7 @@ class DB extends AjaxHandler
'TYPE' => $record['TYPE'],
'U_DISK' => $record['U_DISK'],
'DISK' => 2024,
'CHARSET' => strtolower($record['CHARSET']),
'SUSPEND' => $record['SUSPEND'],
'DATE' => date(Config::get('ui_date_format', strtotime($record['DATE'])))
);
@ -65,7 +66,9 @@ class DB extends AjaxHandler
'DB' => $_s['DB'],
'DB_USER' => $_s['USER'],
'DB_PASSWORD' => $_s['PASSWORD'],
'TYPE' => $_s['TYPE']
'TYPE' => $_s['TYPE'],
'HOST' => $_s['HOST'],
'CHARSET' => $_s['CHARSET']
);
$result = Vesta::execute(Vesta::V_ADD_DB_BASE, $params);
@ -74,7 +77,7 @@ class DB extends AjaxHandler
$this->errors[] = array($result['error_code'] => $result['error_message']);
}
if ($_s['SUSPEND'] == 'on') {
if (Utils::getCheckboxBooleanValue($_s['SUSPEND'])) {
if($result['status']){
$result = array();
@ -86,7 +89,6 @@ class DB extends AjaxHandler
}
}
return $this->reply($result['status'], $result['data']);
}
@ -128,16 +130,19 @@ class DB extends AjaxHandler
$user = $this->getLoggedUser();
$result = array();
if($_new['SUSPEND'] == 'on'){
$result = Vesta::execute(Vesta::V_SUSPEND_DB_BASE, array('USER' => $user['uid'], 'DB' => $_new['DB']));
}
else{
$result = Vesta::execute(Vesta::V_UNSUSPEND_DB_BASE, array('USER' => $user['uid'], 'DB' => $_new['DB']));
}
if (!$result['status']) {
$this->status = FALSE;
$this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
$result = array();
if(@Utils::getCheckboxBooleanValue($_new['SUSPEND'])){
$result = Vesta::execute(Vesta::V_SUSPEND_DB_BASE, array('USER' => $user['uid'], 'DB' => $_new['DB']));
return $this->reply($result['status'], $result['error_message']);
}
elseif(@Utils::getCheckboxBooleanValue($_old['SUSPEND'])){
$result = Vesta::execute(Vesta::V_UNSUSPEND_DB_BASE, array('USER' => $user['uid'], 'DB' => $_new['DB']));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['UNSUSPEND'] = array($result['error_code'] => $result['error_message']);
return $this->reply($result['status'], $result['error_message']);
}
}
if ($_new['PASSWORD'] != Vesta::SAME_PASSWORD && $_new['PASSWORD'] != $_old['PASSWORD']) {

View file

@ -97,22 +97,13 @@ class DNS extends AjaxHandler
$_s = $request->getParameter('spell');
$params = array(
'USER' => $user['uid'], /// OWNER ???
'DNS_DOMAIN' => $_s['DNS_DOMAIN'],
'IP' => $_s['IP']
);
// TODO: rewrite this block. Get away from if/if/if/if
if ($_s['TPL']) {
$params['TPL'] = $_s['TPL'];
}
if ($_s['EXP']) {
$params['EXP'] = $_s['EXP'];
}
if ($_s['SOA']) {
$params['SOA'] = $_s['SOA'];
}
if ($_s['TTL']) {
$params['TTL'] = $_s['TTL'];
}
'DNS_DOMAIN' => $_s['DNS_DOMAIN'],
'IP' => $_s['IP'],
'TPL' => $_s['TPL'],
'EXP' => $_s['EXP'],
'SOA' => $_s['SOA'],
'TTL' => $_s['TTL']
);
$result = Vesta::execute(Vesta::V_ADD_DNS_DOMAIN, $params);
if (!$result['status']) {
@ -120,7 +111,7 @@ class DNS extends AjaxHandler
}
if ($_s['SUSPEND'] == 'on') {
if (@Utils::getCheckboxBooleanValue($_s['SUSPEND'])) {
if($result['status']){
$result = array();
@ -242,17 +233,17 @@ class DNS extends AjaxHandler
$_DNS_DOMAIN = $_old['DNS_DOMAIN'];
$result = array();
if($_new['SUSPEND'] == 'on'){
if(@Utils::getCheckboxBooleanValue($_new['SUSPEND'])){
$result = Vesta::execute(Vesta::V_SUSPEND_DNS_DOMAIN, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN));
return $this->reply($result['status']);
return $this->reply($result['status'], $result['error_message']);
}
else{
elseif(@Utils::getCheckboxBooleanValue($_old['SUSPEND'])){
$result = Vesta::execute(Vesta::V_UNSUSPEND_DNS_DOMAIN, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN));
}
if (!$result['status']) {
$this->status = FALSE;
$this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
if (!$result['status']) {
$this->status = FALSE;
$this->errors['UNSUSPEND'] = array($result['error_code'] => $result['error_message']);
return $this->reply($result['status'], $result['error_message']);
}
}
if ($_old['IP'] != $_new['IP']) {
@ -267,7 +258,7 @@ class DNS extends AjaxHandler
if ($_old['TPL'] != $_new['TPL']) {
$result = array();
$result = Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_TPL, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN, 'IP' => $_new['TPL']));
$result = Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_TPL, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN, 'TPL' => $_new['TPL']));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['TPL'] = array($result['error_code'] => $result['error_message']);
@ -275,8 +266,9 @@ class DNS extends AjaxHandler
}
if ($_old['TTL'] != $_new['TTL']) {
echo 'changing ttl';
$result = array();
$result = Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_TTL, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN, 'IP' => $_new['TTL']));
$result = Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_TTL, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN, 'TTL' => $_new['TTL']));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['TTL'] = array($result['error_code'] => $result['error_message']);
@ -285,7 +277,7 @@ class DNS extends AjaxHandler
if ($_old['EXP'] != $_new['EXP']) {
$result = array();
$result = Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_EXP, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN, 'IP' => $_new['EXP']));
$result = Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_EXP, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN, 'EXP' => $_new['EXP']));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['EXP'] = array($result['error_code'] => $result['error_message']);
@ -294,7 +286,7 @@ class DNS extends AjaxHandler
if ($_old['SOA'] != $_new['SOA']) {
$result = array();
$result = Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_SOA, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_new['DNS_DOMAIN'], 'IP' => $_new['SOA']));
$result = Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_SOA, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_new['DNS_DOMAIN'], 'SOA' => $_new['SOA']));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['SOA'] = array($result['error_code'] => $result['error_message']);
@ -307,13 +299,6 @@ class DNS extends AjaxHandler
Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_TTL, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN, 'IP' => $_old['TTL']));
Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_EXP, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN, 'IP' => $_old['EXP']));
Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_SOA, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_new['DNS_DOMAIN'], 'IP' => $_old['SOA']));
if($_old['SUSPEND'] == 'on'){
$result = Vesta::execute(Vesta::V_SUSPEND_DNS_DOMAIN, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN));
}
else{
$result = Vesta::execute(Vesta::V_UNSUSPEND_DNS_DOMAIN, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN));
}
}
return $this->reply($this->status, '');
@ -432,7 +417,7 @@ class DNS extends AjaxHandler
$_entities = $request->getParameter('entities');
foreach($_entities as $entity){
$result = Vesta::execute(Vesta::V_UNUSPEND_DNS_DOMAIN, array('USER' => $user['uid'], $entity['DNS_DOMAIN']));
$result = Vesta::execute(Vesta::V_UNSUSPEND_DNS_DOMAIN, array('USER' => $user['uid'], $entity['DNS_DOMAIN']));
}
return $this->reply($result['status'], $result['data']);

View file

@ -19,6 +19,10 @@ class IP extends AjaxHandler
*/
public function getListExecute(Request $request)
{
if(!VestaSession::getUserRole()){
return self::getListUserIpsExecute($request);
}
$reply = array();
$result = Vesta::execute(Vesta::V_LIST_SYS_IPS, array(Config::get('response_type')));
foreach ($result['data'] as $ip => $details) {
@ -44,8 +48,10 @@ class IP extends AjaxHandler
*/
public function getListUserIpsExecute(Request $request)
{
$user = $this->getLoggedUser();
$reply = array();
$result = Vesta::execute(Vesta::V_LIST_USER_IPS, array(Config::get('response_type')));
$result = Vesta::execute(Vesta::V_LIST_USER_IPS, array($user['uid'], Config::get('response_type')));
foreach ($result['data'] as $ip => $details) {
$reply[] = array_merge(
array(

View file

@ -218,7 +218,7 @@ MAIL;
$disk_quota = $rs['data'];
$reply = array(
'auth_user' => array('uid' => $this->getLoggedUser()),
'auth_user' => array('uid' => $this->getLoggedUser(), 'admin' => !!VestaSession::getUserRole()),
'user_data' => array('BANDWIDTH' => (int)$bandwidth, 'DISK_QUOTA' => (int)$disk_quota),
'WEB_DOMAIN' => $this->getWebDomainParams($data_web_domain, $global_data),
'CRON' => $this->getCronParams(),
@ -370,15 +370,76 @@ MAIL;
public function getDbParams($data = array())
{
$db_types = $this->getDBTypes();
$db_hosts = $this->getDBHosts();
$result = Vesta::execute(Vesta::V_LIST_DNS_TEMPLATES, null, self::JSON);
return array(
'TYPE' => $db_types,
'HOST' => array('vestacp.com' => 'vestacp.com', 'askcow.org' => 'askcow.org')
'TYPE' => $db_types,
'HOST' => $db_hosts,
'CHARSET' => array(
'utf8' => 'utf8', 'latin1' => 'latin1', 'cp1251' => 'cp1251'
/*
'' => '',
'big5' => 'Big5 — Traditional Chinese ',
'dec8' => 'dec8 — DEC West European ',
'cp850' => 'cp850 — DOS West European',
'hp8' => 'hp8 — HP West European',
'koi8r' => 'koi8r — KOI8-R Relcom Russian',
'latin1' => 'latin1 — cp1252 West European',
'latin2' => 'latin2 — ISO 8859-2 Central European',
'swe7' => 'swe7 — 7bit Swedish',
'ascii' => 'ascii — US ASCII',
'ujis' => 'ujis — EUC-JP Japanese',
'sjis' => 'sjis — Shift-JIS Japanese',
'hebrew' => 'hebrew — ISO 8859-8 Hebrew',
'tis620' => 'tis620 — TIS620 Thai',
'euckr' => 'euckr — EUC-KR Korean',
'koi8u' => 'koi8u — KOI8-U Ukrainian',
'gb2312' => 'gb2312 — GB2312 Simplified Chinese',
'greek' => 'greek — ISO 8859-7 Greek',
'cp1250' => 'cp1250 — Windows Central European',
'gbk' => 'gbk — GBK Simplified Chinese',
'latin5' => 'latin5 — ISO 8859-9 Turkish',
'armscii8' => 'armscii8— ARMSCII-8 Armenian',
'utf8' => 'utf8 — UTF-8 Unicode',
'ucs2' => 'ucs2 — UCS-2 Unicode',
'cp866' => 'cp866 — DOS Russian',
'keybcs2' => 'keybcs2 — DOS Kamenicky Czech-Slovak',
'macce' => 'macce — Mac Central European',
'macroman' => 'macroman— Mac West European',
'cp853' => 'cp852 — DOS Central European',
'latin7' => 'latin7 — ISO 8859-13 Baltic',
'cp1251' => 'cp1251 — Windows Cyrillic',
'cp1256' => 'cp1256 — Windows Arabic',
'cp1257' => 'cp1257 — Windows Baltic',
'binary' => 'binary — Binary pseudo charset',
'geostd8' => 'geostd8 — GEOSTD8 Georgian',
'cp932' => 'cp932 — SJIS for Windows Japanese',
'eucjpms' => 'eucjpms — UJIS for Windows Japanese'
*/
)
);
}
public function getDBTypes()
{
return array('mysql' => 'mysql', 'postgre' => 'postgre');
return array('mysql' => 'MySQL', 'pgsql' => 'PostgreSQL');
}
public function getDBHosts()
{
return array('localhost' => 'localhost');
foreach($this->getDBTypes() as $type => $type_name){
$result = Vesta::execute(Vesta::V_LIST_DB_HOSTS, $type, self::JSON);
foreach ($result['data'] as $host_name => $host_data) {
if (Utils::getCheckboxBooleanValue($host_data['ACTIVE'])) {
$hosts[$host_name] = $type_name .' '. $host_name;
}
}
}
return $hosts;
}
/**

View file

@ -45,13 +45,13 @@ class USER extends AjaxHandler
"DNS_DOMAINS" => $details['DNS_DOMAINS'],
"DISK_QUOTA" => $details['DISK_QUOTA'],
"BANDWIDTH" => $details['BANDWIDTH'],
// "NS" => $details['NS'],
"SHELL" => $details['SHELL'],
"BACKUPS" => $details['BACKUPS'],
"WEB_TPL" => $details['WEB_TPL'],
"SUSPEND" => $details['SUSPENDED'],
"CONTACT" => $details['CONTACT'],
"REPORTS" => $details['REPORTS'],
"REPORTS_ENABLED" => $details['REPORTS'],
"IP_OWNED" => $details['IP_OWNED'],
"U_DIR_DISK" => $details['U_DIR_DISK'],
"U_DISK" => $details['U_DISK'],
@ -65,7 +65,8 @@ class USER extends AjaxHandler
"U_MAIL_FORWARDERS" => '0',
"U_MAIL_BOXES" => '0',
"U_CRON_JOBS" => $details['U_CRON_JOBS'],
"IP_OWNED" => $details['IP_OWNED']
"IP_OWNED" => $details['IP_OWNED'],
"NGINX_EXT" => $details['"NGINX_EXT']
);
$reply[$user] = array_merge($user_details, $nses);
// $reply[$user] = $user_details;
@ -132,33 +133,42 @@ class USER extends AjaxHandler
*/
public function addExecute(Request $request)
{
$spell = $request->getParameter('spell');
$_s = $request->getParameter('spell');
$user = $this->getLoggedUser();
$params = array(
'USER' => $spell['LOGIN_NAME'],
'PASSWORD' => $spell['PASSWORD'],
'EMAIL' => $spell['CONTACT'],
'PACKAGE' => $spell['PACKAGE'],
'FNAME' => $spell['FNAME'],
'LNAME' => $spell['LNAME']
'USER' => $_s['LOGIN_NAME'],
'PASSWORD' => $_s['PASSWORD'],
'EMAIL' => $_s['CONTACT'],
'PACKAGE' => $_s['PACKAGE'],
'FNAME' => $_s['FNAME'],
'LNAME' => $_s['LNAME']
);
$result = Vesta::execute(Vesta::V_ADD_SYS_USER, $params);
// Reports
$enable_reports = Utils::getCheckboxBooleanValue($spell['REPORTS_ENABLED']);
$reports_result = $this->setUserReports($spell['LOGIN_NAME'], $spell['REPORTS_ENABLED']);
// $enable_reports = Utils::getCheckboxBooleanValue($spell['REPORTS_ENABLED']);
// $reports_result = $this->setUserReports($spell['LOGIN_NAME'], $spell['REPORTS_ENABLED']);
// Set SHELL
$this->setShell($spell['LOGIN_NAME'], $spell['SHELL']);
// $this->setShell($_s['LOGIN_NAME'], $_s['SHELL']);
if (!$result['status']) {
$this->errors[] = array($result['error_code'] => $result['error_message']);
}
if(@Utils::getCheckboxBooleanValue($_s['REPORTS_ENABLED'])){
$result = Vesta::execute(Vesta::V_ADD_SYS_USER_REPORTS, array('USER' => $_USER));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['REPORTS'] = array($result['error_code'] => $result['error_message']);
}
}
if ($_s['SUSPEND'] == 'on') {
if($result['status']){
$result = array();
$result = Vesta::execute(Vesta::V_SUSPEND_SYS_USER, array('USER' => $user['uid'], 'USER' => $spell['LOGIN_NAME']));
$result = Vesta::execute(Vesta::V_SUSPEND_SYS_USER, array('USER' => $user['uid'], 'USER' => $_s['LOGIN_NAME']));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
@ -205,6 +215,21 @@ class USER extends AjaxHandler
$_USER = $_old['LOGIN_NAME'];
$result = array();
if(@Utils::getCheckboxBooleanValue($_new['SUSPEND'])){
$result = Vesta::execute(Vesta::V_SUSPEND_SYS_USER, array('USER' => $_USER));
return $this->reply($result['status'], $result['error_message']);
}
elseif(@Utils::getCheckboxBooleanValue($_old['SUSPEND'])){
$result = Vesta::execute(Vesta::V_UNSUSPEND_SYS_USER, array('USER' => $_USER));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['UNSUSPEND'] = array($result['error_code'] => $result['error_message']);
return $this->reply($result['status'], $result['error_message']);
}
}
$reports_result = $this->setUserReports($_USER, $_new['REPORTS_ENABLED']);
if (!empty($_new['PASSWORD']) && $_new['PASSWORD'] != Vesta::SAME_PASSWORD) {
@ -234,6 +259,20 @@ class USER extends AjaxHandler
}
}
if ($_old['REPORTS_ENABLED'] != $_new['REPORTS_ENABLED']) {
$result = array();
if(@Utils::getCheckboxBooleanValue($_new['REPORTS_ENABLED'])){
$result = Vesta::execute(Vesta::V_ADD_SYS_USER_REPORTS, array('USER' => $_USER));
}
else{
$result = Vesta::execute(Vesta::V_ADD_SYS_USER_REPORTS, array('USER' => $_USER));
}
if (!$result['status']) {
$this->status = FALSE;
$this->errors['REPORTS'] = array($result['error_code'] => $result['error_message']);
}
}
// Set SHELL
$this->setShell($_USER, $_new['SHELL']);
@ -251,38 +290,12 @@ class USER extends AjaxHandler
$this->errors['NAMES'] = array($result['error_code'] => $result['error_message']);
}
if ($_old['SUSPEND'] != $_new['SUSPEND']) {
$result = array();
if($_new['SUSPEND'] == 'on'){
$result = Vesta::execute(Vesta::V_SUSPEND_SYS_USER, array('USER' => $_USER));
}
else{
$result = Vesta::execute(Vesta::V_UNSUSPEND_SYS_USER, array('USER' => $_USER));
}
if (!$result['status']) {
$this->status = FALSE;
$this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
}
}
if (!$this->status) {
Vesta::execute(Vesta::V_CHANGE_SYS_USER_PASSWORD, array('USER' => $_USER, 'PASSWORD' => $_old['PASSWORD']));
Vesta::execute(Vesta::V_CHANGE_SYS_USER_PACKAGE, array('USER' => $_USER, 'PACKAGE' => $_old['PACKAGE']));
Vesta::execute(Vesta::V_CHANGE_SYS_USER_CONTACT, array('USER' => $_USER, 'EMAIL' => $_old['EMAIL']));
Vesta::execute(Vesta::V_CHANGE_SYS_USER_NS, array('USER' => $_USER, 'NS1' => $_old['NS1'], 'NS2' => $_old['NS2']));
Vesta::execute(Vesta::V_CHANGE_SYS_USER_SHELL, array('USER' => $_USER, 'SHELL' => $_old['SHELL']));
if($_old['SUSPEND'] == 'on'){
$result = Vesta::execute(Vesta::V_SUSPEND_SYS_USER, array('USER' => $_USER));
}
else{
$result = Vesta::execute(Vesta::V_UNSUSPEND_SYS_USER, array('USER' => $_USER));
}
}
return $this->reply($this->status, '');

View file

@ -37,13 +37,13 @@ class WEB_DOMAIN extends AjaxHandler
'STAT' => $record['STATS'],
'STATS_LOGIN' => $record['STATS_AUTH'],
'SSL' => $record['SSL'] == 'yes' ? 'on' : 'off',
'SSL_HOME' => $record['SSL_HOME'] == 'tsingle' ? 'off' : 'on',
'SSL_HOME' => $record['SSL_HOME'] == 'same' ? 'off' : 'on',
'SSL_CRT' => '',
'SSL_KEY' => '',
'SSL_CA' => '',
'NGINX' => $record['NGINX'],
'NGINX_EXT' => $record['NGINX_EXT'],
'SUSPEND' => $record['SUSPEND'] == 'on' ? 'on' : 'off',
'SUSPEND' => $record['SUSPEND'], // == 'yes' ? 'on' : 'off',
'DATE' => date(Config::get('ui_date_format', strtotime($record['DATE'])))
);
$web_details['STAT'] == '' ? $web_details['STAT'] = 'none' : true;
@ -85,6 +85,7 @@ class WEB_DOMAIN extends AjaxHandler
if (!$result['status']) {
$this->errors[] = array($result['error_code'] => $result['error_message']);
return $this->reply($result['status'], $result['data']);
}
if (!empty($_s['TPL'])) {
@ -101,9 +102,9 @@ class WEB_DOMAIN extends AjaxHandler
}
}
if (!empty($_s['ALIAS'])) {
$alias = str_replace("\n", "", $_s['ALIAS']);
$alias = str_replace("\n", "", $alias);
$alias_arr = explode(',', str_replace("\n", "", $_s['ALIAS']));
foreach ($alias_arr as $alias) {
$params = array(
@ -112,7 +113,6 @@ class WEB_DOMAIN extends AjaxHandler
'ALIAS' => trim($alias)
);
$result = 0;
$result = Vesta::execute(Vesta::V_ADD_WEB_DOMAIN_ALIAS, $params);
if (!$result['status']) {
@ -121,7 +121,7 @@ class WEB_DOMAIN extends AjaxHandler
}
}
if (!empty($_s['STATS']) && @$_s['STATS'] != 'none') {
if (!empty($_s['STAT']) && @$_s['STAT'] != 'none') {
$params = array(
'USER' => $user['uid'],
'DOMAIN' => $_s['DOMAIN'],
@ -148,21 +148,31 @@ class WEB_DOMAIN extends AjaxHandler
$this->errors['STAT_AUTH'] = array($result['error_code'] => $result['error_message']);
}
if (!empty($_new['CGI'])) {
if (Utils::getCheckboxBooleanValue($_new['CGI'])) {
if (!empty($_s['CGI'])) {
if (Utils::getCheckboxBooleanValue($_s['CGI'])) {
/* removed due to CGI is set by default at WEB DOMAIN creation
$result = array();
$result = Vesta::execute(Vesta::V_ADD_WEB_DOMAIN_CGI, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN));
$result = Vesta::execute(Vesta::V_ADD_WEB_DOMAIN_CGI, array('USER' => $user['uid'], 'DOMAIN' => $_s['DOMAIN']));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['ADD_CGI'] = array($result['error_code'] => $result['error_message']);
}
*/
}
else{
$result = array();
$result = Vesta::execute(Vesta::V_DEL_WEB_DOMAIN_CGI, array('USER' => $user['uid'], 'DOMAIN' => $_s['DOMAIN']));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['DEL_CGI'] = array($result['error_code'] => $result['error_message']);
}
}
}
if (!empty($_new['ELOG'])) {
if (Utils::getCheckboxBooleanValue($_new['ELOG'])) {
if (!empty($_s['ELOG'])) {
if (Utils::getCheckboxBooleanValue($_s['ELOG'])) {
$result = array();
$result = Vesta::execute(Vesta::V_ADD_WEB_DOMAIN_ELOG, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN));
$result = Vesta::execute(Vesta::V_ADD_WEB_DOMAIN_ELOG, array('USER' => $user['uid'], 'DOMAIN' => $_s['DOMAIN']));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['ADD_ELOG'] = array($result['error_code'] => $result['error_message']);
@ -170,16 +180,12 @@ class WEB_DOMAIN extends AjaxHandler
}
}
if (($_s['DNS_DOMAIN']) == 'on') {
echo 'adding dns domain';
echo '<br>';
if (Utils::getCheckboxBooleanValue($_s['DNS_DOMAIN'])) {
$params = array(
'USER' => $user['uid'],
'DNS_DOMAIN' => $_s['DOMAIN'],
'IP' => $_s['IP']
);
echo 'adding dns domain';
echo '<br>';
/*
require_once V_ROOT_DIR . 'api/DNS.class.php';
$dns = new DNS();
@ -188,6 +194,36 @@ class WEB_DOMAIN extends AjaxHandler
if (!$result['status']) {
$this->errors['DNS_DOMAIN'] = array($result['error_code'] => $result['error_message']);
}
*/
$_GET['debug'] = 2;
$params = array(
'USER' => $user['uid'],
'DNS_DOMAIN' => $_s['DOMAIN'],
'IP' => $_s['IP']
);
$result = Vesta::execute(Vesta::V_ADD_DNS_DOMAIN, $params);
if (!$result['status']) {
$this->errors[] = array($result['error_code'] => $result['error_message']);
}
if (@Utils::getCheckboxBooleanValue($_s['SUSPEND'])) {
if($result['status']){
$result = array();
$result = Vesta::execute(Vesta::V_SUSPEND_DNS_DOMAIN, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_s['DOMAIN']));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['DNS_SUSPEND'] = array($result['error_code'] => $result['error_message']);
}
}
}
}
@ -210,7 +246,40 @@ class WEB_DOMAIN extends AjaxHandler
if ($_s['SUSPEND'] == 'on') {
if (!empty($_s['SSL_KEY']) && !empty($_s['SSL_CRT']) && $_s['SSL'] == 'on' ) {
$ssl_dir = sys_get_temp_dir().'/';
$ssl_crt_file = $ssl_dir . $_s['DOMAIN'] . '.crt';
file_put_contents($ssl_crt_file, $_s['SSL_CRT']);
$ssl_key_file = $ssl_dir . $_s['DOMAIN'] . '.key';
file_put_contents($ssl_key_file, $_s['SSL_KEY']);
if (!empty($_s['SSL_CA'])) {
$ssl_ca_file = $ssl_dir . $_s['DOMAIN'] . '.ca';
file_put_contents($ssl_ca_file, $_s['SSL_CA']);
}
// $_GET['debug'] = 2;
$params = array(
'USER' => $user['uid'],
'DOMAIN' => $_s['DOMAIN'],
'SSL_DIR' => $ssl_dir,
'SSL_HOME' => $_s['SSL_HOME'] == 'on' ? 'single' : 'same'
);
$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']);
}
unlink($ssl_crt_file);
unlink($ssl_key_file);
unlink($ssl_ca_file);
}
if (@Utils::getCheckboxBooleanValue($_s['SUSPEND'])) {
if($result['status']){
$result = array();
@ -222,6 +291,7 @@ class WEB_DOMAIN extends AjaxHandler
}
}
return $this->reply($result['status'], $result['data']);
}
@ -267,38 +337,19 @@ class WEB_DOMAIN extends AjaxHandler
$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));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
}
// return $this->reply($result['status']);
}
else {
$result = Vesta::execute(Vesta::V_UNSUSPEND_WEB_DOMAIN, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['UNSUSPEND'] = array($result['error_code'] => $result['error_message']);
}
}
if ($_new['SUSPEND'] == 'on') {
$result = Vesta::execute(Vesta::V_SUSPEND_WEB_DOMAIN, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
}
// return $this->reply($result['status']);
}
else {
$result = Vesta::execute(Vesta::V_UNSUSPEND_WEB_DOMAIN, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['UNSUSPEND'] = array($result['error_code'] => $result['error_message']);
}
}
}
if(@Utils::getCheckboxBooleanValue($_new['SUSPEND'])){
$result = Vesta::execute(Vesta::V_SUSPEND_WEB_DOMAIN, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN));
return $this->reply($result['status'], $result['error_message']);
}
elseif(@Utils::getCheckboxBooleanValue($_old['SUSPEND'])){
$result = Vesta::execute(Vesta::V_UNSUSPEND_WEB_DOMAIN, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN));
if (!$result['status']) {
$this->status = FALSE;
$this->errors['UNSUSPEND'] = array($result['error_code'] => $result['error_message']);
return $this->reply($result['status'], $result['error_message']);
}
}
if ($_old['IP'] != $_new['IP']) {
$result = array();
@ -437,7 +488,15 @@ class WEB_DOMAIN extends AjaxHandler
}
if (( !empty($_new['SSL_KEY']) && !empty($_new['SSL_CRT']) && $_new['SSL'] == 'on') || $_old['SSL_HOME'] != $_new['SSL_HOME']) {
if ( ( $_old['SSL_KEY'] != $_new['SSL_KEY']
|| $_old['SSL_CRT'] != $_new['SSL_CRT']
|| $_old['SSL_CA'] != $_new['SSL_CA']
|| $_old['SSL_HOME'] != $_new['SSL_HOME']
)
&& !empty($_new['SSL_KEY'])
&& !empty($_new['SSL_CRT'])
&& $_new['SSL'] == 'on'
) {
$ssl_dir = sys_get_temp_dir().'/';
$ssl_crt_file = $ssl_dir . $_new['DOMAIN'] . '.crt';
@ -455,20 +514,39 @@ class WEB_DOMAIN extends AjaxHandler
'USER' => $user['uid'],
'DOMAIN' => $_DOMAIN,
'SSL_DIR' => $ssl_dir,
'SSL_HOME' => $_new['SSL_HOME'] == 'on' ? 'shared' : 'single'
'SSL_HOME' => $_new['SSL_HOME'] == 'on' ? 'single' : 'same'
);
$result = 0;
// updating ssl
if($_old['SSL'] == 'on'){
$result = Vesta::execute(Vesta::V_CHANGE_WEB_DOMAIN_SSL, $params);
if (!$result['status']) {
$this->errors['SSL'] = array($result['error_code'] => $result['error_message']);
}
// if ssl home dir changed, updating it
if($_old['SSL_HOME'] != $_new['SSL_HOME']){
$params = array(
'USER' => $user['uid'],
'DOMAIN' => $_DOMAIN,
'SSL_HOME' => $_new['SSL_HOME'] == 'on' ? 'single' : 'same'
);
$result = Vesta::execute(Vesta::V_CHANGE_WEB_DOMAIN_SSLHOME, $params);
if (!$result['status']) {
$this->errors['SSL_HOME'] = array($result['error_code'] => $result['error_message']);
}
}
}
// adding new ssl
else{
$result = Vesta::execute(Vesta::V_ADD_WEB_DOMAIN_SSL, $params);
if (!$result['status']) {
$this->errors['SSL'] = array($result['error_code'] => $result['error_message']);
}
}
if (!$result['status']) {
$this->errors['SSL'] = array($result['error_code'] => $result['error_message']);
}
unlink($ssl_crt_file);
unlink($ssl_key_file);

View file

@ -29,6 +29,7 @@ class Vesta
const V_LIST_SYS_USER = 'v_list_user';
const V_LIST_USER_PACKAGES = 'v_list_user_packages';
const V_ADD_SYS_USER = 'v_add_user';
const V_ADD_SYS_USER_REPORTS = 'v_add_user_reports';
const V_CHANGE_SYS_USER_CONTACT = 'v_change_user_contact';
const V_CHANGE_SYS_USER_NS = 'v_change_user_ns';
const V_CHANGE_SYS_USER_PACKAGE = 'v_change_user_package';
@ -39,6 +40,7 @@ class Vesta
const V_SUSPEND_SYS_USER = 'v_suspend_user';
const V_UNSUSPEND_SYS_USER = 'v_unsuspend_user';
const V_DEL_SYS_USER = 'v_delete_user';
const V_DEL_SYS_USER_REPORTS = 'v_delete_user_reports';
// WEB_DOMAIN
const V_LIST_WEB_DOMAINS = 'v_list_web_domains';
const V_LIST_WEB_DOMAINS_ALIAS = 'v_list_web_domains_alias';
@ -46,6 +48,7 @@ class Vesta
const V_LIST_WEB_DOMAINS_PROXY = 'v_list_web_domains_proxy';
const V_LIST_WEB_DOMAINS_SSL = 'v_list_web_domains_ssl';
const V_LIST_WEB_DOMAINS_STATS = 'v_list_web_domains_stats';
const V_LIST_WEB_DOMAIN_SSL = 'v_list_web_domain_ssl';
const V_LIST_WEB_TEMPLATES = 'v_list_web_templates';
const V_ADD_WEB_DOMAIN = 'v_add_web_domain';
const V_ADD_WEB_DOMAIN_ALIAS = 'v_add_web_domain_alias';
@ -55,7 +58,7 @@ class Vesta
const V_ADD_WEB_DOMAIN_ELOG = 'v_add_web_domain_elog';
const V_ADD_WEB_DOMAIN_CGI = 'v_add_web_domain_cgi';
const V_CHANGE_WEB_DOMAIN_IP = 'v_change_web_domain_ip';
const V_CHANGE_WEB_DOMAIN_SSLCERT = 'v_change_web_domain_sslcert';
const V_CHANGE_WEB_DOMAIN_SSL = 'v_change_web_domain_sslcert';
const V_CHANGE_WEB_DOMAIN_SSLHOME = 'v_change_web_domain_sslhome';
const V_CHANGE_WEB_DOMAIN_TPL = 'v_change_web_domain_tpl';
const V_DEL_WEB_DOMAIN_CGI = 'v_delete_web_domain_cgi';
@ -121,14 +124,14 @@ class Vesta
// CRON
const V_LIST_CRON_JOBS = 'v_list_cron_jobs';
const V_ADD_CRON_JOB = 'v_add_cron_job';
const V_ADD_SYS_USER_REPORTS = 'v_add_user_reports';
// const V_ADD_SYS_USER_REPORTS = 'v_add_user_reports';
const V_CHANGE_CRON_JOB = 'v_change_cron_job';
const V_SUSPEND_CRON_JOB = 'v_suspend_cron_job';
const V_SUSPEND_CRON_JOBS = 'v_suspend_cron_jobs';
const V_UNSUSPEND_CRON_JOB = 'v_unsuspend_cron_job';
const V_UNSUSPEND_CRON_JOBS = 'v_unsuspend_cron_jobs';
const V_DEL_CRON_JOB = 'v_delete_cron_job';
const V_DEL_SYS_USER_REPORTS = 'v_delete_user_reports';
// const V_DEL_SYS_USER_REPORTS = 'v_delete_user_reports';
// STATS
const V_LIST_SYS_RRD = 'v_list_sys_rrd json';
const V_UPDATE_SYS_RRD = 'v_update_sys_rrd';

View file

@ -76,20 +76,20 @@ class VestaSession
public function loginAs($login)
{
// TODO checkrights for login as
// if(Vesta::hasRights(self::getUserRole();, 'login_as')){
// TODO checkrights for login as
if(Vesta::hasRights(self::getUserRole(), 'login_as')){
if(!$_SESSION['real_user']){
$_SESSION['real_user'] = $_SESSION['user'];
}
}
if(!$_SESSION['real_user'])
$_SESSION['real_user'] = $_SESSION['user'];
$_SESSION['user'] = $login;
// }
$_SESSION['user'] = $login;
}
public function logoutAs()
{
$_SESSION['user'] = $_SESSION['real_user'];
$_SESSION['real_user'] = false;
}
}
?>

View file

@ -5,7 +5,7 @@ class Utils
public static function getCheckboxBooleanValue($checkbox_value)
{
return $checkbox_value == 'on' ? true : false;
return ($checkbox_value == 'on' || $checkbox_value == 'yes' || $checkbox_value === TRUE) ? true : false;
}
}

View file

@ -18,7 +18,7 @@ switch ($_GET['action']) {
handleUpload();
}
else {
show_form();
show_form();
}
break;
}
@ -59,8 +59,8 @@ function handleUpload()
function show_form()
{
$type = $_GET['type'];
if (!in_array($type, array('key', 'cert'))) {
exit;
if (!in_array($type, array('key', 'cert', 'ca'))) {
exit;
}
print <<<HTML