mirror of
https://github.com/magicbug/Cloudlog
synced 2026-08-13 17:49:35 -04:00
Inserted calls to user_model->validate_session() in all controller constructors to ensure user sessions are validated before authorization checks. This improves session handling and security across the application.
187 lines
6.2 KiB
PHP
187 lines
6.2 KiB
PHP
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
|
|
|
/*
|
|
Handles Displaying of information for Station Logbooks
|
|
*/
|
|
|
|
class Logbooks extends CI_Controller {
|
|
|
|
function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->load->helper(array('form', 'url'));
|
|
|
|
$this->load->model('user_model');
|
|
$this->user_model->validate_session();
|
|
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
|
|
}
|
|
|
|
function index() {
|
|
$this->load->model('logbooks_model');
|
|
|
|
$data['my_logbooks'] = $this->logbooks_model->show_all();
|
|
|
|
// Render Page
|
|
$data['page_title'] = "Station Logbooks";
|
|
$this->load->view('interface_assets/header', $data);
|
|
$this->load->view('logbooks/index');
|
|
$this->load->view('interface_assets/footer');
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
$this->load->library('form_validation');
|
|
|
|
$this->form_validation->set_rules('stationLogbook_Name', 'Station Logbook Name', 'required');
|
|
|
|
if ($this->form_validation->run() == FALSE)
|
|
{
|
|
$data['page_title'] = "Create Station Logbook";
|
|
$this->load->view('interface_assets/header', $data);
|
|
$this->load->view('logbooks/create');
|
|
$this->load->view('interface_assets/footer');
|
|
}
|
|
else
|
|
{
|
|
$this->load->model('logbooks_model');
|
|
$this->logbooks_model->add();
|
|
|
|
redirect('logbooks');
|
|
}
|
|
}
|
|
|
|
public function edit($id)
|
|
{
|
|
$this->load->library('form_validation');
|
|
|
|
$this->load->model('logbooks_model');
|
|
$this->load->model('stations');
|
|
|
|
$station_logbook_id = $this->security->xss_clean($id);
|
|
|
|
$station_logbook_details_query = $this->logbooks_model->logbook($station_logbook_id);
|
|
$data['station_locations_array'] = $this->logbooks_model->list_logbook_relationships($station_logbook_id);
|
|
|
|
$data['station_logbook_details'] = $station_logbook_details_query->row();
|
|
$data['station_locations_list'] = $this->stations->all_of_user();
|
|
|
|
$data['station_locations_linked'] = $this->logbooks_model->list_logbooks_linked($station_logbook_id);
|
|
|
|
$data['page_title'] = "Edit Station Logbook";
|
|
|
|
$this->form_validation->set_rules('station_logbook_id', 'Station Logbook Name', 'required');
|
|
|
|
if ($this->form_validation->run() == FALSE)
|
|
{
|
|
$this->load->view('interface_assets/header', $data);
|
|
$this->load->view('logbooks/edit');
|
|
$this->load->view('interface_assets/footer');
|
|
}
|
|
else
|
|
{
|
|
|
|
$data['notice'] = "Station Logbooks ".$this->security->xss_clean($this->input->post('station_logbook_name', true))." Updated";
|
|
|
|
if($this->input->post('SelectedStationLocation') != "") {
|
|
if($this->logbooks_model->relationship_exists($this->input->post('station_logbook_id'), $this->input->post('SelectedStationLocation')) != TRUE) {
|
|
// If no link exisits create
|
|
$this->logbooks_model->create_logbook_location_link($this->input->post('station_logbook_id'), $this->input->post('SelectedStationLocation'));
|
|
}
|
|
} else {
|
|
$this->logbooks_model->edit();
|
|
}
|
|
|
|
redirect('logbooks/edit/'.$this->input->post('station_logbook_id'));
|
|
}
|
|
}
|
|
|
|
public function set_active($id) {
|
|
$this->load->model('logbooks_model');
|
|
$this->logbooks_model->set_logbook_active($id);
|
|
$this->user_model->update_session($this->session->userdata('user_id'));
|
|
|
|
redirect('logbooks');
|
|
}
|
|
|
|
public function delete($id) {
|
|
$this->load->model('logbooks_model');
|
|
$this->logbooks_model->delete($id);
|
|
|
|
redirect('logbooks');
|
|
}
|
|
|
|
public function delete_relationship($logbook_id, $station_id) {
|
|
$this->load->model('logbooks_model');
|
|
$this->logbooks_model->delete_relationship($logbook_id, $station_id);
|
|
|
|
redirect('logbooks/edit/'.$logbook_id);
|
|
}
|
|
|
|
public function publicslug_validate() {
|
|
$this->load->model('logbooks_model');
|
|
$result = $this->logbooks_model->is_public_slug_available($this->input->post('public_slug'));
|
|
|
|
if($result == true) {
|
|
$data['slugAvailable'] = true;
|
|
} else {
|
|
$data['slugAvailable'] = false;
|
|
}
|
|
|
|
$this->load->view('logbooks/components/publicSlugInputValidation', $data);
|
|
}
|
|
|
|
public function save_publicsearch() {
|
|
$this->load->model('logbooks_model');
|
|
// Handle checkbox - if not checked, it won't be sent, so default to 0
|
|
$public_search = $this->input->post('public_search') ? 1 : 0;
|
|
$returndata = $this->logbooks_model->save_public_search($public_search, $this->input->post('logbook_id'));
|
|
echo "<div class=\"alert alert-success\" role=\"alert\">Public Search Settings Saved</div>";
|
|
}
|
|
|
|
public function save_publicradiostatus() {
|
|
$this->load->model('logbooks_model');
|
|
// Handle checkbox - if not checked, it won't be sent, so default to 0
|
|
$public_radio_status = $this->input->post('public_radio_status') ? 1 : 0;
|
|
$returndata = $this->logbooks_model->save_public_radio_status($public_radio_status, $this->input->post('logbook_id'));
|
|
echo "<div class=\"alert alert-success\" role=\"alert\">Public Radio Status Settings Saved</div>";
|
|
}
|
|
|
|
public function save_publicslug() {
|
|
$this->load->model('logbooks_model');
|
|
|
|
$this->load->library('form_validation');
|
|
|
|
$this->form_validation->set_rules('public_slug', 'Public Slug', 'required|alpha_numeric');
|
|
|
|
if ($this->form_validation->run() == FALSE)
|
|
{
|
|
echo "<div class=\"alert alert-danger\" role=\"alert\">Oops! This Public Slug is unavailable</div>";
|
|
echo validation_errors();
|
|
}
|
|
else
|
|
{
|
|
$this->load->model('logbooks_model');
|
|
$result = $this->logbooks_model->is_public_slug_available($this->input->post('public_slug'));
|
|
|
|
|
|
if($result == true) {
|
|
$returndata = $this->logbooks_model->save_public_slug($this->input->post('public_slug'), $this->input->post('logbook_id'));
|
|
echo "<div class=\"alert alert-success\" role=\"alert\">Public Slug Saved</div>";
|
|
} else {
|
|
echo "<div class=\"alert alert-danger\" role=\"alert\">Oops! This Public Slug is unavailable</div>";
|
|
}
|
|
}
|
|
}
|
|
|
|
public function remove_publicslug() {
|
|
$this->load->model('logbooks_model');
|
|
|
|
$this->logbooks_model->remove_public_slug($this->input->post('logbook_id'));
|
|
if ($this->db->affected_rows() > 0) {
|
|
echo "<div class=\"alert alert-success\" role=\"alert\">Public Slug Removed</div>";
|
|
} else {
|
|
echo "<div class=\"alert alert-danger\" role=\"alert\">Oops! This Public Slug could not be removed</div>";
|
|
}
|
|
}
|
|
|
|
}
|