mirror of
https://github.com/itflow-org/itflow
synced 2026-07-26 10:17:15 +00:00
Replaces the duplicated primary/billing/technical checks across portal pages, post.php handlers, nav, and dashboard with contactCan()/enforceContactCan(). Same behavior, but the rules now live in one place instead of being copy-pasted, which is what let them drift before. file.php keeps its 404 response; ticket-visibility and approval-routing checks are intentionally left as-is.
53 lines
1.3 KiB
PHP
53 lines
1.3 KiB
PHP
<?php
|
|
/*
|
|
* Client Portal
|
|
* Domain listing for PTC / technical contacts
|
|
*/
|
|
|
|
header("Content-Security-Policy: default-src 'self'");
|
|
|
|
require_once "includes/inc_all.php";
|
|
|
|
enforceContactCan('itdoc');
|
|
|
|
$domains_sql = mysqli_query($mysqli, "SELECT domain_id, domain_name, domain_expire FROM domains WHERE domain_client_id = $session_client_id AND domain_archived_at IS NULL ORDER BY domain_expire ASC");
|
|
?>
|
|
|
|
<h3>Domains</h3>
|
|
<div class="row">
|
|
|
|
<div class="col-md-10">
|
|
|
|
<table class="table tabled-bordered border border-dark">
|
|
<thead class="thead-dark">
|
|
<tr>
|
|
<th>Domain Name</th>
|
|
<th>Expiry</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
<?php
|
|
while ($row = mysqli_fetch_assoc($domains_sql)) {
|
|
$domain_name = escapeHtml($row['domain_name']);
|
|
$domain_expire = escapeHtml($row['domain_expire']);
|
|
|
|
?>
|
|
|
|
<tr>
|
|
<td><?php echo $domain_name; ?></td>
|
|
<td><?php echo $domain_expire; ?></td>
|
|
</tr>
|
|
|
|
<?php } ?>
|
|
|
|
</tbody>
|
|
</table>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<?php
|
|
require_once "includes/footer.php";
|