From 804942cff553d11a4c9ac11495fb6698aecf7752 Mon Sep 17 00:00:00 2001 From: jekkos Date: Mon, 24 Dec 2018 20:18:13 +0100 Subject: [PATCH] Add warning if migration is needed (#2247) --- application/controllers/Login.php | 3 ++- application/hooks/load_config.php | 6 ++++++ application/language/en-US/common_lang.php | 1 + application/libraries/MY_Migration.php | 8 ++++++-- application/models/Employee.php | 2 +- application/views/login.php | 4 ++++ 6 files changed, 20 insertions(+), 4 deletions(-) diff --git a/application/controllers/Login.php b/application/controllers/Login.php index 44c4debdf..2c8fb8dd4 100644 --- a/application/controllers/Login.php +++ b/application/controllers/Login.php @@ -4,6 +4,7 @@ class Login extends CI_Controller { public function index() { + $this->load->library('migration'); if($this->Employee->is_logged_in()) { redirect('home'); @@ -14,6 +15,7 @@ class Login extends CI_Controller $this->form_validation->set_rules('username', 'lang:login_username', 'required|callback_login_check'); + if($this->config->item('gcaptcha_enable')) { $this->form_validation->set_rules('g-recaptcha-response', 'lang:login_gcaptcha', 'required|callback_gcaptcha_check'); @@ -41,7 +43,6 @@ class Login extends CI_Controller return FALSE; } - $this->load->library('migration'); if (!$this->migration->is_latest()) { set_time_limit(1200); diff --git a/application/hooks/load_config.php b/application/hooks/load_config.php index 15b79fce0..1cb4b0ec5 100644 --- a/application/hooks/load_config.php +++ b/application/hooks/load_config.php @@ -7,6 +7,12 @@ function load_config() { $CI =& get_instance(); + $migration = $CI->load->library('migration'); + if (!$CI->migration->is_latest()) + { + $CI->session->sess_destroy(); + } + foreach($CI->Appconfig->get_all()->result() as $app_config) { $CI->config->set_item($CI->security->xss_clean($app_config->key), $CI->security->xss_clean($app_config->value)); diff --git a/application/language/en-US/common_lang.php b/application/language/en-US/common_lang.php index fbee47eb4..d87433794 100644 --- a/application/language/en-US/common_lang.php +++ b/application/language/en-US/common_lang.php @@ -38,6 +38,7 @@ $lang["common_last_page"] = "Last"; $lang["common_learn_about_project"] = "to learn the latest information about the project."; $lang["common_list_of"] = "List of"; $lang["common_logout"] = "Logout"; +$lang["common_migration_needed"] = "A database migration to %1 will start after login."; $lang["common_new"] = "New"; $lang["common_no_persons_to_display"] = "There are no people to display."; $lang["common_none_selected_text"] = "[Select]"; diff --git a/application/libraries/MY_Migration.php b/application/libraries/MY_Migration.php index 175fe4c4a..b2f7a9969 100644 --- a/application/libraries/MY_Migration.php +++ b/application/libraries/MY_Migration.php @@ -4,11 +4,15 @@ defined('BASEPATH') OR exit('No direct script access allowed'); class MY_Migration extends CI_Migration { - public function is_latest() + public function get_last_migration() { $migrations = $this->find_migrations(); - $last_migration = basename(end($migrations)); + return basename(end($migrations)); + } + public function is_latest() + { + $last_migration = $this->get_last_migration(); $last_version = $this->_get_migration_number($last_migration); $current_version = $this->_get_version(); diff --git a/application/models/Employee.php b/application/models/Employee.php index aa4dd9f07..c9d5f5582 100644 --- a/application/models/Employee.php +++ b/application/models/Employee.php @@ -97,7 +97,7 @@ class Employee extends Person //Run these queries as a transaction, we want to make sure we do all or nothing $this->db->trans_start(); - if(parent::save($person_data, $employee_id)) + if(ENVIRONMENT != 'testing' && parent::save($person_data, $employee_id)) { if(!$employee_id || !$this->exists($employee_id)) { diff --git a/application/views/login.php b/application/views/login.php index aae7977fa..37d7c6041 100644 --- a/application/views/login.php +++ b/application/views/login.php @@ -19,6 +19,10 @@
+ migration->is_latest()): ?> +
lang->line('common_migration_needed'); ?>
+ +