Pre release
|
@ -6,14 +6,14 @@ V_BIN="$VESTA/bin"
|
|||
V_TEST="$VESTA/test"
|
||||
|
||||
# Define functions
|
||||
tmp_user() {
|
||||
random() {
|
||||
MATRIX='0123456789'
|
||||
LENGTH=4
|
||||
LENGTH=$1
|
||||
while [ ${n:=1} -le $LENGTH ]; do
|
||||
rand="$rand${MATRIX:$(($RANDOM%${#MATRIX})):1}"
|
||||
let n+=1
|
||||
done
|
||||
echo "tmp_$rand"
|
||||
echo "$rand"
|
||||
}
|
||||
|
||||
echo_result() {
|
||||
|
@ -25,8 +25,8 @@ echo_result() {
|
|||
echo -n 'FAILED'
|
||||
echo -n ']'
|
||||
echo -ne '\r\n'
|
||||
echo "$4"
|
||||
echo "RETURN VALUE $2"
|
||||
echo ">>> $4"
|
||||
echo ">>> RETURN VALUE $2"
|
||||
cat $3
|
||||
else
|
||||
echo -n ' OK '
|
||||
|
@ -36,54 +36,63 @@ echo_result() {
|
|||
}
|
||||
|
||||
# Create random username
|
||||
user=$(tmp_user)
|
||||
user="tmp_$(random 4)"
|
||||
while [ ! -z "$(grep "^$user:" /etc/passwd)" ]; do
|
||||
user=$(tmp_user)
|
||||
user="tmp_$(random 4)"
|
||||
done
|
||||
|
||||
# Create random tmpfile
|
||||
tmpfile=$(mktemp -p /tmp )
|
||||
|
||||
|
||||
# Add new user
|
||||
cmd="v_add_user $user $user $user@vestacp.com default Super Test"
|
||||
$cmd > $tmpfile 2>> $tmpfile
|
||||
echo_result "Adding new user $user" "$?" "$tmpfile" "$cmd"
|
||||
|
||||
|
||||
# Change system shell
|
||||
cmd="v_change_user_shell $user bash"
|
||||
$cmd > $tmpfile 2>> $tmpfile
|
||||
echo_result "Changing system shell to /bin/bash" "$?" "$tmpfile" "$cmd"
|
||||
|
||||
|
||||
# Change name servers
|
||||
cmd="v_change_user_ns $user ns0.com ns1.com ns2.com ns3.com"
|
||||
$cmd > $tmpfile 2>> $tmpfile
|
||||
echo_result "Changing nameservers" "$?" "$tmpfile" "$cmd"
|
||||
|
||||
|
||||
# Add cron job
|
||||
cmd="v_add_cron_job $user 1 1 1 1 1 echo"
|
||||
$cmd > $tmpfile 2>> $tmpfile
|
||||
echo_result "Adding cron job" "$?" "$tmpfile" "$cmd"
|
||||
|
||||
|
||||
# Suspend cron job
|
||||
cmd="v_suspend_cron_job $user 1"
|
||||
$cmd > $tmpfile 2>> $tmpfile
|
||||
echo_result "Suspending cron job" "$?" "$tmpfile" "$cmd"
|
||||
|
||||
|
||||
# Unsuspend cron job
|
||||
cmd="v_unsuspend_cron_job $user 1"
|
||||
$cmd > $tmpfile 2>> $tmpfile
|
||||
echo_result "Unsuspending cron job" "$?" "$tmpfile" "$cmd"
|
||||
|
||||
|
||||
# Delete cron job
|
||||
cmd="v_delete_cron_job $user 1"
|
||||
$cmd > $tmpfile 2>> $tmpfile
|
||||
echo_result "Deleting cron job" "$?" "$tmpfile" "$cmd"
|
||||
|
||||
|
||||
# Add cron job
|
||||
cmd="v_add_cron_job $user 1 1 1 1 1 echo 1"
|
||||
$cmd > $tmpfile 2>> $tmpfile
|
||||
echo_result "Adding cron job" "$?" "$tmpfile" "$cmd"
|
||||
|
||||
|
||||
# Add cron job
|
||||
cmd="v_add_cron_job $user 1 1 1 1 1 echo 1"
|
||||
$cmd > $tmpfile 2>> $tmpfile
|
||||
|
@ -94,9 +103,28 @@ else
|
|||
fi
|
||||
echo_result "Dublicate cron job check" "$retval" "$tmpfile" "$cmd"
|
||||
|
||||
# Check ip
|
||||
#cat /proc/net/dev|cut -f 1 -d :|tail -n1
|
||||
#v_add_sys_ip 192.168.11.11 255.255.255.255 venet0 ekho
|
||||
|
||||
# List network interfaces
|
||||
cmd="v_list_sys_interfaces plain"
|
||||
interface=$($cmd 2> $tmpfile | head -n 1)
|
||||
if [ -z "$interface" ]; then
|
||||
echo_result "Listing network interfaces" "1" "$tmpfile" "$cmd"
|
||||
else
|
||||
echo_result "Listing network interfaces" "0" "$tmpfile" "$cmd"
|
||||
fi
|
||||
|
||||
|
||||
# Add new ip address
|
||||
cmd="v_add_sys_ip 198.18.0.123 255.255.255.255 $interface $user"
|
||||
$cmd > $tmpfile 2>> $tmpfile
|
||||
echo_result "Adding ip 198.18.0.123" "$?" "$tmpfile" "$cmd"
|
||||
|
||||
|
||||
# Delete ip address
|
||||
cmd="v_delete_sys_ip 198.18.0.123"
|
||||
$cmd > $tmpfile 2>> $tmpfile
|
||||
echo_result "Deleting ip 198.18.0.123" "$?" "$tmpfile" "$cmd"
|
||||
|
||||
|
||||
# Delete new user
|
||||
cmd="v_delete_user $user"
|
||||
|
|
|
@ -1584,10 +1584,14 @@ input::-moz-focus-inner{
|
|||
background-color:#FFFFCB;
|
||||
}
|
||||
.b-new-entry select.styled{
|
||||
top:10px;
|
||||
top:0;
|
||||
}
|
||||
.b-new-entry option{
|
||||
font:14px arial,sans-serif;
|
||||
padding:5px 5px 5px 8px;
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
font-size:14px;
|
||||
font-weight:bold;
|
||||
color:#555;
|
||||
}
|
||||
.b-new-entry .form-options-group{}
|
||||
|
||||
|
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 1.1 KiB |
BIN
web/images/checkboxes.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.5 KiB |
BIN
web/images/form-checkboxes.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
web/images/section-status-sprite-7.png
Normal file
After Width: | Height: | Size: 993 B |
|
@ -82,7 +82,6 @@
|
|||
<dl class="users-nav-item">
|
||||
<dt class="section-title cc">
|
||||
<span class="to-section">User</span>
|
||||
<i class="add-entry do_action_new_entry"> </i>
|
||||
</dt>
|
||||
<dd class="section-contains">
|
||||
<span class="def"><span class="num-total">0</span> users</span>
|
||||
|
@ -98,7 +97,6 @@
|
|||
<dl class="users-nav-item">
|
||||
<dt class="section-title cc">
|
||||
<span class="to-section">Web</span>
|
||||
<i class="add-entry do_action_new_entry"> </i>
|
||||
</dt>
|
||||
<dd class="section-contains">
|
||||
<span class="def"><span class="num-total">0</span> web domains</span>
|
||||
|
@ -108,12 +106,24 @@
|
|||
</div>
|
||||
<i class="section-devider"></i>
|
||||
</li>
|
||||
<li class="section active" id="DNS">
|
||||
<div class="section-inner">
|
||||
<dl class="users-nav-item">
|
||||
<dt class="section-title cc">
|
||||
<span class="to-section">DNS</span>
|
||||
</dt>
|
||||
<dd class="section-contains">
|
||||
<span class="def"><span class="num-total">0</span> dns domain(s)</span>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<i class="section-devider"></i>
|
||||
</li>
|
||||
<li class="section" id="MAIL">
|
||||
<div class="section-inner">
|
||||
<dl class="users-nav-item">
|
||||
<dt class="section-title cc">
|
||||
<span class="to-section">Mail</span>
|
||||
<i class="add-entry do_action_new_entry"> </i>
|
||||
</dt>
|
||||
<dd class="section-contains">
|
||||
<span class="def"><span class="num-total">0</span> mail domain(s)</span>
|
||||
|
@ -127,7 +137,6 @@
|
|||
<dl class="users-nav-item">
|
||||
<dt class="section-title cc">
|
||||
<span class="to-section">DB</span>
|
||||
<i class="add-entry do_action_new_entry"> </i>
|
||||
</dt>
|
||||
<dd class="section-contains">
|
||||
<span class="def"><span class="num-total">0</span> databases</span>
|
||||
|
@ -137,44 +146,28 @@
|
|||
</div>
|
||||
<i class="section-devider"></i>
|
||||
</li>
|
||||
<li class="section active" id="DNS">
|
||||
<li class="section" id="CRON">
|
||||
<div class="section-inner">
|
||||
<dl class="users-nav-item">
|
||||
<dt class="section-title cc">
|
||||
<span class="to-section">DNS</span>
|
||||
<i class="add-entry do_action_new_entry"> </i>
|
||||
<span class="to-section">Cron</span>
|
||||
</dt>
|
||||
<dd class="section-contains">
|
||||
<span class="def"><span class="num-total">0</span> dns domain(s)</span>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<i class="section-devider"></i>
|
||||
</li>
|
||||
<li class="section" id="IP">
|
||||
<div class="section-inner">
|
||||
<dl class="users-nav-item">
|
||||
<dt class="section-title cc">
|
||||
<span class="to-section">IP</span>
|
||||
<i class="add-entry do_action_new_entry"> </i>
|
||||
</dt>
|
||||
<dd class="section-contains">
|
||||
<span class="def"><span class="num-total">0</span> ip address(es)</span>
|
||||
<span class="def"><span class="num-total">0</span> cron job(s)</span>
|
||||
<span class="def"><span class="num-blocked">0</span> suspended</span>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<i class="section-devider"></i>
|
||||
</li>
|
||||
<li class="section last-section" id="CRON">
|
||||
<li class="section last-section" id="IP">
|
||||
<div class="section-inner">
|
||||
<dl class="users-nav-item">
|
||||
<dt class="section-title cc">
|
||||
<span class="to-section">Cron</span>
|
||||
<i class="add-entry do_action_new_entry"> </i>
|
||||
<span class="to-section">IP</span>
|
||||
</dt>
|
||||
<dd class="section-contains">
|
||||
<span class="def"><span class="num-total">0</span> cron job(s)</span>
|
||||
<span class="def"><span class="num-total">0</span> ip address(es)</span>
|
||||
<span class="def"><span class="num-blocked">0</span> suspended</span>
|
||||
</dd>
|
||||
</dl>
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -61,9 +61,10 @@ 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.WEB_DOMAIN = ['DOMAIN'];
|
||||
App.Settings.Imutable.DB = ['DB', 'TYPE', 'USER', 'CHARSET', 'HOST'];
|
||||
App.Settings.Imutable.DNS = ['DNS_DOMAIN'];
|
||||
App.Settings.Imutable.IP = ['INTERFACE'];
|
||||
App.Settings.Imutable.IP = ['IP_ADDRESS', 'NETMASK', 'INTERFACE'];
|
||||
|
||||
|
||||
// Empty
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -110,7 +110,7 @@ App.HTML.Build.user_form = function (options, id) {
|
|||
ns[ns.length++] = App.Templates.get('PLUS_ONE_NS', 'user').finalize();
|
||||
tpl.set(':NS', ns.done());
|
||||
} else {
|
||||
// tpl.set(':NS', '');
|
||||
tpl.set(':NS', '');
|
||||
}
|
||||
tpl = App.HTML.setTplKeys(tpl, options, true);
|
||||
tpl = App.HTML.Build.user_selects(tpl, options);
|
||||
|
@ -664,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;
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ Visit http://ryanfait.com/ for more information.
|
|||
|
||||
var checkboxHeight = "25";
|
||||
var radioHeight = "25";
|
||||
var selectWidth = "210";
|
||||
var selectWidth = "230";
|
||||
|
||||
|
||||
/* No need to change anything after this */
|
||||
|
@ -47,6 +47,9 @@ var Custom = {
|
|||
if ($(inputs[a]).attr('class').indexOf('do_action_toggle_batch_selector') != -1) {
|
||||
span[a].className += ' do_action_toggle_batch_selector'; // save toggle functionality
|
||||
}
|
||||
if ($(inputs[a]).attr('class').indexOf('do_action_toggle_ssl_support') != -1) {
|
||||
span[a].className += ' do_action_toggle_ssl_support'; // save toggle functionality
|
||||
}
|
||||
|
||||
|
||||
if(inputs[a].checked == true) {
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -144,14 +144,14 @@ App.Templates.html = {
|
|||
</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: {
|
||||
|
@ -403,12 +403,12 @@ 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~!\
|
||||
</select>\
|
||||
</div -->\
|
||||
</div>\
|
||||
<!-- div class="form-row cc">\
|
||||
<label for="#" class="field-label">role:</label>\
|
||||
<select class="styled" name="ROLE">\
|
||||
|
@ -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>\
|
||||
|
@ -860,14 +860,14 @@ 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 class="form-row cc">\
|
||||
<label for="#" class="field-label">Encoding:</label>\
|
||||
<select name="ENCODING" class="styled">~!:ENCODING_OPTIONS~!</select>\
|
||||
</div -->\
|
||||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<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>\
|
||||
<input type="checkbox" ~!:SUSPENDED_CHECKED~! value="~!:SUSPENDED_VALUE~!" class="styled do_action_toggle_suspend" name="SUSPEND" />\
|
||||
|
@ -912,10 +912,10 @@ App.Templates.html = {
|
|||
</div>\
|
||||
<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 -->\
|
||||
<span class="prop-box">\
|
||||
<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">\
|
||||
<div class="usage-box">\
|
||||
|
|
1151
web/js/templates_admin.js
Normal file
1151
web/js/user_templates.js
Normal file
|
@ -38,8 +38,7 @@ class DB extends AjaxHandler
|
|||
'TYPE' => $record['TYPE'],
|
||||
'U_DISK' => $record['U_DISK'],
|
||||
'DISK' => 2024,
|
||||
'ENCODING' => "utf-8",//$record['ENCODING'],
|
||||
// 'ENCODING' => $record['ENCODING'],
|
||||
'CHARSET' => strtolower($record['CHARSET']),
|
||||
'SUSPEND' => $record['SUSPEND'],
|
||||
'DATE' => date(Config::get('ui_date_format', strtotime($record['DATE'])))
|
||||
);
|
||||
|
@ -68,8 +67,8 @@ class DB extends AjaxHandler
|
|||
'DB_USER' => $_s['USER'],
|
||||
'DB_PASSWORD' => $_s['PASSWORD'],
|
||||
'TYPE' => $_s['TYPE'],
|
||||
'HOST' => ''
|
||||
// 'ENCODING' => $_s['ENCODING']
|
||||
'HOST' => $_s['HOST'],
|
||||
'CHARSET' => $_s['CHARSET']
|
||||
);
|
||||
|
||||
$result = Vesta::execute(Vesta::V_ADD_DB_BASE, $params);
|
||||
|
|
|
@ -102,7 +102,7 @@ class DNS extends AjaxHandler
|
|||
'TPL' => $_s['TPL'],
|
||||
'EXP' => $_s['EXP'],
|
||||
'SOA' => $_s['SOA'],
|
||||
'TTL' => $_s['TTL'],
|
||||
'TTL' => $_s['TTL']
|
||||
);
|
||||
|
||||
$result = Vesta::execute(Vesta::V_ADD_DNS_DOMAIN, $params);
|
||||
|
|
|
@ -370,13 +370,14 @@ 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'),
|
||||
'ENCODING' => array(
|
||||
|
||||
'utf8' => 'utf8', 'latin1' => 'latin1', 'cp1251' => 'cp1251',
|
||||
|
||||
'HOST' => $db_hosts,
|
||||
'CHARSET' => array(
|
||||
'utf8' => 'utf8', 'latin1' => 'latin1', 'cp1251' => 'cp1251'
|
||||
/*
|
||||
'' => '',
|
||||
|
||||
'big5' => 'Big5 — Traditional Chinese ',
|
||||
|
@ -415,13 +416,30 @@ MAIL;
|
|||
'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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -51,6 +51,7 @@ class USER extends AjaxHandler
|
|||
"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'],
|
||||
|
@ -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']);
|
||||
|
@ -249,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']);
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
@ -122,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';
|
||||
|
|
|
@ -77,19 +77,19 @@ class VestaSession
|
|||
public function loginAs($login)
|
||||
{
|
||||
// TODO checkrights for login as
|
||||
// if(Vesta::hasRights(self::getUserRole();, 'login_as')){
|
||||
|
||||
if(!$_SESSION['real_user'])
|
||||
if(Vesta::hasRights(self::getUserRole(), 'login_as')){
|
||||
if(!$_SESSION['real_user']){
|
||||
$_SESSION['real_user'] = $_SESSION['user'];
|
||||
}
|
||||
}
|
||||
|
||||
$_SESSION['user'] = $login;
|
||||
|
||||
// }
|
||||
}
|
||||
|
||||
public function logoutAs()
|
||||
{
|
||||
$_SESSION['user'] = $_SESSION['real_user'];
|
||||
$_SESSION['real_user'] = false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -59,7 +59,7 @@ function handleUpload()
|
|||
function show_form()
|
||||
{
|
||||
$type = $_GET['type'];
|
||||
if (!in_array($type, array('key', 'cert'))) {
|
||||
if (!in_array($type, array('key', 'cert', 'ca'))) {
|
||||
exit;
|
||||
}
|
||||
|
||||
|
|