Skip to content

Commit daea239

Browse files
committed
added dns&mail bulk operation support
1 parent 03237bf commit daea239

File tree

10 files changed

+258
-91
lines changed

10 files changed

+258
-91
lines changed

web/bulk/dns/index.php

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
<?php
2+
// Init
3+
error_reporting(NULL);
4+
ob_start();
5+
session_start();
6+
7+
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
8+
9+
$domain = $_POST['domain'];
10+
$record = $_POST['record'];
11+
$action = $_POST['action'];
12+
13+
if ($_SESSION['user'] == 'admin') {
14+
if (empty($record)) {
15+
switch ($action) {
16+
case 'delete': $cmd='v_delete_dns_domain';
17+
break;
18+
case 'suspend': $cmd='v_suspend_dns_domain';
19+
break;
20+
case 'unsuspend': $cmd='v_unsuspend_dns_domain';
21+
break;
22+
default: header("Location: /list/dns/"); exit;
23+
}
24+
} else {
25+
switch ($action) {
26+
case 'delete': $cmd='v_delete_dns_domain_record';
27+
break;
28+
case 'suspend': $cmd='v_suspend_dns_domain_record';
29+
break;
30+
case 'unsuspend': $cmd='v_unsuspend_dns_domain_record';
31+
break;
32+
default: header("Location: /list/dns/?domain=".$domain); exit;
33+
}
34+
}
35+
} else {
36+
if (empty($record)) {
37+
switch ($action) {
38+
case 'delete': $cmd='v_delete_dns_domain';
39+
break;
40+
default: header("Location: /list/dns/"); exit;
41+
}
42+
} else {
43+
switch ($action) {
44+
case 'delete': $cmd='v_delete_dns_domain_record';
45+
break;
46+
default: header("Location: /list/dns/?domain=".$domain); exit;
47+
}
48+
}
49+
}
50+
51+
52+
if (empty($record)) {
53+
foreach ($domain as $value) {
54+
// DNS
55+
$value = escapeshellarg($value);
56+
exec (VESTA_CMD.$cmd." ".$user." ".$value." no", $output, $return_var);
57+
$restart = 'yes';
58+
}
59+
} else {
60+
foreach ($record as $value) {
61+
// DNS Record
62+
$value = escapeshellarg($value);
63+
$dom = escapeshellarg($domain);
64+
exec (VESTA_CMD.$cmd." ".$user." ".$dom." ".$value." no", $output, $return_var);
65+
$restart = 'yes';
66+
}
67+
}
68+
69+
if (!empty($restart)) {
70+
exec (VESTA_CMD."v_restart_dns", $output, $return_var);
71+
}
72+
73+
if (empty($record)) {
74+
header("Location: /list/dns/");
75+
exit;
76+
} else {
77+
header("Location: /list/dns/?domain=".$domain);
78+
exit;
79+
}

web/bulk/mail/index.php

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
<?php
2+
// Init
3+
error_reporting(NULL);
4+
ob_start();
5+
session_start();
6+
7+
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
8+
9+
$domain = $_POST['domain'];
10+
$account = $_POST['account'];
11+
$action = $_POST['action'];
12+
13+
if ($_SESSION['user'] == 'admin') {
14+
if (empty($account)) {
15+
switch ($action) {
16+
case 'delete': $cmd='v_delete_mail_domain';
17+
break;
18+
case 'suspend': $cmd='v_suspend_mail_domain';
19+
break;
20+
case 'unsuspend': $cmd='v_unsuspend_mail_domain';
21+
break;
22+
default: header("Location: /list/mail/"); exit;
23+
}
24+
} else {
25+
switch ($action) {
26+
case 'delete': $cmd='v_delete_mail_account';
27+
break;
28+
case 'suspend': $cmd='v_suspend_mail_account';
29+
break;
30+
case 'unsuspend': $cmd='v_unsuspend_mail_account';
31+
break;
32+
default: header("Location: /list/mail/?domain=".$domain); exit;
33+
}
34+
}
35+
} else {
36+
if (empty($account)) {
37+
switch ($action) {
38+
case 'delete': $cmd='v_delete_mail_domain';
39+
break;
40+
default: header("Location: /list/mail/"); exit;
41+
}
42+
} else {
43+
switch ($action) {
44+
case 'delete': $cmd='v_delete_mail_account';
45+
break;
46+
default: header("Location: /list/mail/?domain=".$domain); exit;
47+
}
48+
}
49+
}
50+
51+
52+
if (empty($account)) {
53+
foreach ($domain as $value) {
54+
// Mail
55+
$value = escapeshellarg($value);
56+
exec (VESTA_CMD.$cmd." ".$user." ".$value." no", $output, $return_var);
57+
$restart = 'yes';
58+
}
59+
} else {
60+
foreach ($account as $value) {
61+
// Mail Account
62+
$value = escapeshellarg($value);
63+
$dom = escapeshellarg($domain);
64+
exec (VESTA_CMD.$cmd." ".$user." ".$dom." ".$value." no", $output, $return_var);
65+
$restart = 'yes';
66+
}
67+
}
68+
69+
if (empty($account)) {
70+
header("Location: /list/mail/");
71+
exit;
72+
} else {
73+
header("Location: /list/mail/?domain=".$domain);
74+
exit;
75+
}

web/templates/admin/list_dns.html

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
<table class="sub-menu" style="background: white;">
22
<tr>
3-
<td style="padding: 12px 0 8px 6px">
3+
<td style="padding: 12px 0 0 6px">
44
<div style="float:left">
55
<button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/dns/'"> Add DNS Domain </button>
66
</div>
77
<div style="text-align: right; float: right;">
8-
<input type="text" size="30" style="padding: 3px 80px 3px 0; margin: 0 2px 0 0;">
9-
<button> Search </button>
8+
<form action="/search/" method="get">
9+
<input type="text" size="30" style="padding: 3px 80px 3px 0; margin: 0 2px 0 0;" name="q">
10+
<input type="submit" name="search" value="Search" class="button" style="font-size: 12px;">
11+
</form>
1012
</div>
1113
<div style="float:left; padding-left: 26px;">
12-
<a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("vstobjects");'> toggle all </a>
13-
<select style="margin:0 2px 0 0px;" >
14+
<form action="/bulk/dns/" method="post" id="objects">
15+
<a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a>
16+
<select style="margin:0 2px 0 0px;" name="action">
1417
<option>apply to selected</option>
15-
<option>rebuild</option>
16-
<option>update counters</option>
1718
<option>suspend</option>
1819
<option>unsuspend</option>
1920
<option>delete</option>
2021
</select>
21-
<button style="width:27px;"></button>
22+
<input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px;">
2223
</div>
2324
</td>
2425
</tr>
@@ -27,7 +28,7 @@
2728
</tr>
2829
</table>
2930

30-
<form id="vstobjects">
31+
<div id="vstobjects">
3132
<table class="data">
3233
<?php
3334
foreach ($data as $key => $value) {
@@ -83,7 +84,7 @@
8384
<tr class="data-row">
8485
<td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150">
8586
<table class="data-col1">
86-
<tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="object" ></td></tr>
87+
<tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="domain[]" value="<?php echo "$key" ?>" ></td></tr>
8788
<tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr>
8889
<tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr>
8990
</table>
@@ -163,6 +164,7 @@
163164
}
164165
?>
165166
</table>
167+
</form>
166168

167169
<table class="data-count">
168170
<tr>
@@ -178,5 +180,5 @@
178180
</td>
179181
</tr>
180182
</table>
181-
</form>
183+
</div>
182184

web/templates/admin/list_dns_rec.html

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
11

22
<table class="sub-menu" style="background: white;">
33
<tr>
4-
<td style="padding: 12px 0 8px 6px">
4+
<td style="padding: 12px 0 0 6px">
55
<div style="float:left">
66
<button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/dns/?domain=<?php echo $_GET['domain'] ?>'"> Add DNS Record </button>
77
</div>
88
<div style="text-align: right; float: right;">
9-
<input type="text" size="30" style="padding: 3px 80px 3px 0; margin: 0 2px 0 0;">
10-
<button> Search </button>
9+
<form action="/search/" method="get">
10+
<input type="text" size="30" style="padding: 3px 80px 3px 0; margin: 0 2px 0 0;" name="q">
11+
<input type="submit" name="search" value="Search" class="button" style="font-size: 12px;">
12+
</form>
1113
</div>
1214
<div style="float:left; padding-left: 26px;">
13-
<a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("vstobjects");'> toggle all </a>
14-
<select style="margin:0 2px 0 0px;" >
15+
<form action="/bulk/dns/" method="post" id="objects">
16+
<a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a>
17+
<select style="margin:0 2px 0 0px;" name="action">
1518
<option>apply to selected</option>
16-
<option>rebuild</option>
17-
<option>update counters</option>
1819
<option>suspend</option>
1920
<option>unsuspend</option>
2021
<option>delete</option>
2122
</select>
22-
<button style="width:27px;"></button>
23+
<input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px;">
2324
</div>
2425
</td>
2526
</tr>
@@ -28,7 +29,7 @@
2829
</tr>
2930
</table>
3031

31-
<form id="vstobjects">
32+
<div id="vstobjects">
3233
<table class="data">
3334
<?php
3435
foreach ($data as $key => $value) {
@@ -84,7 +85,7 @@
8485
<tr class="data-row">
8586
<td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150">
8687
<table class="data-col1">
87-
<tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="object" ></td></tr>
88+
<tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="record[]" value="<?php echo $data[$key]['ID']?>" > <input type="hidden" name="domain" value="<?php echo $_GET['domain'] ?>" ></td></tr>
8889
<tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr>
8990
<tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr>
9091
</table>
@@ -124,6 +125,7 @@
124125
}
125126
?>
126127
</table>
128+
</form>
127129

128130
<table class="data-count">
129131
<tr>
@@ -139,4 +141,4 @@
139141
</td>
140142
</tr>
141143
</table>
142-
</form>
144+
</div>

web/templates/admin/list_mail.html

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
<table class="sub-menu" style="background: white;">
22
<tr>
3-
<td style="padding: 12px 0 8px 6px">
3+
<td style="padding: 12px 0 0 6px">
44
<div style="float:left">
55
<button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/mail/'"> Add Mail Domain </button>
66
</div>
77
<div style="text-align: right; float: right;">
8-
<input type="text" size="30" style="padding: 3px 80px 3px 0; margin: 0 2px 0 0;">
9-
<button> Search </button>
8+
<form action="/search/" method="get" >
9+
<input type="text" size="30" style="padding: 3px 80px 3px 0; margin: 0 2px 0 0;" name="q">
10+
<input type="submit" name="search" value="Search" class="button" style="font-size: 12px;">
11+
</form>
1012
</div>
1113
<div style="float:left; padding-left: 26px;">
12-
<a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("vstobjects");'> toggle all </a>
13-
<select style="margin:0 2px 0 0px;" >
14+
<form action="/bulk/mail/" method="post" id="objects">
15+
<a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a>
16+
<select style="margin:0 2px 0 0px;" name="action">
1417
<option>apply to selected</option>
15-
<option>rebuild</option>
16-
<option>update counters</option>
1718
<option>suspend</option>
1819
<option>unsuspend</option>
1920
<option>delete</option>
2021
</select>
21-
<button style="width:27px;"></button>
22+
<input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px;">
2223
</div>
2324
</td>
2425
</tr>
@@ -27,7 +28,7 @@
2728
</tr>
2829
</table>
2930

30-
<form id="vstobjects">
31+
<div id="vstobjects">
3132
<table class="data">
3233
<?php
3334
list($http_host, $port) = explode(':', $_SERVER["HTTP_HOST"]);
@@ -87,7 +88,7 @@
8788
<tr class="data-row">
8889
<td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150">
8990
<table class="data-col1">
90-
<tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="object" ></td></tr>
91+
<tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="domain[]" value="<?php echo "$key" ?>" ></td></tr>
9192
<tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr>
9293
<tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr>
9394
</table>
@@ -190,6 +191,7 @@
190191
}
191192
?>
192193
</table>
194+
</form>
193195

194196
<table class="data-count">
195197
<tr>
@@ -205,4 +207,4 @@
205207
</td>
206208
</tr>
207209
</table>
208-
</form>
210+
</div>

0 commit comments

Comments
 (0)