From 471c83a8b8acae6e2da47a6729af5ad34b003d7c Mon Sep 17 00:00:00 2001 From: Peter Goodhall Date: Tue, 30 Apr 2024 14:48:47 +0100 Subject: [PATCH] Impliments a simple remember me feature for 14 days Starts to impliment #3087 this has a remember me for 14 days --- application/controllers/User.php | 28 +++++++++++++++++++ .../language/bulgarian/account_lang.php | 1 + .../chinese_simplified/account_lang.php | 1 + application/language/czech/account_lang.php | 2 +- application/language/dutch/account_lang.php | 1 + application/language/english/account_lang.php | 2 ++ application/language/finnish/account_lang.php | 1 + application/language/french/account_lang.php | 1 + application/language/german/account_lang.php | 1 + application/language/greek/account_lang.php | 1 + application/language/italian/account_lang.php | 1 + application/language/polish/account_lang.php | 1 + application/language/russian/account_lang.php | 1 + application/language/spanish/account_lang.php | 1 + application/language/swedish/account_lang.php | 1 + application/language/turkish/account_lang.php | 1 + application/views/user/login.php | 6 ++++ 17 files changed, 50 insertions(+), 1 deletion(-) diff --git a/application/controllers/User.php b/application/controllers/User.php index ce1d59f5..7a37a833 100644 --- a/application/controllers/User.php +++ b/application/controllers/User.php @@ -877,6 +877,8 @@ class User extends CI_Controller { function login() { // Check our version and run any migrations $this->load->library('Migration'); + $this->load->library('encrypt'); + $this->migration->current(); $this->load->model('user_model'); @@ -889,6 +891,16 @@ class User extends CI_Controller { $data['user'] = $query->row(); + // Read the cookie remeber_me and log the user in + if($this->input->cookie('remember_me')) { + $encrypted_string = $this->input->cookie('remember_me'); + $decrypted_string = $this->encrypt->decode($encrypted_string); + $this->user_model->update_session($decrypted_string); + $this->user_model->set_last_login($decrypted_string); + // set a debug message + $this->session->set_flashdata('notice', 'User logged in'); + redirect('dashboard'); + } if ($this->form_validation->run() == FALSE) { $data['page_title'] = "Login"; @@ -910,6 +922,19 @@ class User extends CI_Controller { ); $this->input->set_cookie($cookie); + + // Create a remember me cookie + if($this->input->post('remember_me') == '1') { + $encrypted_string = $this->encrypt->encode($data['user']->user_id); + + $cookie= array( + 'name' => 'remember_me', + 'value' => $encrypted_string, + 'expire' => '1209600', + 'secure' => FALSE + ); + $this->input->set_cookie($cookie); + } redirect('dashboard'); } else { $this->session->set_flashdata('error', 'Incorrect username or password!'); @@ -923,6 +948,9 @@ class User extends CI_Controller { $user_name = $this->session->userdata('user_name'); + // Delete remember_me cookie + setcookie('remember_me', '', time() - 3600, '/'); + $this->user_model->clear_session(); $this->session->set_flashdata('notice', 'User '.$user_name.' logged out.'); diff --git a/application/language/bulgarian/account_lang.php b/application/language/bulgarian/account_lang.php index 339c8213..99886560 100644 --- a/application/language/bulgarian/account_lang.php +++ b/application/language/bulgarian/account_lang.php @@ -11,6 +11,7 @@ $lang['account_column5_text'] = 'Избор за колона 5 (само за $lang['account_create_user_account'] = 'Create User Account'; $lang['account_edit_account'] = 'Edit Account'; +$lang['account_remember_me'] = 'Remember me'; $lang['account_account_information'] = "Account"; $lang['account_user'] = "User"; diff --git a/application/language/chinese_simplified/account_lang.php b/application/language/chinese_simplified/account_lang.php index ffcf33d3..8326e2d6 100644 --- a/application/language/chinese_simplified/account_lang.php +++ b/application/language/chinese_simplified/account_lang.php @@ -11,6 +11,7 @@ $lang['account_column5_text'] = '第5列(仅日志页面展示)'; $lang['account_create_user_account'] = '创建账户'; $lang['account_edit_account'] = '编辑账户'; +$lang['account_remember_me'] = 'Remember me'; $lang['account_account_information'] = '账户信息'; $lang['account_user'] = "用户"; diff --git a/application/language/czech/account_lang.php b/application/language/czech/account_lang.php index 2e51f130..ab1f1dcd 100644 --- a/application/language/czech/account_lang.php +++ b/application/language/czech/account_lang.php @@ -11,7 +11,7 @@ $lang['account_column5_text'] = 'Vybrat sloupec 5 (pouze pro deník)'; $lang['account_create_user_account'] = 'Vytvořit uživatelský účet'; $lang['account_edit_account'] = 'Upravit účet'; - +$lang['account_remember_me'] = 'Remember me'; $lang['account_account_information'] = 'Informace o účtu'; $lang['account_user'] = "User"; $lang['account_word_edited'] = "edited"; diff --git a/application/language/dutch/account_lang.php b/application/language/dutch/account_lang.php index 7387aef3..22a7b1ab 100644 --- a/application/language/dutch/account_lang.php +++ b/application/language/dutch/account_lang.php @@ -11,6 +11,7 @@ $lang['account_column5_text'] = 'Choose column 5 (only for logbook)'; $lang['account_create_user_account'] = 'Create User Account'; $lang['account_edit_account'] = 'Edit Account'; +$lang['account_remember_me'] = 'Remember me'; $lang['account_account_information'] = "Account"; $lang['account_user'] = "User"; diff --git a/application/language/english/account_lang.php b/application/language/english/account_lang.php index 045160f7..13fe9b86 100644 --- a/application/language/english/account_lang.php +++ b/application/language/english/account_lang.php @@ -133,3 +133,5 @@ $lang['account_hamsat_private_feed_key'] = "Private Feed Key"; $lang['account_hamsat_hint'] = "See your profile at https://hams.at/users/settings."; $lang['account_hamsat_workable_only'] = "Show Workable Passes Only"; $lang['account_hamsat_workable_only_hint'] = "If enabled shows only workable passes based on the gridsquare set in your hams.at account. Requires private feed key to be set."; + +$lang['account_remember_me'] = 'Remember me'; \ No newline at end of file diff --git a/application/language/finnish/account_lang.php b/application/language/finnish/account_lang.php index 0a2e51e2..4e8d589b 100644 --- a/application/language/finnish/account_lang.php +++ b/application/language/finnish/account_lang.php @@ -11,6 +11,7 @@ $lang['account_column5_text'] = 'Sarake 5 (vain lokikirjassa)'; $lang['account_create_user_account'] = 'Luo käyttäjätili'; $lang['account_edit_account'] = 'Muokkaa käyttäjätiliä'; +$lang['account_remember_me'] = 'Remember me'; $lang['account_account_information'] = "Account"; $lang['account_user'] = "User"; diff --git a/application/language/french/account_lang.php b/application/language/french/account_lang.php index 1b41f785..2aeaad95 100644 --- a/application/language/french/account_lang.php +++ b/application/language/french/account_lang.php @@ -11,6 +11,7 @@ $lang['account_column5_text'] = "Contenu colonne 5 (uniquement pour logbook)"; $lang['account_create_user_account'] = "Créer un compte"; $lang['account_edit_account'] = "Editer un compte"; +$lang['account_remember_me'] = 'Remember me'; $lang['account_account_information'] = "Compte"; $lang['account_user'] = "Compte"; diff --git a/application/language/german/account_lang.php b/application/language/german/account_lang.php index 0499cb58..ba369f5d 100644 --- a/application/language/german/account_lang.php +++ b/application/language/german/account_lang.php @@ -8,6 +8,7 @@ $lang['account_column2_text'] = 'Wähle Spalte 2'; $lang['account_column3_text'] = 'Wähle Spalte 3'; $lang['account_column4_text'] = 'Wähle Spalte 4'; $lang['account_column5_text'] = 'Wähle Spalte 5 (nur für Logbuch)'; +$lang['account_remember_me'] = 'Remember me'; $lang['account_create_user_account'] = 'Benutzerkonto anlegen'; $lang['account_edit_account'] = 'Benutzerkonto editieren'; diff --git a/application/language/greek/account_lang.php b/application/language/greek/account_lang.php index 1891aba4..289f70cd 100644 --- a/application/language/greek/account_lang.php +++ b/application/language/greek/account_lang.php @@ -11,6 +11,7 @@ $lang['account_column5_text'] = 'Επιλογή στήλης 5 (Μόνο για $lang['account_create_user_account'] = "Create User Account"; $lang['account_edit_account'] = 'Edit Account'; +$lang['account_remember_me'] = 'Remember me'; $lang['account_account_information'] = "Account"; $lang['account_user'] = "User"; diff --git a/application/language/italian/account_lang.php b/application/language/italian/account_lang.php index 9b0ad70d..d87f0e41 100644 --- a/application/language/italian/account_lang.php +++ b/application/language/italian/account_lang.php @@ -11,6 +11,7 @@ $lang['account_column5_text'] = 'Scegli colonna 5 (solo per il logbook)'; $lang['account_create_user_account'] = 'Create User Account'; $lang['account_edit_account'] = 'Edit Account'; +$lang['account_remember_me'] = 'Remember me'; $lang['account_account_information'] = "Account"; $lang['account_user'] = "User"; diff --git a/application/language/polish/account_lang.php b/application/language/polish/account_lang.php index 9a7ea542..2c4f0d48 100644 --- a/application/language/polish/account_lang.php +++ b/application/language/polish/account_lang.php @@ -11,6 +11,7 @@ $lang['account_column5_text'] = 'Kolumna 5 (tylko dla logu)'; $lang['account_create_user_account'] = 'Create User Account'; $lang['account_edit_account'] = 'Edit Account'; +$lang['account_remember_me'] = 'Remember me'; $lang['account_account_information'] = "Account"; $lang['account_user'] = "User"; diff --git a/application/language/russian/account_lang.php b/application/language/russian/account_lang.php index 32b2c521..dbf3b32d 100644 --- a/application/language/russian/account_lang.php +++ b/application/language/russian/account_lang.php @@ -11,6 +11,7 @@ $lang['account_column5_text'] = 'Выберите столбец 5 (только $lang['account_create_user_account'] = ' Создать аккаунт пользователя'; $lang['account_edit_account'] = 'Редактировать аккаунт'; +$lang['account_remember_me'] = 'Remember me'; $lang['account_account_information'] = 'Информация об аккаунте'; $lang['account_user'] = "User"; diff --git a/application/language/spanish/account_lang.php b/application/language/spanish/account_lang.php index cedf07ea..ae57d1af 100644 --- a/application/language/spanish/account_lang.php +++ b/application/language/spanish/account_lang.php @@ -11,6 +11,7 @@ $lang['account_column5_text'] = 'Columna 5 (solo en libro de guardia)'; $lang['account_create_user_account'] = 'Crear Cuenta de Usuario'; $lang['account_edit_account'] = 'Editar Cuenta'; +$lang['account_remember_me'] = 'Remember me'; $lang['account_account_information'] = 'Información de la Cuenta'; $lang['account_user'] = "Usuario"; diff --git a/application/language/swedish/account_lang.php b/application/language/swedish/account_lang.php index a63fdbc1..d3d9d27c 100644 --- a/application/language/swedish/account_lang.php +++ b/application/language/swedish/account_lang.php @@ -11,6 +11,7 @@ $lang['account_column5_text'] = 'Välj kolumn 5 (bara för logbok)'; $lang['account_create_user_account'] = 'Skapa användarkonto'; $lang['account_edit_account'] = 'Redigera användarkonto'; +$lang['account_remember_me'] = 'Remember me'; $lang['account_account_information'] = 'Användarkontoinformation'; $lang['account_user'] = "User"; diff --git a/application/language/turkish/account_lang.php b/application/language/turkish/account_lang.php index 867fa937..1a332cd4 100644 --- a/application/language/turkish/account_lang.php +++ b/application/language/turkish/account_lang.php @@ -11,6 +11,7 @@ $lang['account_column5_text'] = '5. sütunu seçin (sadece kayıt defteri için) $lang['account_create_user_account'] = 'Create User Account'; $lang['account_edit_account'] = 'Edit Account'; +$lang['account_remember_me'] = 'Remember me'; $lang['account_account_information'] = "Account"; $lang['account_user'] = "User"; diff --git a/application/views/user/login.php b/application/views/user/login.php index 32db00e1..bdb90842 100644 --- a/application/views/user/login.php +++ b/application/views/user/login.php @@ -51,6 +51,12 @@ body { placeholder=""> + +
+ +