X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=blobdiff_plain;f=application%2Fcontrollers%2Fuser.php;fp=application%2Fcontrollers%2Fuser.php;h=96454bedb07672716840fbbd27664ddb387b755b;hb=9cc2a6602b47ac97d72efa51ec654418b252b4e4;hp=8c43cce8dbff73e5b90c6bf7a14a0c5796b8abc6;hpb=355535fa933c0fc2c1d63f0d4df3b1fc6e60d05c;p=living-lab-site.git diff --git a/application/controllers/user.php b/application/controllers/user.php index 8c43cce..96454be 100644 --- a/application/controllers/user.php +++ b/application/controllers/user.php @@ -23,6 +23,11 @@ class User extends CI_Controller { public function index() { } + + public function test($user_id = 1) + { + echo sha1('hQwCUEPQZcN8c4Es'); + } /** * Login a user and then redirect it to the last page which must be encoded @@ -38,7 +43,7 @@ class User extends CI_Controller { $this->form_validation->set_error_delimiters('', ''); - if ($this->form_validation->run('signin') === FALSE) + if ($this->form_validation->run('login') === FALSE) { $params = array( 'title' => $this->lang->line('ui_nav_menu_login') @@ -273,29 +278,60 @@ class User extends CI_Controller { public function activate($user_id, $method='', $activation_code='') { - $user_id = intval($user_id); + $user_id = intval($user_id); + $res_form_validation = FALSE; + + if ($method == 'code') + { + if (! $activation_code) + $res_form_validation = $this->form_validation->run('activate'); + // Activation code is provided in URL. + else + { + if ($this->_valid_activation_code($activation_code) + && $this->users_model->activate_account($user_id, + $activation_code)) + { + $this->session->set_flashdata('msg', sprintf( + $this->lang->line('user_msg_activated_account'), + site_url('user/login'))); + header('Location: '. site_url('message/info')); + return; + } + else + { + $this->session->set_flashdata('msg', + $this->lang->line('user_msg_wrong_activation_code')); + header('Location: '. site_url('message/error')); + return; + } + } + } + else if ($method == 'resend') + { + $res_form_validation = + $this->form_validation->run('resend_activation'); + } + $userdata = $this->users_model->get_userdata($user_id, 'email, a.activation_code'); $email = $userdata['email']; - //print_r($userdata['activation_code']); $activated_account = ($userdata['activation_code'] == NULL); + if ($activated_account) + { + $this->session->set_flashdata('msg', sprintf( + $this->lang->line('user_msg_activated_account'), + site_url('user/login'))); + header('Location: '. site_url('message/info')); + return; + } + $this->load->library('form_validation'); $this->form_validation->set_error_delimiters('', ''); - $res_form_validation = FALSE; - if ($method == 'code') - { - $res_form_validation = $this->form_validation->run('activate'); - } - else if ($method == 'resend') - { - $res_form_validation = - $this->form_validation->run('resend_activation'); - } - if ($res_form_validation === FALSE) { $params = array( @@ -312,19 +348,12 @@ class User extends CI_Controller { $this->load->view('html_begin', $this->html_head_params); $this->load->view('header', array()); - if (! $activated_account) - { - $main_params['content'] = - $this->load->view('user/activate_view', - array('user_id'=> $user_id, 'email'=> $userdata['email']), - TRUE); - } - else - { - $main_params['content'] = - $this->load->view('user/activated_account_view', - NULL, TRUE); - } + // Show form + $main_params['content'] = + $this->load->view('user/activate_view', + array( 'user_id'=> $user_id, + 'email'=> $userdata['email']), + TRUE); $main_params['side'] = $this->load->view('side_default', NULL, TRUE); $this->load->view('main', $main_params); @@ -338,16 +367,71 @@ class User extends CI_Controller { { // Redirect to a message which tells the user that the // activation was successful. - header('Location: '. site_url("user/activate/$user_id")); + $this->session->set_flashdata('msg', sprintf( + $this->lang->line('user_msg_activated_account'), + site_url('user/login'))); + header('Location: '. site_url('message/info')); + return; } else if ($method == 'resend') { - // Redirect to home page - header('Location: '. site_url()); + // Redirect to resent message + $this->session->set_flashdata('msg', sprintf( + $this->lang->line('user_msg_activation_resent'), + $this->input->post('email'))); + header('Location: '. site_url('message/info')); + return; } } } + public function recover_password() + { + $this->load->library('form_validation'); + + $this->form_validation->set_error_delimiters('', + ''); + + if ($this->form_validation->run('recover_password') === FALSE) + { + $params = array( 'title' => + $this->lang->line( + 'user_title_password_recovery') + .' – ' + . $this->config->item('site_name'), + //'metas' => array('description'=>'') + ); + $this->load->library('html_head_params', $params); + + // ** + // ** LOADING VIEWS + // ** + $this->load->view('html_begin', $this->html_head_params); + $this->load->view('header', array('selected_menu' => + 'recover_password')); + + $main_params['content'] = $this->load->view( + 'user/recover_password_view', array(), + TRUE); + + $main_params['side'] = $this->load->view('side_default', NULL, TRUE); + $this->load->view('main', $main_params); + + $this->load->view('footer'); + $this->load->view('html_end'); + } + else + { + // Redirect to resent message + $this->session->set_flashdata('msg', sprintf( + $this->lang->line('user_msg_password_recovery_email_sent'), + $this->input->post('username'), + $this->input->post('email'))); + header('Location: '. site_url('message/info')); + return; + } + } + public function _update_session_userdata($data) { foreach ($data as $key=> $val) @@ -457,7 +541,46 @@ class User extends CI_Controller { public function _do_resend_activation($email) { - return FALSE; + $user_id = $this->input->post('user-id'); + if ($user_id === FALSE) + return FALSE; + $user_id = intval($user_id); + + $this->users_model->set_userdata($user_id, + array('email'=> $email)); + + return $this->users_model->send_activation_email($user_id, $email); + } + + public function _username_exists($username) + { + $userdata = $this->users_model->get_userdata($username); + + if (! $userdata) + return FALSE; + + return TRUE; + } + + public function _internal_account($username) + { + $userdata = $this->users_model->get_userdata($username, 'auth_src'); + if (! $userdata) + return FALSE; + + if ($userdata['auth_src'] != 'internal') + return FALSE; + + return TRUE; + } + + public function _do_recover_password($username) + { + $email = $this->input->post('email'); + if (! $email) + return FALSE; + + return $this->users_model->recover_password($username, $email); } }