mirror of https://github.com/itflow-org/itflow
Merge pull request #363 from wrongecho/services-certs
Add functionality to link certificates to services
This commit is contained in:
commit
af4e09f534
|
|
@ -154,7 +154,7 @@
|
|||
</select>
|
||||
</div>
|
||||
|
||||
<!-- TODO: Services related to other services & certificates -->
|
||||
<!-- TODO: Services related to other services -->
|
||||
|
||||
</div>
|
||||
|
||||
|
|
@ -207,6 +207,23 @@
|
|||
?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="certificates">Certificates</label>
|
||||
<p></p>
|
||||
<select class="form-select" id="certificates" name="certificates[]" multiple="multiple">
|
||||
<option value="">- Certificates -</option>
|
||||
<?php
|
||||
$sql = mysqli_query($mysqli, "SELECT * FROM certificates WHERE certificate_client_id = '$client_id'");
|
||||
while($row = mysqli_fetch_array($sql)){
|
||||
$cert_id = $row['certificate_id'];
|
||||
$cert_name = $row['certificate_name'];
|
||||
$cert_domain = $row['certificate_domain'];
|
||||
echo "<option value=\"$cert_id\">$cert_name ($cert_domain)</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -89,17 +89,6 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<!-- TODO: We need a way of adding multiple (optional) URLs? Ideas? -->
|
||||
<!-- <div class="form-group">
|
||||
<label>URL</label>
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-link"></i></span>
|
||||
</div>
|
||||
<input type="text" class="form-control" name="url" placeholder="URL" autofocus>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="form-group">
|
||||
<label>Notes</label>
|
||||
<textarea class="form-control" rows="3" placeholder="Enter some notes" name="note"><?php echo $service_notes ?></textarea>
|
||||
|
|
@ -184,7 +173,7 @@
|
|||
</select>
|
||||
</div>
|
||||
|
||||
<!-- TODO: Services related to other services & certificates -->
|
||||
<!-- TODO: Services related to other services -->
|
||||
|
||||
</div>
|
||||
|
||||
|
|
@ -262,6 +251,31 @@
|
|||
?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="certificates">Certificates</label>
|
||||
<p></p>
|
||||
<select class="form-select" id="certificates" name="certificates[]" multiple="multiple">
|
||||
<option value="">- Certificates -</option>
|
||||
<?php
|
||||
$selected_ids = array_column(mysqli_fetch_all($sql_certificates,MYSQLI_ASSOC), "certificate_id");
|
||||
|
||||
$sql_all = mysqli_query($mysqli, "SELECT * FROM certificates WHERE certificate_client_id = '$client_id'");
|
||||
while($row_all = mysqli_fetch_array($sql_all)){
|
||||
$cert_id = $row_all['certificate_id'];
|
||||
$cert_name = $row_all['certificate_name'];
|
||||
|
||||
if(in_array($cert_id, $selected_ids)){
|
||||
echo "<option value=\"$cert_id\" selected>$cert_name</option>";
|
||||
}
|
||||
else{
|
||||
echo "<option value=\"$cert_id\">$cert_name</option>";
|
||||
}
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -139,6 +139,27 @@
|
|||
}
|
||||
?>
|
||||
|
||||
<!-- Certificates -->
|
||||
<?php
|
||||
if(mysqli_num_rows($sql_certificates) > 0){ ?>
|
||||
<h5><i class="nav-icon fas fa-lock"></i> Certificates</h5>
|
||||
<ul>
|
||||
<?php
|
||||
// Reset the $sql_certificates pointer to the start
|
||||
mysqli_data_seek($sql_certificates, 0);
|
||||
|
||||
// Showing linked certs
|
||||
while($row = mysqli_fetch_array($sql_certificates)){
|
||||
if(!empty($row['certificate_name'])){
|
||||
echo "<li><a href=\"client.php?client_id=$client_id&tab=certificates&q=$row[certificate_name]\">$row[certificate_name] ($row[certificate_domain])</a></li>";
|
||||
}
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -245,17 +266,6 @@
|
|||
}
|
||||
?>
|
||||
|
||||
<!-- <h5><i class="nav-icon fas fa-lock"></i> Certificates</h5>-->
|
||||
<!-- <ul>-->
|
||||
<!-- <li>SSLs related to a domain - Coming soon!</li>-->
|
||||
<!-- </ul>-->
|
||||
<!---->
|
||||
<!-- <h5><i class="nav-icon fas fa-hdd"></i> Backed up by</h5>-->
|
||||
<!-- <ul>-->
|
||||
<!-- <li>Asset - Coming soon!</li>-->
|
||||
<!-- </ul>-->
|
||||
|
||||
|
||||
<!-- Documents -->
|
||||
<?php
|
||||
if(mysqli_num_rows($sql_docs) > 0){ ?>
|
||||
|
|
|
|||
|
|
@ -123,6 +123,11 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()"));
|
|||
LEFT JOIN domains
|
||||
ON service_domains.domain_id = domains.domain_id
|
||||
WHERE service_id = '$service_id'");
|
||||
// Associated Certificates
|
||||
$sql_certificates = mysqli_query($mysqli, "SELECT * FROM service_certificates
|
||||
LEFT JOIN certificates
|
||||
ON service_certificates.certificate_id = certificates.certificate_id
|
||||
WHERE service_id = '$service_id'");
|
||||
|
||||
// Associated URLs ---- REMOVED for now
|
||||
//$sql_urls = mysqli_query($mysqli, "SELECT * FROM service_urls
|
||||
|
|
|
|||
13
db.sql
13
db.sql
|
|
@ -978,6 +978,19 @@ CREATE TABLE `service_assets` (
|
|||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `service_certificates`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `service_certificates`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `service_certificates` (
|
||||
`service_id` int(11) NOT NULL,
|
||||
`certificate_id` int(11) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `service_contacts`
|
||||
--
|
||||
|
|
|
|||
26
post.php
26
post.php
|
|
@ -5731,8 +5731,6 @@ if(isset($_POST['add_service'])){
|
|||
// Create Service
|
||||
$service_sql = mysqli_query($mysqli, "INSERT INTO services SET service_name = '$service_name', service_description = '$service_description', service_category = '$service_category', service_importance = '$service_importance', service_backup = '$service_backup', service_notes = '$service_notes', service_created_at = NOW(), service_client_id = '$client_id', company_id = '$session_company_id'");
|
||||
|
||||
// TODO: Support for URLs
|
||||
|
||||
// Create links to assets
|
||||
if($service_sql){
|
||||
$service_id = $mysqli->insert_id;
|
||||
|
|
@ -5782,7 +5780,7 @@ if(isset($_POST['add_service'])){
|
|||
}
|
||||
}
|
||||
|
||||
if(!empty($_POST['logins'])){
|
||||
if(!empty($_POST['domains'])){
|
||||
$service_domain_ids = $_POST['domains'];
|
||||
foreach($service_domain_ids as $domain_id){
|
||||
if(intval($domain_id)){
|
||||
|
|
@ -5791,6 +5789,15 @@ if(isset($_POST['add_service'])){
|
|||
}
|
||||
}
|
||||
|
||||
if(!empty($_POST['certificates'])){
|
||||
$service_cert_ids = $_POST['certificates'];
|
||||
foreach($service_cert_ids as $cert_id){
|
||||
if(intval($cert_id)){
|
||||
mysqli_query($mysqli, "INSERT INTO service_certificates SET service_id = '$service_id', certificate_id = '$cert_id'");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Logging
|
||||
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Service', log_action = 'Create', log_description = '$session_name created service $service_name', log_created_at = NOW(), log_client_id = $client_id, company_id = $session_company_id, log_user_id = $session_user_id");
|
||||
|
||||
|
|
@ -5824,6 +5831,7 @@ if(isset($_POST['edit_service'])){
|
|||
mysqli_query($mysqli, "DELETE FROM service_assets WHERE service_id = '$service_id'");
|
||||
mysqli_query($mysqli, "DELETE FROM service_logins WHERE service_id = '$service_id'");
|
||||
mysqli_query($mysqli, "DELETE FROM service_domains WHERE service_id = '$service_id'");
|
||||
mysqli_query($mysqli, "DELETE FROM service_certificates WHERE service_id = '$service_id'");
|
||||
|
||||
// Relink
|
||||
if(!empty($_POST['contacts'])){
|
||||
|
|
@ -5871,7 +5879,7 @@ if(isset($_POST['edit_service'])){
|
|||
}
|
||||
}
|
||||
|
||||
if(!empty($_POST['logins'])){
|
||||
if(!empty($_POST['domains'])){
|
||||
$service_domain_ids = $_POST['domains'];
|
||||
foreach($service_domain_ids as $domain_id){
|
||||
if(intval($domain_id)){
|
||||
|
|
@ -5880,6 +5888,15 @@ if(isset($_POST['edit_service'])){
|
|||
}
|
||||
}
|
||||
|
||||
if(!empty($_POST['certificates'])){
|
||||
$service_cert_ids = $_POST['certificates'];
|
||||
foreach($service_cert_ids as $cert_id){
|
||||
if(intval($cert_id)){
|
||||
mysqli_query($mysqli, "INSERT INTO service_certificates SET service_id = '$service_id', certificate_id = '$cert_id'");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Logging
|
||||
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Service', log_action = 'Modified', log_description = '$session_name modified service $service_name', log_created_at = NOW(), company_id = $session_company_id, log_user_id = $session_user_id");
|
||||
|
||||
|
|
@ -5903,6 +5920,7 @@ if(isset($_GET['delete_service'])){
|
|||
mysqli_query($mysqli, "DELETE FROM service_assets WHERE service_id = '$service_id'");
|
||||
mysqli_query($mysqli, "DELETE FROM service_logins WHERE service_id = '$service_id'");
|
||||
mysqli_query($mysqli, "DELETE FROM service_domains WHERE service_id = '$service_id'");
|
||||
mysqli_query($mysqli, "DELETE FROM service_certificates WHERE service_id = '$service_id'");
|
||||
|
||||
//Logging
|
||||
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Service', log_action = 'Deleted', log_description = '$session_name deleted service $service_id', log_created_at = NOW(), company_id = $session_company_id, log_user_id = $session_user_id");
|
||||
|
|
|
|||
Loading…
Reference in New Issue