mirror of https://github.com/itflow-org/itflow
261 lines
15 KiB
PHP
261 lines
15 KiB
PHP
<div class="modal" id="addCredentialModal" tabindex="-1">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content bg-dark">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title"><i class="fa fa-fw fa-key mr-2"></i>New Credential</h5>
|
|
<button type="button" class="close text-white" data-dismiss="modal">
|
|
<span>×</span>
|
|
</button>
|
|
</div>
|
|
<form action="post.php" method="post" autocomplete="off">
|
|
|
|
<div class="modal-body bg-white">
|
|
|
|
<ul class="nav nav-pills nav-justified mb-3">
|
|
<li class="nav-item">
|
|
<a class="nav-link active" data-toggle="pill" href="#pills-credential-details">Details</a>
|
|
</li>
|
|
<?php if ($client_url) { ?>
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-toggle="pill" href="#pills-credential-relation">Relation</a>
|
|
</li>
|
|
<?php } ?>
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-toggle="pill" href="#pills-credential-notes">Notes</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<div class="tab-content">
|
|
|
|
<div class="tab-pane fade show active" id="pills-credential-details">
|
|
|
|
<?php if ($client_url) { ?>
|
|
<input type="hidden" name="client_id" value="<?php echo $client_id; ?>">
|
|
<?php } else { ?>
|
|
|
|
<div class="form-group">
|
|
<label>Client <strong class="text-danger">*</strong></label>
|
|
<div class="input-group">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text"><i class="fa fa-fw fa-user"></i></span>
|
|
</div>
|
|
<select class="form-control select2" name="client_id" required>
|
|
<option value="">- Select Client -</option>
|
|
<?php
|
|
|
|
$sql = mysqli_query($mysqli, "SELECT client_id, client_name FROM clients WHERE client_archived_at IS NULL $access_permission_query ORDER BY client_name ASC");
|
|
while ($row = mysqli_fetch_array($sql)) {
|
|
$client_id = intval($row['client_id']);
|
|
$client_name = nullable_htmlentities($row['client_name']); ?>
|
|
<option <?php if ($client_id == isset($_GET['client'])) { echo "selected"; } ?> value="<?php echo $client_id; ?>"><?php echo $client_name; ?></option>
|
|
|
|
<?php } ?>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<?php } ?>
|
|
|
|
<div class="form-group">
|
|
<label>Name <strong class="text-danger">*</strong> / <span class="text-secondary">Important?</span></label>
|
|
<div class="input-group">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text"><i class="fa fa-fw fa-key"></i></span>
|
|
</div>
|
|
<input type="text" class="form-control" name="name" placeholder="Name of Login" maxlength="200" required autofocus>
|
|
<div class="input-group-append">
|
|
<div class="input-group-text">
|
|
<input type="checkbox" name="important" value="1">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label>Description</label>
|
|
<div class="input-group">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text"><i class="fa fa-fw fa-angle-right"></i></span>
|
|
</div>
|
|
<input type="text" class="form-control" name="description" placeholder="Description" maxlength="500">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label>Username / ID</label>
|
|
<div class="input-group">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text"><i class="fa fa-fw fa-user"></i></span>
|
|
</div>
|
|
<input type="text" class="form-control" name="username" placeholder="Username or ID" maxlength="350"> <!-- DB field is 500, 350 un-encrypted chars -->
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label>Password / Key <strong class="text-danger">*</strong></label>
|
|
<div class="input-group">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text"><i class="fa fa-fw fa-lock"></i></span>
|
|
</div>
|
|
<input type="password" class="form-control" data-toggle="password" id="password" name="password" placeholder="Password or Key" required maxlength="350" autocomplete="new-password">
|
|
<div class="input-group-append">
|
|
<span class="input-group-text"><i class="fa fa-fw fa-eye"></i></span>
|
|
</div>
|
|
<div class="input-group-append">
|
|
<span class="btn btn-default"><i class="fa fa-fw fa-question" onclick="generatePassword()"></i></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label>TOTP Seed</label>
|
|
<div class="input-group">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text"><i class="fa fa-fw fa-key"></i></span>
|
|
</div>
|
|
<input type="password" class="form-control" data-toggle="password" name="otp_secret" placeholder="Insert secret key" maxlength="200">
|
|
<div class="input-group-append">
|
|
<span class="input-group-text"><i class="fa fa-fw fa-eye"></i></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label>URI</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="uri" placeholder="http://192.168.1.1" maxlength="500">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label>URI 2</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="uri_2" placeholder="https://server.company.com:5001" maxlength="500">
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<?php if ($client_url) { ?>
|
|
<div class="tab-pane fade" id="pills-credential-relation">
|
|
<div class="form-group">
|
|
<label>Contact</label>
|
|
<div class="input-group">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text"><i class="fa fa-fw fa-user"></i></span>
|
|
</div>
|
|
<select class="form-control select2" name="contact">
|
|
<option value="">- Select Contact -</option>
|
|
<?php
|
|
|
|
$sql = mysqli_query($mysqli, "SELECT * FROM contacts WHERE contact_client_id = $client_id ORDER BY contact_name ASC");
|
|
while ($row = mysqli_fetch_array($sql)) {
|
|
$contact_id = intval($row['contact_id']);
|
|
$contact_name = nullable_htmlentities($row['contact_name']);
|
|
?>
|
|
<option
|
|
<?php if (isset($_GET['contact_id']) && $contact_id == $_GET['contact_id']) {
|
|
echo "selected"; }
|
|
?>
|
|
value="<?php echo $contact_id; ?>"><?php echo $contact_name; ?>
|
|
</option>
|
|
|
|
<?php
|
|
}
|
|
?>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label>Asset</label>
|
|
<div class="input-group">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text"><i class="fa fa-fw fa-tag"></i></span>
|
|
</div>
|
|
<select class="form-control select2" name="asset">
|
|
<option value="">- Select Asset -</option>
|
|
<?php
|
|
|
|
$sql = mysqli_query($mysqli, "SELECT * FROM assets LEFT JOIN locations on asset_location_id = location_id WHERE asset_client_id = $client_id AND asset_archived_at IS NULL ORDER BY asset_name ASC");
|
|
while ($row = mysqli_fetch_array($sql)) {
|
|
$asset_id = intval($row['asset_id']);
|
|
$asset_name = nullable_htmlentities($row['asset_name']);
|
|
$asset_location = nullable_htmlentities($row['location_name']);
|
|
|
|
$asset_display_string = $asset_name;
|
|
if (!empty($asset_location)) {
|
|
$asset_display_string = "$asset_name ($asset_location)";
|
|
}
|
|
|
|
?>
|
|
<option <?php if (isset($_GET['asset_id']) && $asset_id == $_GET['asset_id']) {
|
|
echo "selected"; } ?>
|
|
value="<?php echo $asset_id; ?>"><?php echo $asset_display_string; ?></option>
|
|
|
|
<?php
|
|
}
|
|
?>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php } ?>
|
|
|
|
<div class="tab-pane fade" id="pills-credential-notes">
|
|
|
|
<div class="form-group">
|
|
<textarea class="form-control" rows="12" placeholder="Enter some notes" name="note"></textarea>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label>Tags</label>
|
|
<div class="input-group">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text"><i class="fa fa-fw fa-tags"></i></span>
|
|
</div>
|
|
<select class="form-control select2" name="tags[]" data-placeholder="Add some tags" multiple>
|
|
<?php
|
|
|
|
$sql_tags_select = mysqli_query($mysqli, "SELECT * FROM tags WHERE tag_type = 4 ORDER BY tag_name ASC");
|
|
while ($row = mysqli_fetch_array($sql_tags_select)) {
|
|
$tag_id_select = intval($row['tag_id']);
|
|
$tag_name_select = nullable_htmlentities($row['tag_name']);
|
|
?>
|
|
<option value="<?php echo $tag_id_select; ?>"><?php echo $tag_name_select; ?></option>
|
|
<?php } ?>
|
|
|
|
</select>
|
|
<div class="input-group-append">
|
|
<button class="btn btn-secondary" type="button"
|
|
data-toggle="ajax-modal"
|
|
data-modal-size="sm"
|
|
data-ajax-url="ajax/ajax_tag_add.php"
|
|
data-ajax-id="4">
|
|
<i class="fas fa-plus"></i>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer bg-white">
|
|
<button type="submit" name="add_credential" class="btn btn-primary text-bold"><i class="fa fa-check mr-2"></i>Create</button>
|
|
<button type="button" class="btn btn-light" data-dismiss="modal"><i class="fa fa-times mr-2"></i>Cancel</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|