Validates visitor link

This commit is contained in:
Andreas Kristiansen
2024-03-18 20:45:34 +01:00
parent 3b2883f106
commit 6e8674c053
4 changed files with 46 additions and 23 deletions

View File

@@ -192,8 +192,21 @@ class Stationsetup extends CI_Controller {
}
public function saveVisitorLink() {
$name = xss_clean($this->input->post('name', true));
$id = xss_clean($this->input->post('id', true));
$this->load->model('stationsetup_model');
$this->stationsetup_model->saveVisitorLink();
$result = $this->stationsetup_model->is_public_slug_available($name);
if($result == true) {
$this->stationsetup_model->saveVisitorLink($id, $name);
$data['success'] = 1;
} else {
$data['success'] = 0;
$data['flashdata'] = 'Error. Link is already in use!';
}
echo json_encode($data);
}
public function newLocation() {
@@ -408,5 +421,4 @@ class Stationsetup extends CI_Controller {
}
echo json_encode($data);
}
}

View File

@@ -28,10 +28,10 @@ class Stationsetup_model extends CI_Model {
$this->db->update('station_logbooks');
}
function saveVisitorLink() {
$this->db->set('public_slug', xss_clean($this->input->post('name', true)));
function saveVisitorLink($id, $name) {
$this->db->set('public_slug', $name);
$this->db->where('user_id', $this->session->userdata('user_id'));
$this->db->where('logbook_id', xss_clean($this->input->post('id', true)));
$this->db->where('logbook_id', $id);
$this->db->update('station_logbooks');
}

View File

@@ -2,8 +2,8 @@
<p><?php echo lang('station_logbooks_public_slug_hint'); ?></p>
<p><?php echo lang('station_logbooks_public_slug_format1')?><br>
<?php echo site_url('visitor'); ?>/<?php echo lang('station_logbooks_public_slug_format2'); ?></p>
<form hx-post="<?php echo site_url('logbooks/save_publicslug/'); ?>" hx-target="#publicSlugForm" style="display: inline;">
<div id="publicSlugForm">
<form style="display: inline;">
<div id="visitorLinkInfo">
</div>
<div class="mb-3">
<input type="hidden" name="logbook_id" id="logbook_id" value="<?php echo $station_logbook_details->logbook_id; ?>">

View File

@@ -246,8 +246,7 @@ $(document).ready(function () {
label: 'Save',
cssClass: 'btn-primary btn-sm',
action: function (dialogItself) {
saveVisitorLink();
dialogItself.close();
saveVisitorLink(dialogItself);
}
},
{
@@ -267,21 +266,33 @@ $(document).ready(function () {
return false;
}
function saveVisitorLink() {
$.ajax({
url: base_url + 'index.php/stationsetup/saveVisitorLink',
type: 'post',
data: {
id: $('#logbook_id').val(),
name: $('#publicSlugInput').val()
},
success: function (data) {
reloadLogbooks();
},
error: function (data) {
function saveVisitorLink(dialogItself) {
$('.alert').remove();
if (/^([a-zA-Z0-9-]+)$/.test($('#publicSlugInput').val())) {
$.ajax({
url: base_url + 'index.php/stationsetup/saveVisitorLink',
type: 'post',
data: {
id: $('#logbook_id').val(),
name: $('#publicSlugInput').val()
},
success: function (data) {
jdata=JSON.parse(data);
if (jdata.success == 1) {
dialogItself.close();
reloadLogbooks();
} else {
$('#visitorLinkInfo').append('<div class="alert alert-danger" role="alert">'+jdata.flashdata+'</div>');
}
},
});
},
error: function (data) {
},
});
} else {
$('#visitorLinkInfo').append('<div class="alert alert-danger" role="alert">Invalid characters entered in link!</div>');
}
return false;
}