mirror of
https://github.com/itflow-org/itflow
synced 2026-07-26 18:27:14 +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.
78 lines
2.6 KiB
PHP
78 lines
2.6 KiB
PHP
<?php
|
|
/*
|
|
* Client Portal
|
|
* Contact management for PTC / technical contacts
|
|
*/
|
|
|
|
header("Content-Security-Policy: default-src 'self'");
|
|
|
|
require_once "includes/inc_all.php";
|
|
|
|
enforceContactCan('contacts');
|
|
|
|
$contacts_sql = mysqli_query($mysqli, "SELECT contact_id, contact_name, contact_email, contact_primary, contact_technical, contact_billing FROM contacts WHERE contact_client_id = $session_client_id AND contacts.contact_archived_at IS NULL ORDER BY contact_created_at");
|
|
?>
|
|
|
|
<div class="row">
|
|
<div class="col">
|
|
<h3>Contacts</h3>
|
|
</div>
|
|
<div class="col offset-6">
|
|
<a href="contact_add.php" class="btn btn-primary" role="button"><i class="fas fa-plus mr-2"></i>New Contact</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-md-10">
|
|
|
|
<table class="table tabled-bordered border border-dark">
|
|
<thead class="thead-dark">
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Email</th>
|
|
<th>Roles</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
<?php
|
|
while ($row = mysqli_fetch_assoc($contacts_sql)) {
|
|
$contact_id = intval($row['contact_id']);
|
|
$contact_name = escapeHtml($row['contact_name']);
|
|
$contact_email = escapeHtml($row['contact_email']);
|
|
$contact_primary = intval($row['contact_primary']);
|
|
$contact_technical = intval($row['contact_technical']);
|
|
$contact_billing = intval($row['contact_billing']);
|
|
|
|
$contact_roles_display = '-';
|
|
if ($contact_primary) {
|
|
$contact_roles_display = 'Primary contact';
|
|
} else if ($contact_technical && $contact_billing) {
|
|
$contact_roles_display = 'Technical & Billing';
|
|
} else if ($contact_technical) {
|
|
$contact_roles_display = 'Technical';
|
|
} else if ($contact_billing) {
|
|
$contact_roles_display = 'Billing';
|
|
}
|
|
|
|
?>
|
|
|
|
<tr>
|
|
<td><a href="contact_edit.php?id=<?php echo $contact_id?>"><?php echo $contact_name ?></a></td>
|
|
<td><?php echo $contact_email; ?></td>
|
|
<td><?php echo $contact_roles_display ?></td>
|
|
</tr>
|
|
|
|
<?php } ?>
|
|
|
|
</tbody>
|
|
</table>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<?php
|
|
require_once "includes/footer.php";
|