Skip to content

Commit 93a665b

Browse files
authored
Fix edit package (hestiacp#2131)
* Fix edit pacakge TODO add tests for create / edit / delete package * Remove temp files + add tests ✓ Package: Create new Package ✓ Package: Assign user to new Package ✓ Package: Create new package (Duplicate) ✓ Package: Update new Package ✓ Package: Update package of user ✓ Package: Delete package
1 parent 650ec3b commit 93a665b

File tree

3 files changed

+59
-16
lines changed

3 files changed

+59
-16
lines changed

test/test.bats

Lines changed: 52 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1462,9 +1462,58 @@ function check_ip_not_banned(){
14621462
@test "Test Whitelist Fail2ban" {
14631463

14641464
echo "1.2.3.4" >> $HESTIA/data/firewall/excludes.conf
1465-
run v-add-firewall-ban '1.2.3.4' 'HESTIA'
1466-
rm $HESTIA/data/firewall/excludes.conf
1467-
check_ip_not_banned '1.2.3.4' 'HESTIA'
1465+
run v-add-firewall-ban '1.2.3.4' 'HESTIA'
1466+
rm $HESTIA/data/firewall/excludes.conf
1467+
check_ip_not_banned '1.2.3.4' 'HESTIA'
1468+
}
1469+
1470+
#----------------------------------------------------------#
1471+
# PACKAGE #
1472+
#----------------------------------------------------------#
1473+
1474+
@test "Package: Create new Package" {
1475+
cp $HESTIA/data/packages/default.pkg /tmp/package
1476+
run v-add-user-package /tmp/package hestiatest
1477+
assert_success
1478+
refute_output
1479+
}
1480+
1481+
@test "Package: Assign user to new Package" {
1482+
run v-change-user-package $user hestiatest
1483+
assert_success
1484+
refute_output
1485+
}
1486+
1487+
@test "Package: Create new package (Duplicate)" {
1488+
sed -i "s/BANDWIDTH='unlimited'/BANDWIDTH='100'/g" /tmp/package
1489+
run v-add-user-package /tmp/package hestiatest
1490+
assert_failure $E_EXISTS
1491+
}
1492+
1493+
@test "Package: Update new Package" {
1494+
sed -i "s/BANDWIDTH='unlimited'/BANDWIDTH='100'/g" /tmp/package
1495+
run v-add-user-package /tmp/package hestiatest yes
1496+
assert_success
1497+
refute_output
1498+
}
1499+
1500+
@test "Package: Update package of user" {
1501+
run v-change-user-package $user hestiatest
1502+
assert_success
1503+
refute_output
1504+
run grep "BANDWIDTH='100'" $HESTIA/data/users/$user/user.conf
1505+
assert_success
1506+
assert_output --partial "100"
1507+
}
1508+
1509+
@test "Package: Delete package" {
1510+
run v-delete-user-package hestiatest
1511+
rm /tmp/package
1512+
assert_success
1513+
refute_output
1514+
run grep "BANDWIDTH='unlimited'" $HESTIA/data/users/$user/user.conf
1515+
assert_success
1516+
assert_output --partial "unlimited"
14681517
}
14691518

14701519
#----------------------------------------------------------#

web/add/package/index.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@
179179
unset($output);
180180

181181
fclose($fp);
182+
unlink($tmpfile);
182183
}
183184

184185
// Flush field values on success

web/edit/package/index.php

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -233,11 +233,6 @@
233233
$v_time = escapeshellarg(date('H:i:s'));
234234
$v_date = escapeshellarg(date('Y-m-d'));
235235

236-
// Create temprorary directory
237-
exec('mktemp -d', $output, $return_var);
238-
$tmpdir = $output[0];
239-
unset($output);
240-
241236
// Save package file on a fs
242237
$pkg = "WEB_TEMPLATE=".$v_web_template."\n";
243238
$pkg .= "BACKEND_TEMPLATE=".$v_backend_template."\n";
@@ -258,18 +253,16 @@
258253
$pkg .= "BACKUPS=".$v_backups."\n";
259254
$pkg .= "TIME=".$v_time."\n";
260255
$pkg .= "DATE=".$v_date."\n";
261-
$fp = fopen($tmpdir."/".$_POST['v_package'].".pkg", 'w');
262-
fwrite($fp, $pkg);
263-
fclose($fp);
264256

265-
// Save changes
266-
exec(HESTIA_CMD."v-add-user-package ".$tmpdir." ".$v_package." 'yes'", $output, $return_var);
257+
$tmpfile = tempnam('/tmp/', 'hst_');
258+
$fp = fopen($tmpfile, 'w');
259+
fwrite($fp, $pkg);
260+
exec(HESTIA_CMD."v-add-user-package ".$tmpfile." ".$v_package." yes", $output, $return_var);
267261
check_return_code($return_var, $output);
268262
unset($output);
269263

270-
// Remove temporary dir
271-
exec('rm -rf '.$tmpdir, $output, $return_var);
272-
unset($output);
264+
fclose($fp);
265+
unlink($tmpfile);
273266

274267
// Propogate new package
275268
exec(HESTIA_CMD."v-update-user-package ".$v_package." 'json'", $output, $return_var);

0 commit comments

Comments
 (0)