2011-08-18 00:31:15 +00:00
< ? php if ( ! defined ( 'BASEPATH' )) exit ( 'No direct script access allowed' );
class User extends CI_Controller {
2021-05-06 10:58:55 +00:00
function __construct ()
{
parent :: __construct ();
2023-08-02 06:37:56 +00:00
$this -> lang -> load ( array (
'account' ,
'lotw' ,
'eqsl' ,
'admin' ,
));
2021-05-06 10:58:55 +00:00
}
2019-07-08 18:42:03 +00:00
2011-08-18 00:31:15 +00:00
public function index ()
{
$this -> load -> model ( 'user_model' );
2011-08-19 16:12:13 +00:00
if ( ! $this -> user_model -> authorize ( 99 )) { $this -> session -> set_flashdata ( 'notice' , 'You\'re not allowed to do that!' ); redirect ( 'dashboard' ); }
2011-08-18 00:31:15 +00:00
$data [ 'results' ] = $this -> user_model -> users ();
2023-05-17 14:01:55 +00:00
$data [ 'page_title' ] = $this -> lang -> line ( 'admin_user_accounts' );
2011-11-04 17:32:03 +00:00
2019-01-09 15:18:46 +00:00
$this -> load -> view ( 'interface_assets/header' , $data );
2011-11-04 17:32:03 +00:00
$this -> load -> view ( 'user/main' );
2019-01-09 15:18:46 +00:00
$this -> load -> view ( 'interface_assets/footer' );
2011-08-18 00:31:15 +00:00
}
function add () {
2011-08-18 01:27:53 +00:00
$this -> load -> model ( 'user_model' );
2011-08-19 16:12:13 +00:00
if ( ! $this -> user_model -> authorize ( 99 )) { $this -> session -> set_flashdata ( 'notice' , 'You\'re not allowed to do that!' ); redirect ( 'dashboard' ); }
2021-02-26 09:37:43 +00:00
2023-08-02 07:06:34 +00:00
$data [ 'existing_languages' ] = $this -> find ();
2023-07-07 14:04:19 +00:00
$this -> load -> model ( 'bands' );
2011-08-18 00:31:15 +00:00
$this -> load -> library ( 'form_validation' );
2011-08-18 01:27:53 +00:00
$this -> form_validation -> set_rules ( 'user_name' , 'Username' , 'required' );
$this -> form_validation -> set_rules ( 'user_email' , 'E-mail' , 'required' );
$this -> form_validation -> set_rules ( 'user_password' , 'Password' , 'required' );
$this -> form_validation -> set_rules ( 'user_type' , 'Type' , 'required' );
2011-09-26 19:45:07 +00:00
$this -> form_validation -> set_rules ( 'user_firstname' , 'First name' , 'required' );
$this -> form_validation -> set_rules ( 'user_lastname' , 'Last name' , 'required' );
$this -> form_validation -> set_rules ( 'user_callsign' , 'Callsign' , 'required' );
$this -> form_validation -> set_rules ( 'user_locator' , 'Locator' , 'required' );
2022-10-27 13:18:50 +00:00
$this -> form_validation -> set_rules ( 'user_locator' , 'Locator' , 'callback_check_locator' );
2011-09-27 22:47:25 +00:00
$this -> form_validation -> set_rules ( 'user_timezone' , 'Timezone' , 'required' );
2023-07-07 14:04:19 +00:00
$data [ 'bands' ] = $this -> bands -> get_user_bands ();
2021-08-09 11:13:41 +00:00
// Get themes list
$data [ 'themes' ] = $this -> user_model -> getThemes ();
2011-09-27 22:47:25 +00:00
// Get timezones
$data [ 'timezones' ] = $this -> user_model -> timezones ();
2023-08-02 07:06:34 +00:00
$data [ 'language' ] = 'english' ;
2011-08-18 00:31:15 +00:00
2023-08-02 07:06:34 +00:00
if ( $this -> form_validation -> run () == FALSE ) {
2011-11-04 17:32:03 +00:00
$data [ 'page_title' ] = " Add User " ;
2020-09-15 09:16:47 +00:00
$data [ 'measurement_base' ] = $this -> config -> item ( 'measurement_base' );
2011-11-04 17:32:03 +00:00
2019-01-09 15:18:46 +00:00
$this -> load -> view ( 'interface_assets/header' , $data );
2023-08-02 07:06:34 +00:00
if ( $this -> input -> post ( 'user_name' )) {
2011-08-18 01:27:53 +00:00
$data [ 'user_name' ] = $this -> input -> post ( 'user_name' );
$data [ 'user_email' ] = $this -> input -> post ( 'user_email' );
$data [ 'user_password' ] = $this -> input -> post ( 'user_password' );
$data [ 'user_type' ] = $this -> input -> post ( 'user_type' );
2011-09-26 19:45:07 +00:00
$data [ 'user_firstname' ] = $this -> input -> post ( 'user_firstname' );
$data [ 'user_lastname' ] = $this -> input -> post ( 'user_lastname' );
$data [ 'user_callsign' ] = $this -> input -> post ( 'user_callsign' );
$data [ 'user_locator' ] = $this -> input -> post ( 'user_locator' );
2011-09-27 22:47:25 +00:00
$data [ 'user_timezone' ] = $this -> input -> post ( 'user_timezone' );
2023-07-07 14:04:19 +00:00
$data [ 'user_measurement_base' ] = $this -> input -> post ( 'user_measurement_base' );
$data [ 'user_stylesheet' ] = $this -> input -> post ( 'user_stylesheet' );
2022-10-19 14:27:26 +00:00
$data [ 'user_qth_lookup' ] = $this -> input -> post ( 'user_qth_lookup' );
2021-02-26 09:37:43 +00:00
$data [ 'user_sota_lookup' ] = $this -> input -> post ( 'user_sota_lookup' );
2022-10-19 12:52:43 +00:00
$data [ 'user_wwff_lookup' ] = $this -> input -> post ( 'user_wwff_lookup' );
2023-05-01 19:14:30 +00:00
$data [ 'user_pota_lookup' ] = $this -> input -> post ( 'user_pota_lookup' );
2021-03-20 20:19:07 +00:00
$data [ 'user_show_notes' ] = $this -> input -> post ( 'user_show_notes' );
2021-05-05 15:52:42 +00:00
$data [ 'user_column1' ] = $this -> input -> post ( 'user_column1' );
$data [ 'user_column2' ] = $this -> input -> post ( 'user_column2' );
$data [ 'user_column3' ] = $this -> input -> post ( 'user_column3' );
$data [ 'user_column4' ] = $this -> input -> post ( 'user_column4' );
2021-05-07 06:03:25 +00:00
$data [ 'user_column5' ] = $this -> input -> post ( 'user_column5' );
2022-07-03 09:39:05 +00:00
$data [ 'user_show_profile_image' ] = $this -> input -> post ( 'user_show_profile_image' );
2022-11-24 23:22:31 +00:00
$data [ 'user_previous_qsl_type' ] = $this -> input -> post ( 'user_previous_qsl_type' );
2023-01-27 16:24:48 +00:00
$data [ 'user_amsat_status_upload' ] = $this -> input -> post ( 'user_amsat_status_upload' );
2023-07-06 08:17:20 +00:00
$data [ 'user_mastodon_url' ] = $this -> input -> post ( 'user_mastodon_url' );
2023-10-16 20:39:33 +00:00
$data [ 'user_default_band' ] = $this -> input -> post ( 'user_default_band' );
2023-12-08 07:17:01 +00:00
$data [ 'user_default_confirmation' ] = ( $this -> input -> post ( 'user_default_confirmation_qsl' ) !== null ? 'Q' : '' ) . ( $this -> input -> post ( 'user_default_confirmation_lotw' ) !== null ? 'L' : '' ) . ( $this -> input -> post ( 'user_default_confirmation_eqsl' ) !== null ? 'E' : '' ) . ( $this -> input -> post ( 'user_default_confirmation_qrz' ) !== null ? 'Z' : '' );
2023-11-01 13:24:13 +00:00
$data [ 'user_qso_end_times' ] = $this -> input -> post ( 'user_qso_end_times' );
2023-11-04 17:31:46 +00:00
$data [ 'user_quicklog' ] = $this -> input -> post ( 'user_quicklog' );
2023-11-05 11:29:59 +00:00
$data [ 'user_quicklog_enter' ] = $this -> input -> post ( 'user_quicklog_enter' );
2023-08-02 06:34:12 +00:00
$data [ 'language' ] = $this -> input -> post ( 'language' );
2020-05-28 21:40:52 +00:00
$this -> load -> view ( 'user/add' , $data );
2011-08-18 01:27:53 +00:00
} else {
2011-09-27 22:47:25 +00:00
$this -> load -> view ( 'user/add' , $data );
2011-08-18 01:27:53 +00:00
}
2019-01-09 15:18:46 +00:00
$this -> load -> view ( 'interface_assets/footer' );
2023-08-02 07:06:34 +00:00
} else {
2021-05-05 15:52:42 +00:00
switch ( $this -> user_model -> add ( $this -> input -> post ( 'user_name' ),
$this -> input -> post ( 'user_password' ),
$this -> input -> post ( 'user_email' ),
$this -> input -> post ( 'user_type' ),
$this -> input -> post ( 'user_firstname' ),
$this -> input -> post ( 'user_lastname' ),
$this -> input -> post ( 'user_callsign' ),
$this -> input -> post ( 'user_locator' ),
$this -> input -> post ( 'user_timezone' ),
$this -> input -> post ( 'user_measurement_base' ),
$this -> input -> post ( 'user_date_format' ),
$this -> input -> post ( 'user_stylesheet' ),
2022-10-19 14:27:26 +00:00
$this -> input -> post ( 'user_qth_lookup' ),
2021-05-05 15:52:42 +00:00
$this -> input -> post ( 'user_sota_lookup' ),
2022-10-19 12:52:43 +00:00
$this -> input -> post ( 'user_wwff_lookup' ),
2023-05-01 19:14:30 +00:00
$this -> input -> post ( 'user_pota_lookup' ),
2021-05-05 15:52:42 +00:00
$this -> input -> post ( 'user_show_notes' ),
$this -> input -> post ( 'user_column1' ),
$this -> input -> post ( 'user_column2' ),
$this -> input -> post ( 'user_column3' ),
2021-05-07 06:03:25 +00:00
$this -> input -> post ( 'user_column4' ),
2022-04-04 11:17:33 +00:00
$this -> input -> post ( 'user_column5' ),
2022-11-24 23:22:31 +00:00
$this -> input -> post ( 'user_show_profile_image' ),
2023-01-27 16:24:48 +00:00
$this -> input -> post ( 'user_previous_qsl_type' ),
2023-07-06 08:17:20 +00:00
$this -> input -> post ( 'user_amsat_status_upload' ),
2023-07-07 14:04:19 +00:00
$this -> input -> post ( 'user_mastodon_url' ),
2023-10-16 20:39:33 +00:00
$this -> input -> post ( 'user_default_band' ),
2023-12-08 07:17:01 +00:00
( $this -> input -> post ( 'user_default_confirmation_qsl' ) !== null ? 'Q' : '' ) . ( $this -> input -> post ( 'user_default_confirmation_lotw' ) !== null ? 'L' : '' ) . ( $this -> input -> post ( 'user_default_confirmation_eqsl' ) !== null ? 'E' : '' ) . ( $this -> input -> post ( 'user_default_confirmation_qrz' ) !== null ? 'Z' : '' ),
2023-11-01 13:24:13 +00:00
$this -> input -> post ( 'user_qso_end_times' ),
2023-11-04 17:31:46 +00:00
$this -> input -> post ( 'user_quicklog' ),
2023-11-05 11:29:59 +00:00
$this -> input -> post ( 'user_quicklog_enter' ),
2023-08-02 06:34:12 +00:00
$this -> input -> post ( 'language' ),
2023-08-02 07:06:34 +00:00
)) {
2011-08-19 16:12:13 +00:00
// Check for errors
case EUSERNAMEEXISTS :
$data [ 'username_error' ] = 'Username <b>' . $this -> input -> post ( 'user_name' ) . '</b> already in use!' ;
break ;
case EEMAILEXISTS :
$data [ 'email_error' ] = 'E-mail address <b>' . $this -> input -> post ( 'user_email' ) . '</b> already in use!' ;
break ;
case EPASSWORDINVALID :
$data [ 'password_error' ] = 'Invalid password!' ;
break ;
// All okay, return to user screen
case OK :
$this -> session -> set_flashdata ( 'notice' , 'User ' . $this -> input -> post ( 'user_name' ) . ' added' );
redirect ( 'user' );
return ;
2011-08-18 01:27:53 +00:00
}
2011-11-04 17:32:03 +00:00
$data [ 'page_title' ] = " Users " ;
2019-01-09 15:18:46 +00:00
$this -> load -> view ( 'interface_assets/header' , $data );
2011-08-19 16:12:13 +00:00
$data [ 'user_name' ] = $this -> input -> post ( 'user_name' );
$data [ 'user_email' ] = $this -> input -> post ( 'user_email' );
$data [ 'user_password' ] = $this -> input -> post ( 'user_password' );
$data [ 'user_type' ] = $this -> input -> post ( 'user_type' );
2011-09-26 19:45:07 +00:00
$data [ 'user_firstname' ] = $this -> input -> post ( 'user_firstname' );
$data [ 'user_lastname' ] = $this -> input -> post ( 'user_lastname' );
$data [ 'user_callsign' ] = $this -> input -> post ( 'user_callsign' );
$data [ 'user_locator' ] = $this -> input -> post ( 'user_locator' );
2023-07-07 14:04:19 +00:00
$data [ 'user_measurement_base' ] = $this -> input -> post ( 'user_measurement_base' );
$data [ 'user_stylesheet' ] = $this -> input -> post ( 'user_stylesheet' );
2022-10-19 14:27:26 +00:00
$data [ 'user_qth_lookup' ] = $this -> input -> post ( 'user_qth_lookup' );
2021-02-26 09:37:43 +00:00
$data [ 'user_sota_lookup' ] = $this -> input -> post ( 'user_sota_lookup' );
2022-10-19 12:52:43 +00:00
$data [ 'user_wwff_lookup' ] = $this -> input -> post ( 'user_wwff_lookup' );
2023-05-01 19:14:30 +00:00
$data [ 'user_pota_lookup' ] = $this -> input -> post ( 'user_pota_lookup' );
2021-03-20 20:19:07 +00:00
$data [ 'user_show_notes' ] = $this -> input -> post ( 'user_show_notes' );
2021-05-05 15:52:42 +00:00
$data [ 'user_column1' ] = $this -> input -> post ( 'user_column1' );
$data [ 'user_column2' ] = $this -> input -> post ( 'user_column2' );
$data [ 'user_column3' ] = $this -> input -> post ( 'user_column3' );
$data [ 'user_column4' ] = $this -> input -> post ( 'user_column4' );
2021-05-07 06:03:25 +00:00
$data [ 'user_column5' ] = $this -> input -> post ( 'user_column5' );
2022-07-03 09:39:05 +00:00
$data [ 'user_show_profile_image' ] = $this -> input -> post ( 'user_show_profile_image' );
2022-11-24 23:22:31 +00:00
$data [ 'user_previous_qsl_type' ] = $this -> input -> post ( 'user_previous_qsl_type' );
2023-01-27 16:24:48 +00:00
$data [ 'user_amsat_status_upload' ] = $this -> input -> post ( 'user_amsat_status_upload' );
2023-07-06 08:17:20 +00:00
$data [ 'user_mastodon_url' ] = $this -> input -> post ( 'user_mastodon_url' );
2023-10-16 20:39:33 +00:00
$data [ 'user_default_band' ] = $this -> input -> post ( 'user_default_band' );
2023-12-08 07:17:01 +00:00
$data [ 'user_default_confirmation' ] = ( $this -> input -> post ( 'user_default_confirmation_qsl' ) !== null ? 'Q' : '' ) . ( $this -> input -> post ( 'user_default_confirmation_lotw' ) !== null ? 'L' : '' ) . ( $this -> input -> post ( 'user_default_confirmation_eqsl' ) !== null ? 'E' : '' ) . ( $this -> input -> post ( 'user_default_confirmation_qrz' ) !== null ? 'Z' : '' );
2023-11-01 13:24:13 +00:00
$data [ 'user_qso_end_times' ] = $this -> input -> post ( 'user_qso_end_times' );
2023-11-04 17:31:46 +00:00
$data [ 'user_quicklog' ] = $this -> input -> post ( 'user_quicklog' );
2023-11-05 11:29:59 +00:00
$data [ 'user_quicklog_enter' ] = $this -> input -> post ( 'user_quicklog_enter' );
2023-08-02 06:34:12 +00:00
$data [ 'language' ] = $this -> input -> post ( 'language' );
2020-05-28 21:40:52 +00:00
$this -> load -> view ( 'user/add' , $data );
2019-01-09 15:18:46 +00:00
$this -> load -> view ( 'interface_assets/footer' );
2011-08-18 00:31:15 +00:00
}
}
2023-08-02 06:34:12 +00:00
function find () {
$existing_langs = array ();
$lang_path = APPPATH . 'language' ;
$results = scandir ( $lang_path );
foreach ( $results as $result ) {
if ( $result === '.' or $result === '..' ) continue ;
if ( is_dir ( APPPATH . 'language' . '/' . $result )) {
$dirs [] = $result ;
}
}
return $dirs ;
}
2011-08-18 00:31:15 +00:00
function edit () {
$this -> load -> model ( 'user_model' );
2023-07-14 11:00:39 +00:00
if ( ( $this -> session -> userdata ( 'user_id' ) == '' ) || (( ! $this -> user_model -> authorize ( 99 )) && ( $this -> session -> userdata ( 'user_id' ) != $this -> uri -> segment ( 3 ))) ) { $this -> session -> set_flashdata ( 'notice' , 'You\'re not allowed to do that!' ); redirect ( 'dashboard' ); }
2011-08-18 00:31:15 +00:00
$query = $this -> user_model -> get_by_id ( $this -> uri -> segment ( 3 ));
2021-02-26 09:37:43 +00:00
2023-08-02 06:34:12 +00:00
$data [ 'existing_languages' ] = $this -> find ();
2023-07-07 14:04:19 +00:00
$this -> load -> model ( 'bands' );
2011-08-18 00:31:15 +00:00
$this -> load -> library ( 'form_validation' );
2019-10-05 20:57:44 +00:00
$this -> form_validation -> set_rules ( 'user_name' , 'Username' , 'required|xss_clean' );
$this -> form_validation -> set_rules ( 'user_email' , 'E-mail' , 'required|xss_clean' );
2011-08-19 19:33:37 +00:00
if ( $this -> session -> userdata ( 'user_type' ) == 99 )
{
2019-10-05 20:57:44 +00:00
$this -> form_validation -> set_rules ( 'user_type' , 'Type' , 'required|xss_clean' );
2011-08-19 19:33:37 +00:00
}
2019-10-05 20:57:44 +00:00
$this -> form_validation -> set_rules ( 'user_firstname' , 'First name' , 'required|xss_clean' );
$this -> form_validation -> set_rules ( 'user_lastname' , 'Last name' , 'required|xss_clean' );
$this -> form_validation -> set_rules ( 'user_callsign' , 'Callsign' , 'trim|required|xss_clean' );
2022-10-27 13:18:50 +00:00
$this -> form_validation -> set_rules ( 'user_locator' , 'Locator' , 'callback_check_locator' );
2011-09-27 22:47:25 +00:00
$this -> form_validation -> set_rules ( 'user_timezone' , 'Timezone' , 'required' );
2011-08-18 00:31:15 +00:00
2023-07-07 14:04:19 +00:00
$data [ 'bands' ] = $this -> bands -> get_user_bands ();
2021-08-09 11:13:41 +00:00
// Get themes list
$data [ 'themes' ] = $this -> user_model -> getThemes ();
2011-09-27 22:47:25 +00:00
// Get timezones
$data [ 'timezones' ] = $this -> user_model -> timezones ();
2011-08-18 00:31:15 +00:00
if ( $this -> form_validation -> run () == FALSE )
{
2011-11-04 17:32:03 +00:00
$data [ 'page_title' ] = " Edit User " ;
2011-08-19 19:33:37 +00:00
$q = $query -> row ();
$data [ 'id' ] = $q -> user_id ;
2019-10-05 20:57:44 +00:00
if ( $this -> input -> post ( 'user_name' , true )) {
$data [ 'user_name' ] = $this -> input -> post ( 'user_name' , true );
2011-08-19 19:33:37 +00:00
} else {
$data [ 'user_name' ] = $q -> user_name ;
}
2019-10-05 20:57:44 +00:00
if ( $this -> input -> post ( 'user_email' , true )) {
$data [ 'user_email' ] = $this -> input -> post ( 'user_email' , true );
2011-08-19 19:33:37 +00:00
} else {
$data [ 'user_email' ] = $q -> user_email ;
}
2019-10-05 20:57:44 +00:00
if ( $this -> input -> post ( 'user_password' , true )) {
$data [ 'user_password' ] = $this -> input -> post ( 'user_password' , true );
2011-08-19 19:33:37 +00:00
} else {
$data [ 'user_password' ] = $q -> user_password ;
}
2019-10-05 20:57:44 +00:00
if ( $this -> input -> post ( 'user_type' , true )) {
$data [ 'user_type' ] = $this -> input -> post ( 'user_type' , true );
2011-08-19 19:33:37 +00:00
} else {
$data [ 'user_type' ] = $q -> user_type ;
2011-08-19 16:12:13 +00:00
}
2011-08-19 19:33:37 +00:00
2019-10-05 20:57:44 +00:00
if ( $this -> input -> post ( 'user_callsign' , true )) {
$data [ 'user_callsign' ] = $this -> input -> post ( 'user_callsign' , true );
2011-08-19 19:33:37 +00:00
} else {
$data [ 'user_callsign' ] = $q -> user_callsign ;
}
2019-10-05 20:57:44 +00:00
if ( $this -> input -> post ( 'user_locator' , true )) {
$data [ 'user_locator' ] = $this -> input -> post ( 'user_locator' , true );
2011-08-19 19:33:37 +00:00
} else {
$data [ 'user_locator' ] = $q -> user_locator ;
}
2019-10-05 20:57:44 +00:00
if ( $this -> input -> post ( 'user_firstname' , true )) {
$data [ 'user_firstname' ] = $this -> input -> post ( 'user_firstname' , true );
2011-08-19 19:33:37 +00:00
} else {
$data [ 'user_firstname' ] = $q -> user_firstname ;
}
2019-10-05 20:57:44 +00:00
if ( $this -> input -> post ( 'user_lastname' , true )) {
2020-09-15 16:04:38 +00:00
$data [ 'user_lastname' ] = $this -> input -> post ( 'user_lastname' , true );
2011-08-19 19:33:37 +00:00
} else {
$data [ 'user_lastname' ] = $q -> user_lastname ;
}
2019-10-05 20:57:44 +00:00
if ( $this -> input -> post ( 'user_callsign' , true )) {
$data [ 'user_callsign' ] = $this -> input -> post ( 'user_callsign' , true );
2011-09-27 22:47:25 +00:00
} else {
$data [ 'user_callsign' ] = $q -> user_callsign ;
}
2019-10-05 20:57:44 +00:00
if ( $this -> input -> post ( 'user_locator' , true )) {
$data [ 'user_locator' ] = $this -> input -> post ( 'user_locator' , true );
2011-09-27 22:47:25 +00:00
} else {
$data [ 'user_locator' ] = $q -> user_locator ;
}
if ( $this -> input -> post ( 'user_timezone' )) {
2019-10-05 20:57:44 +00:00
$data [ 'user_timezone' ] = $this -> input -> post ( 'user_timezone' , true );
2011-09-27 22:47:25 +00:00
} else {
$data [ 'user_timezone' ] = $q -> user_timezone ;
}
2013-02-22 00:31:31 +00:00
if ( $this -> input -> post ( 'user_lotw_name' )) {
2019-10-05 20:57:44 +00:00
$data [ 'user_lotw_name' ] = $this -> input -> post ( 'user_lotw_name' , true );
2013-02-22 00:31:31 +00:00
} else {
$data [ 'user_lotw_name' ] = $q -> user_lotw_name ;
}
2019-06-19 13:14:10 +00:00
if ( $this -> input -> post ( 'user_clublog_name' )) {
2019-10-05 20:57:44 +00:00
$data [ 'user_clublog_name' ] = $this -> input -> post ( 'user_clublog_name' , true );
2019-06-19 13:14:10 +00:00
} else {
$data [ 'user_clublog_name' ] = $q -> user_clublog_name ;
}
2021-02-26 09:37:43 +00:00
2019-06-19 13:14:10 +00:00
if ( $this -> input -> post ( 'user_clublog_password' )) {
2019-10-05 20:57:44 +00:00
$data [ 'user_clublog_password' ] = $this -> input -> post ( 'user_clublog_password' , true );
2019-06-19 13:14:10 +00:00
} else {
$data [ 'user_clublog_password' ] = $q -> user_clublog_password ;
}
2013-02-22 00:31:31 +00:00
if ( $this -> input -> post ( 'user_lotw_password' )) {
2019-10-05 20:57:44 +00:00
$data [ 'user_lotw_password' ] = $this -> input -> post ( 'user_lotw_password' , true );
2013-02-22 00:31:31 +00:00
} else {
$data [ 'user_lotw_password' ] = $q -> user_lotw_password ;
}
2021-02-26 09:37:43 +00:00
2013-08-17 14:08:26 +00:00
if ( $this -> input -> post ( 'user_eqsl_name' )) {
2019-10-05 20:57:44 +00:00
$data [ 'user_eqsl_name' ] = $this -> input -> post ( 'user_eqsl_name' , true );
2013-08-17 14:08:26 +00:00
} else {
$data [ 'user_eqsl_name' ] = $q -> user_eqsl_name ;
}
2021-02-26 09:37:43 +00:00
2013-08-17 14:08:26 +00:00
if ( $this -> input -> post ( 'user_eqsl_password' )) {
2019-10-05 20:57:44 +00:00
$data [ 'user_eqsl_password' ] = $this -> input -> post ( 'user_eqsl_password' , true );
2013-08-17 14:08:26 +00:00
} else {
$data [ 'user_eqsl_password' ] = $q -> user_eqsl_password ;
}
2020-09-14 10:29:02 +00:00
2023-07-07 14:04:19 +00:00
if ( $this -> input -> post ( 'user_measurement_base' )) {
$data [ 'user_measurement_base' ] = $this -> input -> post ( 'user_measurement_base' , true );
} else {
$data [ 'user_measurement_base' ] = $q -> user_measurement_base ;
}
2020-09-15 21:04:47 +00:00
if ( $this -> input -> post ( 'user_date_format' )) {
2023-07-07 14:04:19 +00:00
$data [ 'user_date_format' ] = $this -> input -> post ( 'user_date_format' , true );
} else {
$data [ 'user_date_format' ] = $q -> user_date_format ;
}
2020-09-23 08:59:49 +00:00
2023-08-02 06:34:12 +00:00
if ( $this -> input -> post ( 'language' )) {
$data [ 'language' ] = $this -> input -> post ( 'language' , true );
} else {
$data [ 'language' ] = $q -> language ;
}
2023-07-07 14:04:19 +00:00
if ( $this -> input -> post ( 'user_stylesheet' )) {
$data [ 'user_stylesheet' ] = $this -> input -> post ( 'user_stylesheet' , true );
} else {
$data [ 'user_stylesheet' ] = $q -> user_stylesheet ;
}
2021-02-26 09:37:43 +00:00
2022-10-19 14:27:26 +00:00
if ( $this -> input -> post ( 'user_qth_lookup' )) {
$data [ 'user_qth_lookup' ] = $this -> input -> post ( 'user_qth_lookup' , true );
} else {
$data [ 'user_qth_lookup' ] = $q -> user_qth_lookup ;
}
2021-02-26 09:37:43 +00:00
if ( $this -> input -> post ( 'user_sota_lookup' )) {
$data [ 'user_sota_lookup' ] = $this -> input -> post ( 'user_sota_lookup' , true );
} else {
$data [ 'user_sota_lookup' ] = $q -> user_sota_lookup ;
}
2022-10-19 12:52:43 +00:00
if ( $this -> input -> post ( 'user_wwff_lookup' )) {
$data [ 'user_wwff_lookup' ] = $this -> input -> post ( 'user_wwff_lookup' , true );
} else {
$data [ 'user_wwff_lookup' ] = $q -> user_wwff_lookup ;
}
2023-05-01 19:14:30 +00:00
if ( $this -> input -> post ( 'user_pota_lookup' )) {
$data [ 'user_pota_lookup' ] = $this -> input -> post ( 'user_pota_lookup' , true );
} else {
$data [ 'user_pota_lookup' ] = $q -> user_pota_lookup ;
}
2021-03-20 20:19:07 +00:00
if ( $this -> input -> post ( 'user_show_notes' )) {
$data [ 'user_show_notes' ] = $this -> input -> post ( 'user_show_notes' , true );
} else {
$data [ 'user_show_notes' ] = $q -> user_show_notes ;
}
2023-11-01 13:24:13 +00:00
if ( $this -> input -> post ( 'user_qso_end_times' )) {
$data [ 'user_qso_end_times' ] = $this -> input -> post ( 'user_qso_end_times' , true );
} else {
$data [ 'user_qso_end_times' ] = $q -> user_qso_end_times ;
}
2023-11-04 17:31:46 +00:00
if ( $this -> input -> post ( 'user_quicklog' )) {
$data [ 'user_quicklog' ] = $this -> input -> post ( 'user_quicklog' , true );
} else {
$data [ 'user_quicklog' ] = $q -> user_quicklog ;
}
2023-11-05 11:29:59 +00:00
if ( $this -> input -> post ( 'user_quicklog_enter' )) {
$data [ 'user_quicklog_enter' ] = $this -> input -> post ( 'user_quicklog_enter' , true );
} else {
$data [ 'user_quicklog_enter' ] = $q -> user_quicklog_enter ;
}
2022-07-03 09:39:05 +00:00
if ( $this -> input -> post ( 'user_show_profile_image' )) {
$data [ 'user_show_profile_image' ] = $this -> input -> post ( 'user_show_profile_image' , false );
2022-04-04 11:17:33 +00:00
} else {
2022-07-03 09:39:05 +00:00
$data [ 'user_show_profile_image' ] = $q -> user_show_profile_image ;
2022-04-04 11:17:33 +00:00
}
2022-11-24 23:22:31 +00:00
if ( $this -> input -> post ( 'user_previous_qsl_type' )) {
$data [ 'user_previous_qsl_type' ] = $this -> input -> post ( 'user_previous_qsl_type' , false );
} else {
$data [ 'user_previous_qsl_type' ] = $q -> user_previous_qsl_type ;
}
2023-01-27 16:24:48 +00:00
if ( $this -> input -> post ( 'user_amsat_status_upload' )) {
$data [ 'user_amsat_status_upload' ] = $this -> input -> post ( 'user_amsat_status_upload' , false );
} else {
$data [ 'user_amsat_status_upload' ] = $q -> user_amsat_status_upload ;
}
2023-07-06 08:17:20 +00:00
if ( $this -> input -> post ( 'user_mastodon_url' )) {
$data [ 'user_mastodon_url' ] = $this -> input -> post ( 'user_mastodon_url' , false );
} else {
$data [ 'user_mastodon_url' ] = $q -> user_mastodon_url ;
}
2023-10-16 20:39:33 +00:00
if ( $this -> input -> post ( 'user_default_band' )) {
$data [ 'user_default_band' ] = $this -> input -> post ( 'user_default_band' , false );
2023-07-07 14:04:19 +00:00
} else {
2023-10-16 20:39:33 +00:00
$data [ 'user_default_band' ] = $q -> user_default_band ;
2023-07-07 14:04:19 +00:00
}
2023-10-16 20:39:33 +00:00
if ( $this -> input -> post ( 'user_default_confirmation' )) {
2023-12-08 07:17:01 +00:00
$data [ 'user_default_confirmation' ] = ( $this -> input -> post ( 'user_default_confirmation_qsl' ) !== null ? 'Q' : '' ) . ( $this -> input -> post ( 'user_default_confirmation_lotw' ) !== null ? 'L' : '' ) . ( $this -> input -> post ( 'user_default_confirmation_eqsl' ) !== null ? 'E' : '' ) . ( $this -> input -> post ( 'user_default_confirmation_qrz' ) !== null ? 'Z' : '' );
2023-07-07 14:04:19 +00:00
} else {
2023-10-16 20:39:33 +00:00
$data [ 'user_default_confirmation' ] = $q -> user_default_confirmation ;
2023-07-07 14:04:19 +00:00
}
2021-05-05 15:52:42 +00:00
if ( $this -> input -> post ( 'user_column1' )) {
$data [ 'user_column1' ] = $this -> input -> post ( 'user_column1' , true );
} else {
$data [ 'user_column1' ] = $q -> user_column1 ;
}
if ( $this -> input -> post ( 'user_column2' )) {
$data [ 'user_column2' ] = $this -> input -> post ( 'user_column2' , true );
} else {
$data [ 'user_column2' ] = $q -> user_column2 ;
}
if ( $this -> input -> post ( 'user_column3' )) {
$data [ 'user_column3' ] = $this -> input -> post ( 'user_column3' , true );
} else {
$data [ 'user_column3' ] = $q -> user_column3 ;
}
if ( $this -> input -> post ( 'user_column4' )) {
$data [ 'user_column4' ] = $this -> input -> post ( 'user_column4' , true );
} else {
$data [ 'user_column4' ] = $q -> user_column4 ;
}
2021-05-07 06:03:25 +00:00
if ( $this -> input -> post ( 'user_column5' )) {
$data [ 'user_column5' ] = $this -> input -> post ( 'user_column5' , true );
} else {
$data [ 'user_column5' ] = $q -> user_column5 ;
}
2023-08-03 12:59:02 +00:00
if ( $this -> input -> post ( 'user_winkey' )) {
$data [ 'user_winkey' ] = $this -> input -> post ( 'user_winkey' , true );
} else {
$data [ 'user_winkey' ] = $q -> winkey ;
}
2023-11-30 17:11:22 +00:00
// [MAP Custom] GET user options //
$this -> load -> model ( 'user_options_model' );
$options_object = $this -> user_options_model -> get_options ( 'map_custom' ) -> result ();
if ( count ( $options_object ) > 0 ) {
foreach ( $options_object as $row ) {
if ( $row -> option_name == 'icon' ) {
$option_value = json_decode ( $row -> option_value , true );
foreach ( $option_value as $ktype => $vtype ) {
if ( $this -> input -> post ( 'user_map_' . $row -> option_key . '_icon' )) {
$data [ 'user_map_' . $row -> option_key . '_' . $ktype ] = $this -> input -> post ( 'user_map_' . $row -> option_key . '_' . $ktype , true );
} else {
$data [ 'user_map_' . $row -> option_key . '_' . $ktype ] = $vtype ;
}
}
} else {
$data [ 'user_map_' . $row -> option_name . '_' . $row -> option_key ] = $row -> option_value ;
}
}
} else {
$data [ 'user_map_qso_icon' ] = " fas fa-dot-circle " ;
$data [ 'user_map_qso_color' ] = " #FF0000 " ;
$data [ 'user_map_station_icon' ] = " 0 " ;
$data [ 'user_map_station_color' ] = " #0000FF " ;
$data [ 'user_map_qsoconfirm_icon' ] = " 0 " ;
$data [ 'user_map_qsoconfirm_color' ] = " #00AA00 " ;
$data [ 'user_map_gridsquare_show' ] = " 0 " ;
}
$data [ 'map_icon_select' ] = array (
'station' => array ( '0' , 'fas fa-home' , 'fas fa-broadcast-tower' , 'fas fa-user' , 'fas fa-dot-circle' ),
'qso' => array ( 'fas fa-broadcast-tower' , 'fas fa-user' , 'fas fa-dot-circle' ),
'qsoconfirm' => array ( '0' , 'fas fa-broadcast-tower' , 'fas fa-user' , 'fas fa-dot-circle' , 'fas fa-check-circle' ));
2023-08-02 06:34:12 +00:00
$this -> load -> view ( 'interface_assets/header' , $data );
2011-08-19 16:12:13 +00:00
$this -> load -> view ( 'user/edit' , $data );
2019-01-09 15:18:46 +00:00
$this -> load -> view ( 'interface_assets/footer' );
2023-08-02 06:34:12 +00:00
} else {
2011-08-19 16:12:13 +00:00
unset ( $data );
2011-08-19 19:33:37 +00:00
switch ( $this -> user_model -> edit ( $this -> input -> post ())) {
2011-08-19 16:12:13 +00:00
// Check for errors
case EUSERNAMEEXISTS :
2019-10-05 18:35:55 +00:00
$data [ 'username_error' ] = 'Username <b>' . $this -> input -> post ( 'user_name' , true ) . '</b> already in use!' ;
2011-08-19 16:12:13 +00:00
break ;
case EEMAILEXISTS :
2019-10-05 18:35:55 +00:00
$data [ 'email_error' ] = 'E-mail address <b>' . $this -> input -> post ( 'user_email' , true ) . '</b> already in use!' ;
2011-08-19 16:12:13 +00:00
break ;
case EPASSWORDINVALID :
$data [ 'password_error' ] = 'Invalid password!' ;
break ;
// All okay, return to user screen
case OK :
2023-08-02 06:34:12 +00:00
if ( $this -> session -> userdata ( 'user_id' ) == $this -> uri -> segment ( 3 )) { // Editing own User? Set cookie!
$cookie = array (
'name' => 'language' ,
'value' => $this -> input -> post ( 'language' , true ),
2023-08-02 06:37:56 +00:00
'expire' => time () + 1000 ,
'secure' => FALSE
2023-08-02 06:34:12 +00:00
);
$this -> input -> set_cookie ( $cookie );
}
2019-10-05 18:35:55 +00:00
if ( $this -> session -> userdata ( 'user_id' ) == $this -> input -> post ( 'id' , true )) {
2023-11-30 17:11:22 +00:00
// [MAP Custom] ADD to user options //
$array_icon = array ( 'station' , 'qso' , 'qsoconfirm' );
foreach ( $array_icon as $icon ) {
$data_options [ 'user_map_' . $icon . '_icon' ] = xss_clean ( $this -> input -> post ( 'user_map_' . $icon . '_icon' , true ));
$data_options [ 'user_map_' . $icon . '_color' ] = xss_clean ( $this -> input -> post ( 'user_map_' . $icon . '_color' , true ));
}
$this -> load -> model ( 'user_options_model' );
if ( ! empty ( $data_options [ 'user_map_qso_icon' ])) {
foreach ( $array_icon as $icon ) {
$json = json_encode ( array ( 'icon' => $data_options [ 'user_map_' . $icon . '_icon' ], 'color' => $data_options [ 'user_map_' . $icon . '_color' ]));
$this -> user_options_model -> set_option ( 'map_custom' , 'icon' , array ( $icon => $json ));
}
$this -> user_options_model -> set_option ( 'map_custom' , 'gridsquare' , array ( 'show' => xss_clean ( $this -> input -> post ( 'user_map_gridsquare_show' , true ))));
} else {
$this -> user_options_model -> del_option ( 'map_custom' , 'icon' );
$this -> user_options_model -> del_option ( 'map_custom' , 'gridsquare' );
}
2023-11-02 20:24:18 +00:00
$this -> session -> set_flashdata ( 'success' , lang ( 'account_user' ) . ' ' . $this -> input -> post ( 'user_name' , true ) . ' ' . lang ( 'account_word_edited' ));
2020-12-07 13:53:01 +00:00
redirect ( 'user/edit/' . $this -> uri -> segment ( 3 ));
2011-08-19 20:14:16 +00:00
} else {
2023-11-02 20:24:18 +00:00
$this -> session -> set_flashdata ( 'success' , lang ( 'account_user' ) . ' ' . $this -> input -> post ( 'user_name' , true ) . ' ' . lang ( 'account_word_edited' ));
2011-08-19 20:14:16 +00:00
redirect ( 'user' );
}
2011-08-19 16:12:13 +00:00
return ;
}
2011-11-04 17:32:03 +00:00
$data [ 'page_title' ] = " Edit User " ;
2019-01-09 15:18:46 +00:00
$this -> load -> view ( 'interface_assets/header' , $data );
2019-10-05 20:57:44 +00:00
$data [ 'user_name' ] = $this -> input -> post ( 'user_name' , true );
$data [ 'user_email' ] = $this -> input -> post ( 'user_email' , true );
$data [ 'user_password' ] = $this -> input -> post ( 'user_password' , true );
$data [ 'user_type' ] = $this -> input -> post ( 'user_type' , true );
$data [ 'user_firstname' ] = $this -> input -> post ( 'user_firstname' , true );
$data [ 'user_lastname' ] = $this -> input -> post ( 'user_lastname' , true );
$data [ 'user_callsign' ] = $this -> input -> post ( 'user_callsign' , true );
$data [ 'user_locator' ] = $this -> input -> post ( 'user_locator' , true );
$data [ 'user_timezone' ] = $this -> input -> post ( 'user_timezone' , true );
2023-07-07 14:04:19 +00:00
$data [ 'user_stylesheet' ] = $this -> input -> post ( 'user_stylesheet' );
2022-10-19 14:27:26 +00:00
$data [ 'user_qth_lookup' ] = $this -> input -> post ( 'user_qth_lookup' );
2021-02-26 09:37:43 +00:00
$data [ 'user_sota_lookup' ] = $this -> input -> post ( 'user_sota_lookup' );
2022-10-19 12:52:43 +00:00
$data [ 'user_wwff_lookup' ] = $this -> input -> post ( 'user_wwff_lookup' );
2023-05-01 19:14:30 +00:00
$data [ 'user_pota_lookup' ] = $this -> input -> post ( 'user_pota_lookup' );
2021-03-20 20:19:07 +00:00
$data [ 'user_show_notes' ] = $this -> input -> post ( 'user_show_notes' );
2021-05-05 15:52:42 +00:00
$data [ 'user_column1' ] = $this -> input -> post ( 'user_column1' );
$data [ 'user_column2' ] = $this -> input -> post ( 'user_column2' );
$data [ 'user_column3' ] = $this -> input -> post ( 'user_column3' );
$data [ 'user_column4' ] = $this -> input -> post ( 'user_column4' );
2021-05-07 06:03:25 +00:00
$data [ 'user_column4' ] = $this -> input -> post ( 'user_column4' );
$data [ 'user_column5' ] = $this -> input -> post ( 'user_column5' );
2022-07-03 09:39:05 +00:00
$data [ 'user_show_profile_image' ] = $this -> input -> post ( 'user_show_profile_image' );
2022-11-24 23:22:31 +00:00
$data [ 'user_previous_qsl_type' ] = $this -> input -> post ( 'user_previous_qsl_type' );
2023-01-27 16:24:48 +00:00
$data [ 'user_amsat_status_upload' ] = $this -> input -> post ( 'user_amsat_status_upload' );
2023-07-06 08:17:20 +00:00
$data [ 'user_mastodon_url' ] = $this -> input -> post ( 'user_mastodon_url' );
2023-10-16 20:39:33 +00:00
$data [ 'user_default_band' ] = $this -> input -> post ( 'user_default_band' );
2023-12-08 07:17:01 +00:00
$data [ 'user_default_confirmation' ] = ( $this -> input -> post ( 'user_default_confirmation_qsl' ) !== null ? 'Q' : '' ) . ( $this -> input -> post ( 'user_default_confirmation_lotw' ) !== null ? 'L' : '' ) . ( $this -> input -> post ( 'user_default_confirmation_eqsl' ) !== null ? 'E' : '' ) . ( $this -> input -> post ( 'user_default_confirmation_qrz' ) !== null ? 'Z' : '' );
2023-11-01 13:24:13 +00:00
$data [ 'user_qso_end_times' ] = $this -> input -> post ( 'user_qso_end_times' );
2023-11-04 17:31:46 +00:00
$data [ 'user_quicklog' ] = $this -> input -> post ( 'user_quicklog' );
2023-11-05 11:29:59 +00:00
$data [ 'user_quicklog_enter' ] = $this -> input -> post ( 'user_quicklog_enter' );
2023-08-02 06:34:12 +00:00
$data [ 'language' ] = $this -> input -> post ( 'language' );
2023-08-03 12:59:02 +00:00
$data [ 'user_winkey' ] = $this -> input -> post ( 'user_winkey' );
2011-11-04 17:32:03 +00:00
$this -> load -> view ( 'user/edit' );
2019-01-09 15:18:46 +00:00
$this -> load -> view ( 'interface_assets/footer' );
2011-08-18 00:31:15 +00:00
}
2011-08-19 16:12:13 +00:00
}
2011-08-19 19:33:37 +00:00
function profile () {
$this -> load -> model ( 'user_model' );
2023-07-14 11:00:39 +00:00
if ( ! $this -> user_model -> authorize ( 2 )) { $this -> session -> set_flashdata ( 'notice' , 'You\'re not allowed to do that!' ); redirect ( 'dashboard' ); }
2011-08-19 19:33:37 +00:00
$query = $this -> user_model -> get_by_id ( $this -> session -> userdata ( 'user_id' ));
2011-11-22 22:10:02 +00:00
$q = $query -> row ();
$data [ 'page_title' ] = " Profile " ;
$data [ 'user_name' ] = $q -> user_name ;
$data [ 'user_type' ] = $q -> user_type ;
$data [ 'user_email' ] = $q -> user_email ;
$data [ 'user_firstname' ] = $q -> user_firstname ;
$data [ 'user_lastname' ] = $q -> user_lastname ;
$data [ 'user_callsign' ] = $q -> user_callsign ;
$data [ 'user_locator' ] = $q -> user_locator ;
2011-11-04 17:32:03 +00:00
2019-01-09 15:18:46 +00:00
$this -> load -> view ( 'interface_assets/header' , $data );
2011-11-04 17:32:03 +00:00
$this -> load -> view ( 'user/profile' );
2019-01-09 15:18:46 +00:00
$this -> load -> view ( 'interface_assets/footer' );
2011-08-19 19:33:37 +00:00
}
2011-08-19 16:12:13 +00:00
function delete () {
$this -> load -> model ( 'user_model' );
if ( ! $this -> user_model -> authorize ( 99 )) { $this -> session -> set_flashdata ( 'notice' , 'You\'re not allowed to do that!' ); redirect ( 'dashboard' ); }
$query = $this -> user_model -> get_by_id ( $this -> uri -> segment ( 3 ));
$this -> load -> library ( 'form_validation' );
$this -> form_validation -> set_rules ( 'id' , 'user_id' , 'required' );
$data = $query -> row ();
if ( $this -> form_validation -> run () == FALSE )
{
2011-11-04 17:32:03 +00:00
2019-01-09 15:18:46 +00:00
$this -> load -> view ( 'interface_assets/header' , $data );
2011-11-04 17:32:03 +00:00
$this -> load -> view ( 'user/delete' );
2019-01-09 15:18:46 +00:00
$this -> load -> view ( 'interface_assets/footer' );
2011-08-19 16:12:13 +00:00
}
2011-08-18 00:31:15 +00:00
else
{
2011-08-19 16:12:13 +00:00
if ( $this -> user_model -> delete ( $data -> user_id ))
{
$this -> session -> set_flashdata ( 'notice' , 'User deleted' );
redirect ( 'user' );
} else {
$this -> session -> set_flashdata ( 'notice' , '<b>Database error:</b> Could not delete user!' );
redirect ( 'user' );
}
2011-08-18 00:31:15 +00:00
}
}
function login () {
2020-05-12 18:01:38 +00:00
// Check our version and run any migrations
$this -> load -> library ( 'Migration' );
2021-02-26 09:37:43 +00:00
$this -> migration -> current ();
2011-08-18 00:31:15 +00:00
$this -> load -> model ( 'user_model' );
2019-10-05 18:28:20 +00:00
$query = $this -> user_model -> get ( $this -> input -> post ( 'user_name' , true ));
2011-08-18 00:31:15 +00:00
$this -> load -> library ( 'form_validation' );
$this -> form_validation -> set_rules ( 'user_name' , 'Username' , 'required' );
$this -> form_validation -> set_rules ( 'user_password' , 'Password' , 'required' );
2013-03-24 21:42:36 +00:00
$data [ 'user' ] = $query -> row ();
2011-11-04 17:32:03 +00:00
2023-08-02 06:34:12 +00:00
if ( $this -> form_validation -> run () == FALSE ) {
2013-03-24 21:31:45 +00:00
$data [ 'page_title' ] = " Login " ;
2021-11-08 15:22:17 +00:00
$this -> load -> view ( 'interface_assets/mini_header' , $data );
2011-11-04 17:32:03 +00:00
$this -> load -> view ( 'user/login' );
2019-07-08 18:42:03 +00:00
$this -> load -> view ( 'interface_assets/footer' );
2023-08-02 06:34:12 +00:00
} else {
2011-08-18 00:31:15 +00:00
if ( $this -> user_model -> login () == 1 ) {
$this -> session -> set_flashdata ( 'notice' , 'User logged in' );
2013-03-24 21:42:36 +00:00
$this -> user_model -> update_session ( $data [ 'user' ] -> user_id );
2023-08-02 06:34:12 +00:00
$cookie = array (
'name' => 'language' ,
'value' => $data [ 'user' ] -> language ,
2023-08-02 06:37:56 +00:00
'expire' => time () + 1000 ,
'secure' => FALSE
2023-08-02 06:34:12 +00:00
);
$this -> input -> set_cookie ( $cookie );
2011-08-18 00:31:15 +00:00
redirect ( 'dashboard' );
} else {
2013-03-24 21:31:45 +00:00
$this -> session -> set_flashdata ( 'error' , 'Incorrect username or password!' );
2011-08-18 00:31:15 +00:00
redirect ( 'user/login' );
}
}
}
function logout () {
$this -> load -> model ( 'user_model' );
$user_name = $this -> session -> userdata ( 'user_name' );
$this -> user_model -> clear_session ();
$this -> session -> set_flashdata ( 'notice' , 'User ' . $user_name . ' logged out.' );
redirect ( 'dashboard' );
}
2022-01-18 15:29:22 +00:00
/**
* Function : forgot_password
2023-08-02 06:34:12 +00:00
*
2022-01-18 15:29:22 +00:00
* Allows users to input an email address and a password will be sent to that address .
2023-08-02 06:34:12 +00:00
*
2022-01-18 15:29:22 +00:00
*/
function forgot_password () {
$this -> load -> helper ( array ( 'form' , 'url' ));
$this -> load -> library ( 'form_validation' );
$this -> form_validation -> set_rules ( 'email' , 'Email' , 'required' );
if ( $this -> form_validation -> run () == FALSE )
{
$data [ 'page_title' ] = " Forgot Password " ;
$this -> load -> view ( 'interface_assets/mini_header' , $data );
$this -> load -> view ( 'user/forgot_password' );
$this -> load -> view ( 'interface_assets/footer' );
}
else
{
// Check email address exists
$this -> load -> model ( 'user_model' );
2023-08-02 06:34:12 +00:00
2022-01-18 15:29:22 +00:00
$check_email = $this -> user_model -> check_email_address ( $this -> input -> post ( 'email' , true ));
if ( $check_email == TRUE ) {
// Generate password reset code 50 characters long
$this -> load -> helper ( 'string' );
$reset_code = random_string ( 'alnum' , 50 );
$this -> user_model -> set_password_reset_code ( $this -> input -> post ( 'email' , true ), $reset_code );
2023-08-02 06:34:12 +00:00
2022-01-18 15:29:22 +00:00
// Send email with reset code
$this -> data [ 'reset_code' ] = $reset_code ;
$this -> load -> library ( 'email' );
2022-01-18 16:14:22 +00:00
2022-01-19 14:26:36 +00:00
if ( $this -> optionslib -> get_option ( 'emailProtocol' ) == " smtp " ) {
$config = Array (
'protocol' => $this -> optionslib -> get_option ( 'emailProtocol' ),
2023-11-21 09:22:14 +00:00
'smtp_crypto' => $this -> optionslib -> get_option ( 'smtpEncryption' ),
2022-01-19 14:26:36 +00:00
'smtp_host' => $this -> optionslib -> get_option ( 'smtpHost' ),
'smtp_port' => $this -> optionslib -> get_option ( 'smtpPort' ),
'smtp_user' => $this -> optionslib -> get_option ( 'smtpUsername' ),
'smtp_pass' => $this -> optionslib -> get_option ( 'smtpPassword' ),
2023-11-22 13:51:45 +00:00
'crlf' => " \r \n " ,
'newline' => " \r \n "
2022-01-19 14:26:36 +00:00
);
$this -> email -> initialize ( $config );
}
2022-01-18 15:29:22 +00:00
$message = $this -> load -> view ( 'email/forgot_password' , $this -> data , TRUE );
2023-06-17 07:03:00 +00:00
$this -> email -> from ( $this -> optionslib -> get_option ( 'emailAddress' ), $this -> optionslib -> get_option ( 'emailSenderName' ));
2022-01-18 15:29:22 +00:00
$this -> email -> to ( $this -> input -> post ( 'email' , true ));
$this -> email -> subject ( 'Cloudlog Account Password Reset' );
$this -> email -> message ( $message );
2022-01-19 14:26:36 +00:00
if ( ! $this -> email -> send ())
{
// Redirect to login page with message
$this -> session -> set_flashdata ( 'warning' , 'Email settings are incorrect.' );
redirect ( 'user/login' );
} else {
// Redirect to login page with message
$this -> session -> set_flashdata ( 'notice' , 'Password Reset Processed.' );
redirect ( 'user/login' );
}
2022-01-18 15:29:22 +00:00
} else {
// No account found just return to login page
$this -> session -> set_flashdata ( 'notice' , 'Password Reset Processed.' );
redirect ( 'user/login' );
}
}
}
2022-01-18 16:14:22 +00:00
function reset_password ( $reset_code = NULL )
{
$data [ 'reset_code' ] = $reset_code ;
if ( $reset_code != NULL ) {
$this -> load -> helper ( array ( 'form' , 'url' ));
$this -> load -> library ( 'form_validation' );
2023-08-02 06:34:12 +00:00
2022-01-18 16:14:22 +00:00
$this -> form_validation -> set_rules ( 'password' , 'Password' , 'required' );
$this -> form_validation -> set_rules ( 'password_confirm' , 'Password Confirmation' , 'required|matches[password]' );
2023-08-02 06:34:12 +00:00
2022-01-18 16:14:22 +00:00
if ( $this -> form_validation -> run () == FALSE )
{
$data [ 'page_title' ] = " Reset Password " ;
$this -> load -> view ( 'interface_assets/mini_header' , $data );
$this -> load -> view ( 'user/reset_password' );
$this -> load -> view ( 'interface_assets/footer' );
}
else
{
// Lets reset the password!
$this -> load -> model ( 'user_model' );
2023-08-02 06:34:12 +00:00
2022-01-18 16:14:22 +00:00
$this -> user_model -> reset_password ( $this -> input -> post ( 'password' , true ), $reset_code );
$this -> session -> set_flashdata ( 'notice' , 'Password Reset.' );
redirect ( 'user/login' );
}
} else {
redirect ( 'user/login' );
}
}
2022-10-27 13:18:50 +00:00
function check_locator ( $grid ) {
$grid = $this -> input -> post ( 'user_locator' );
// Allow empty locator
if ( preg_match ( '/^$/' , $grid )) return true ;
// Allow 6-digit locator
if ( preg_match ( '/^[A-Ra-r]{2}[0-9]{2}[A-Za-z]{2}$/' , $grid )) return true ;
// Allow 4-digit locator
else if ( preg_match ( '/^[A-Ra-r]{2}[0-9]{2}$/' , $grid )) return true ;
// Allow 4-digit grid line
else if ( preg_match ( '/^[A-Ra-r]{2}[0-9]{2},[A-Ra-r]{2}[0-9]{2}$/' , $grid )) return true ;
// Allow 4-digit grid corner
else if ( preg_match ( '/^[A-Ra-r]{2}[0-9]{2},[A-Ra-r]{2}[0-9]{2},[A-Ra-r]{2}[0-9]{2},[A-Ra-r]{2}[0-9]{2}$/' , $grid )) return true ;
// Allow 2-digit locator
else if ( preg_match ( '/^[A-Ra-r]{2}$/' , $grid )) return true ;
// Allow 8-digit locator
else if ( preg_match ( '/^[A-Ra-r]{2}[0-9]{2}[A-Za-z]{2}[0-9]{2}$/' , $grid )) return true ;
else {
$this -> form_validation -> set_message ( 'check_locator' , 'Please check value for grid locator (' . strtoupper ( $grid ) . ').' );
return false ;
}
}
2022-04-04 11:17:33 +00:00
}