Skip to content

Commit b94b475

Browse files
author
Kristan Kenney
committed
Merge branch 'feature/user-roles' into fix/ui-sort-order
2 parents 0b6b0cd + c19628c commit b94b475

File tree

6 files changed

+88
-118
lines changed

6 files changed

+88
-118
lines changed

web/css/src/themes/default.css

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2862,10 +2862,6 @@ a.vst-text:active b{
28622862
text-transform: none;
28632863
}
28642864

2865-
.body-web .vst-advanced:focus {
2866-
background: none !important;
2867-
}
2868-
28692865
.login-box .vst-advanced:hover {
28702866
color: #cc3366;
28712867
background-color: transparent;

web/css/themes/default.min.css

Lines changed: 5 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/edit/mail/index.php

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
if (($_SESSION['userContext'] === 'admin') && (!empty($_GET['user']))) {
1717
$user=escapeshellarg($_GET['user']);
1818
}
19+
1920
$v_username = $user;
2021

2122
// Get all user domains
@@ -32,9 +33,11 @@
3233
if ((!empty($_GET['domain'])) && (empty($_GET['account']))) {
3334

3435
$v_domain = $_GET['domain'];
35-
if(!in_array($v_domain, $user_domains)) {
36-
header("Location: /list/mail/");
37-
exit;
36+
if ($_SESSION['userContext'] !== 'admin') {
37+
if(!in_array($v_domain, $user_domains)) {
38+
header("Location: /list/mail/");
39+
exit;
40+
}
3841
}
3942

4043
exec (HESTIA_CMD."v-list-mail-domain ".$user." ".escapeshellarg($v_domain)." json", $output, $return_var);
@@ -86,9 +89,11 @@
8689
if ((!empty($_GET['domain'])) && (!empty($_GET['account']))) {
8790

8891
$v_domain = $_GET['domain'];
89-
if(!in_array($v_domain, $user_domains)) {
90-
header("Location: /list/mail/");
91-
exit;
92+
if ($_SESSION['userContext'] !== 'admin') {
93+
if(!in_array($v_domain, $user_domains)) {
94+
header("Location: /list/mail/");
95+
exit;
96+
}
9297
}
9398

9499
$v_account = $_GET['account'];

web/edit/web/index.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,11 @@
2626

2727
// List domain
2828
$v_domain = $_GET['domain'];
29-
if(!in_array($v_domain, $user_domains)) {
30-
header("Location: /list/web/");
31-
exit;
29+
if ($_SESSION['userContext'] !== 'admin') {
30+
if(!in_array($v_domain, $user_domains)) {
31+
header("Location: /list/mail/");
32+
exit;
33+
}
3234
}
3335

3436
exec (HESTIA_CMD."v-list-web-domain ".$user." ".escapeshellarg($v_domain)." json", $output, $return_var);

web/search/index.php

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,29 @@
1010

1111
// Check query
1212
$q = $_GET['q'];
13-
if (empty($q)) {
14-
$back=getenv("HTTP_REFERER");
15-
if (!empty($back)) {
16-
header("Location: ".$back);
17-
exit;
18-
}
19-
header("Location: /");
20-
exit;
21-
}
13+
$u = $_GET['u'];
14+
15+
#if (empty($q)) {
16+
# $back=getenv("HTTP_REFERER");
17+
# if (!empty($back)) {
18+
# header("Location: ".$back);
19+
# exit;
20+
# }
21+
# header("Location: /");
22+
# exit;
23+
#}
2224

2325
// Data
2426
$q = escapeshellarg($q);
27+
$u = escapeshellarg($u);
2528

2629
if (($_SESSION['userContext'] === 'admin') && (!isset($_SESSION['look']))) {
27-
exec (HESTIA_CMD . "v-search-object " .$q. " json", $output, $return_var);
30+
if (!empty($_GET['u'])) {
31+
$user = $u;
32+
exec (HESTIA_CMD . "v-search-user-object " .$user. " " .$q. " json", $output, $return_var);
33+
} else {
34+
exec (HESTIA_CMD . "v-search-object " .$q. " json", $output, $return_var);
35+
}
2836
} else {
2937
exec (HESTIA_CMD . "v-search-user-object " .$user. " " .$q. " json", $output, $return_var);
3038
}

web/templates/admin/list_search.html

Lines changed: 49 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,19 @@
2929
<div class="l-separator"></div>
3030
<!-- /.l-separator -->
3131

32-
3332
<div class="l-center units">
3433
<div class="header table-header">
3534
<div class="l-unit__col l-unit__col--right">
3635
<div class="clearfix l-unit__stat-col--left super-compact">
3736
&nbsp;
3837
</div>
38+
<div class="clearfix l-unit__stat-col--left text-center compact-2"><b><?php print _('Status');?></b></div>
3939
<div class="clearfix l-unit__stat-col--left wide-5"><b><?php print _('Search Results');?></b></div>
4040
<div class="clearfix l-unit__stat-col--left compact-3"><b>&nbsp;</b></div>
4141
<div class="clearfix l-unit__stat-col--left text-center"><b><?php print _('Date');?></b></div>
42-
<div class="clearfix l-unit__stat-col--left text-center"><b><?php print _('Type');?></b></div>
4342
<div class="clearfix l-unit__stat-col--left text-center"><b><?php print _('Owner');?></b></div>
44-
<div class="clearfix l-unit__stat-col--left text-center"><b><?php print _('Status');?></b></div>
43+
<div class="clearfix l-unit__stat-col--left text-center"><b><?php print _('Type');?></b></div>
44+
4545
</div>
4646
</div>
4747
<?
@@ -68,119 +68,74 @@
6868
?>
6969

7070

71-
<div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE[$uniq_id] == 1) echo ' l-unit--starred'; ?> animated fadeIn" id="web-unit-<?=$i?>" uniq-id="<?=$uniq_id?>" sort-date="<?=strtotime($value['DATE'].' '.$value['TIME'])?>" sort-name="<?=$value['RESULT']?>" sort-type="<?=_($object)?>" sort-owner="<?=$value['USER']?>" sort-status="<?=$status?>">
72-
73-
71+
<div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE[$uniq_id] == 1) echo ' l-unit--starred'; ?> animated fadeIn" id="web-unit-<?=$i?>" uniq-id="<?=$uniq_id?>" sort-date="<?=strtotime($value['DATE'].' '.$value['TIME'])?>" sort-name="<?=$value['RESULT']?>" sort-type="<?=_($object)?>" sort-owner="<?=$value['USER']?>" sort-status="<?=$status?>">
72+
7473
<div class="l-unit__col l-unit__col--right">
75-
<div class="clearfix l-unit__stat-col--left super-compact">
76-
&nbsp;
74+
<div class="clearfix l-unit__stat-col--left super-compact text-center">
75+
<? if ($object === 'web domain') {
76+
$icon = 'fa-globe-americas';
77+
}?>
78+
<? if ($object === 'mail domain') {
79+
$icon = 'fa-mail-bulk';
80+
}?>
81+
<? if ($object === 'dns domain') {
82+
$icon = 'fa-atlas';
83+
}?>
84+
<? if ($object === 'dns record') {
85+
$icon = 'fa-atlas';
86+
}?>
87+
<? if ($object === 'database') {
88+
$icon = 'fa-database';
89+
}?>
90+
<? if ($object === 'cron job') {
91+
$icon = 'fa-clock';
92+
}?>
93+
<i class="fa <?=$icon;?> status-icon dim"></i>
7794
</div>
95+
<div class="clearfix l-unit__stat-col--left compact-2 text-center">
96+
<b>
97+
<? if ($status === 'active') {?>
98+
<i class="fas fa-check-circle status-icon green"></i>
99+
<? } ?>
100+
<? if ($status === 'suspended') {?>
101+
<i class="fas fa-exclamation-triangle status-icon orange"></i>
102+
<? } ?>
103+
</b>
104+
</div>
78105
<div class="clearfix l-unit__stat-col--left wide-5 truncate">
79-
<!--<?
106+
<?
80107
if ($value['KEY'] == 'RECORD') {
81-
$edit_lnk = '/edit/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&record_id='.$value['LINK'].'&user='.$value['USER'];
108+
$edit_lnk = '/edit/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&record_id='.$value['LINK'].'&user='.$value['USER'].'&token='.$_SESSION['token'].'';
82109
}
83110
if ($value['KEY'] == 'ACCOUNT') {
84-
$edit_lnk = '/edit/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&account='.$value['LINK'].'&user='.$value['USER'];
111+
$edit_lnk = '/edit/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&account='.$value['LINK'].'&user='.$value['USER'].'&token='.$_SESSION['token'].'';
85112
}
86113
if ($value['KEY'] == 'JOB') {
87-
$edit_lnk = '/edit/'.$value['TYPE'].'/?job='.$value['LINK'].'&user='.$value['USER'];
114+
$edit_lnk = '/edit/'.$value['TYPE'].'/?job='.$value['LINK'].'&user='.$value['USER'].'&token='.$_SESSION['token'].'';
88115
}
89116
if ($value['KEY'] == 'DATABASE') {
90-
$edit_lnk = '/edit/'.$value['TYPE'].'/?database='.$value['RESULT'].'&user='.$value['USER'];
117+
$edit_lnk = '/edit/'.$value['TYPE'].'/?database='.$value['RESULT'].'&user='.$value['USER'].'&token='.$_SESSION['token'].'';
91118
}
92119
if (($value['KEY'] != 'RECORD') && ($value['KEY'] != 'ACCOUNT') && ($value['KEY'] != 'JOB') && ($value['KEY'] != 'DATABASE') ) {
93-
$edit_lnk = '/edit/'.$value['TYPE'].'/?'.strtolower($value['KEY']).'='.$value['RESULT'].'&user='.$value['USER'];
120+
$edit_lnk = '/edit/'.$value['TYPE'].'/?'.strtolower($value['KEY']).'='.$value['RESULT'].'&user='.$value['USER'].'&token='.$_SESSION['token'].'';
94121
}
95-
?>-->
122+
?>
96123
<b>
97-
<?=$value['RESULT']?>
124+
<a href="<?php echo $edit_lnk; ?>"><?=$value['RESULT']?></a>
98125
</b>
99126
</div>
100-
101127
<div class="clearfix l-unit__stat-col--left text-right compact-3">
102-
&nbsp;
103-
<!--
104128
<div class="l-unit-toolbar__col l-unit-toolbar__col--right noselect">
105129
<div class="actions-panel clearfix">
106-
<div class="actions-panel__col actions-panel__logs shortcut-enter" key-action="href">
107-
<a href="<?=$edit_lnk?>"><i class="fas fa-pencil-alt status-icon orange status-icon dim"></i></a>
108-
</div>
109-
<? if (!empty($value['STATS'])) { ?>
110-
<div class="actions-panel__col actions-panel__logs shortcut-w" key-action="href"><a href="http://<?=$value['RESULT']?>/vstats/" target="_blank"><i class="fas fa-binoculars status-icon purple status-icon dim"></i></a></div>
111-
<? } ?>
112-
<div class="actions-panel__col actions-panel__suspend shortcut-s" key-action="js">
113-
<?
114-
if ($value['KEY'] == 'RECORD') {
115-
$spnd_lnk = '/'.$spnd_action.'/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&record_id='.$value['LINK'].'&user='.$value['USER'];
116-
$cnfrm = 'SUSPEND_RECORD_CONFIRMATION';
117-
}
118-
if ($value['KEY'] == 'ACCOUNT') {
119-
$spnd_lnk = '/'.$spnd_action.'/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&account='.$value['LINK'].'&user='.$value['USER'];
120-
$cnfrm = 'SUSPEND_USER_CONFIRMATION';
121-
}
122-
if ($value['KEY'] == 'JOB') {
123-
$spnd_lnk = '/'.$spnd_action.'/'.$value['TYPE'].'/?job='.$value['LINK'].'&user='.$value['USER'];
124-
$cnfrm = 'SUSPEND_CRON_CONFIRMATION';
125-
}
126-
if ($value['KEY'] == 'DATABASE') {
127-
$spnd_lnk = '/'.$spnd_action.'/'.$value['TYPE'].'/?database='.$value['RESULT'].'&user='.$value['USER'];
128-
$cnfrm = 'SUSPEND_DATABASE_CONFIRMATION';
129-
}
130-
if (($value['KEY'] != 'RECORD') && ($value['KEY'] != 'ACCOUNT') && ($value['KEY'] != 'JOB') && ($value['KEY'] != 'DATABASE') ) {
131-
$spnd_lnk = '/'.$spnd_action.'/'.$value['TYPE'].'/?'.strtolower($value['KEY']).'='.$value['RESULT'].'&user='.$value['USER'];
132-
$cnfrm = 'SUSPEND_DOMAIN_CONFIRMATION';
133-
}
134-
?>
135-
<a id="<?=$spnd_action ?>_link_<?=$i?>" class="data-controls do_<?=$spnd_action?>">
136-
<i class="fas fa-pause status-icon highlight status-icon dim do_<?=$spnd_action?>"></i>
137-
<input type="hidden" name="<?=$spnd_action?>_url" value="<?=$spnd_lnk?>&token=<?=$_SESSION['token']?>" />
138-
<div id="<?=$spnd_action?>_dialog_<?=$i?>" class="confirmation-text-suspention hidden" title="<?=_('Confirmation')?>">
139-
<p class="confirmation"><?=_($cnfrm, $value['RESULT'])?></p>
140-
</div>
141-
</a>
142-
</div>
143-
<div class="actions-panel__col actions-panel__delete shortcut-delete" key-action="js">
144-
<?
145-
if ($value['KEY'] == 'RECORD') {
146-
$delete_lnk = '/delete/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&record_id='.$value['LINK'].'&user='.$value['USER'];
147-
$cnfrm = 'DELETE_RECORD_CONFIRMATION';
148-
}
149-
if ($value['KEY'] == 'ACCOUNT') {
150-
$delete_lnk = '/delete/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&account='.$value['LINK'].'&user='.$value['USER'];
151-
$cnfrm = 'DELETE_USER_CONFIRMATION';
152-
}
153-
if ($value['KEY'] == 'JOB') {
154-
$delete_lnk = '/delete/'.$value['TYPE'].'/?job='.$value['LINK'].'&user='.$value['USER'];
155-
$cnfrm = 'DELETE_CRON_CONFIRMATION';
156-
}
157-
if ($value['KEY'] == 'DATABASE') {
158-
$delete_lnk = '/delete/'.$value['TYPE'].'/?database='.$value['RESULT'].'&user='.$value['USER'];
159-
$cnfrm = 'DELETE_DATABASE_CONFIRMATION';
160-
}
161-
if (($value['KEY'] != 'RECORD') && ($value['KEY'] != 'ACCOUNT') && ($value['KEY'] != 'JOB') && ($value['KEY'] != 'DATABASE') ) {
162-
$delete_lnk = '/delete/'.$value['TYPE'].'/?'.strtolower($value['KEY']).'='.$value['RESULT'].'&user='.$value['USER'];
163-
$cnfrm = 'DELETE_DOMAIN_CONFIRMATION';
164-
}
165-
?>
166-
<a id="delete_link_<?=$i?>" class="data-controls do_delete">
167-
<i class="fas fa-trash status-icon red status-icon dim do_delete"></i>
168-
<input type="hidden" name="delete_url" value="<?=$delete_lnk?>&token=<?=$_SESSION['token']?>" />
169-
<div id="delete_dialog_<?=$i?>" class="confirmation-text-delete hidden" title="<?=_('Confirmation')?>">
170-
<p class="confirmation"><?=_($cnfrm, $value['RESULT'])?></p>
171-
</div>
172-
</a>
173-
</div>
174-
130+
&nbsp;
175131
</div>
176132
</div>
177-
END QUICK ACTION TOOLBAR AREA -->
133+
<!-- END QUICK ACTION TOOLBAR AREA -->
178134
</div>
179-
180-
<div class="clearfix l-unit__stat-col--left text-center"><b><?=translate_date($value['DATE'])?></b></div>
181-
<div class="clearfix l-unit__stat-col--left text-center"><b><?=_($object)?></b></div>
182-
<div class="clearfix l-unit__stat-col--left text-center"><b><?=$value['USER']?></b></div>
183-
<div class="clearfix l-unit__stat-col--left text-center"><b><?=_($status)?></b></div>
135+
<div class="clearfix l-unit__stat-col--left text-center"><?=translate_date($value['DATE'])?></div>
136+
<div class="clearfix l-unit__stat-col--left text-center"><b>
137+
<a href="/search/?q=<?php echo $_GET['q'] ?>&u=<?php echo $value['USER']; ?>"><?php echo $value['USER']; ?></a></b></div>
138+
<div class="clearfix l-unit__stat-col--left text-center"><?=_($object)?></b></div>
184139
</div>
185140
</div>
186141

0 commit comments

Comments
 (0)