<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class User extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->library("common_lib");
if($this->common_lib->get_route_action() != "verify_email"){
$this->common_lib->render_security();
}
$this->load->model('userm');
if($this->common_lib->get_session("sess_status",true) == "Pending" && $this->common_lib->get_route_action() != "account" && $this->common_lib->get_route_action() != "resend_verification_email" && $this->common_lib->get_route_action() != "logout" && $this->common_lib->get_route_action() != "resetpassword" && $this->common_lib->get_route_action() != "verify_email"){
redirect("user/account");
exit;
}
$this->load->model('commonm');
}
public function index(){
redirect("user/myaccount");
exit;
}
public function account(){
$data = array();
$data['inner_template'] = "user/account";
$this->load->view('layout/layout_main.php',$data);
}
public function profile(){
$data = array();
if($this->common_lib->run_profile_validation()){
$user_data = array();
$user_data = $this->common_lib->user_form_personal_fields();
$this->load->model('userm');
$this->userm->_up_profile($this->common_lib->get_login_id(),$user_data);
$this->common_lib->set_session(array("success-msg" => "Profile updated successfully"));
redirect("user/profile");
}else{
$this->common_lib->set_session(array("danger-msg" => validation_errors()));
}
$data = array();
$data['country_list'] = $this->commonm->get_all("countries",array(),array(),"country");
$data['user_profile'] = $this->common_lib->get_login_detail();
$data['inner_template'] = "user/profile";
$this->load->view('layout/layout_main.php',$data);
}
public function editdeliveryaddress(){
if($this->common_lib->run_shipping_validation()){
$user_data = array();
$user_data = $this->common_lib->user_form_shipping_fields();
$this->load->model('userm');
$this->userm->_up_profile($this->common_lib->get_login_id(),$user_data);
$this->common_lib->set_session(array("success-msg" => "Shipping Detail updated successfully"));
redirect("user/editdeliveryaddress");
}else{
$this->common_lib->set_session(array("danger-msg" => validation_errors()));
}
$data = array();
$this->load->model('commonm');
$data['country_list'] = $this->commonm->get_all("countries",array(),array(),"country");
$data['user_profile'] = $this->common_lib->get_login_detail();
$data['inner_template'] = "user/editdeliveryaddress";
$this->load->view('layout/layout_main.php',$data);
}
public function wishlist(){
$data = array();
$data['wishlist'] = $this->common_lib->get_user_wishlist();
$data['inner_template'] = "user/wishlist";
$this->load->view('layout/layout_main.php',$data);
}
public function user_exist($str){
return $this->common_lib->check_user_exist($str);
}
public function email_exist($str){
return $this->common_lib->check_email_exist($str);
}
public function check_password($str){
$this->load->model("userm");
$password = $this->common_lib->one_way_encrypt($str);
if($this->userm->_check_password($this->common_lib->get_login_id(),$password)){
return true;
}else{
$this->form_validation->set_message('check_password', '%s is wrong!');
return false;
}
}
public function resend_verification_email($username){
$username = $this->common_lib->get_session("sess_username",true);
$user_detail = $this->commonm->get_all("users",array("is_active" => "Pending","username" => $username));
if(count($user_detail) == 1){
$email_var = array();
$email_var['username'] = $username;
$email_var['password'] = "";
$email_var['verification_link'] = $this->common_lib->generate_verification_link($username);
$this->common_lib->send_registration_email($email_var,$user_detail[0]->email);
$this->common_lib->set_session(array("success-msg" => "Verification link send successfully. Please check your email"));
}else{
$this->common_lib->set_session(array("danger-msg" => "Verification link cannot be sent. Please try clicking \"Resend Verification Link\" button again"));
}
redirect("user/account");
exit;
}
public function verify_email($username,$security_code){
//$username = urldecode($this->common_lib->decode($username));
$user_detail = $this->commonm->get_all("users",array("username" => $username));
if(count($user_detail) == 1){
if($user_detail[0]->email_verified == 1){
$this->common_lib->set_session(array("info-msg" => "Your email is already verified. You will be able to login to your account after your account will be approved by our staff."));
}else{
$this->commonm->db_update(array("email_verified" => 1),"users","user_id",$user_detail[0]->user_id);
$this->common_lib->set_session(array("success-msg" => "Congratulation, Your email is verified successfully. You will be able to login to your account after your account will be approved by our staff."));
}
}else{
$this->common_lib->set_session(array("danger-msg" => "Verification link seems to be broken"));
}
$this->common_lib->do_logout();
redirect("user/login");
exit;
}
public function register(){
$data = array();
if($this->common_lib->run_register_validation(true,true)){
$user_data = array();
$username = $this->common_lib->get_post('rg_username',true);
$password = $this->common_lib->get_post('rg_password',true);
$password = $this->common_lib->one_way_encrypt($password);
$personal_fields = $this->common_lib->user_form_personal_fields();
$user_data['is_active'] = "Approved";
$user_data['username'] = $username;
$user_data['password'] = $password;
$user_data = array_merge($user_data,$personal_fields);
$this->load->model('userm');
$user_id = $this->userm->_insert($user_data);
$sdata = array(
'sess_username' => $this->common_lib->encode($username),
'sess_status' => $this->common_lib->encode("Approved"),
'sess_uid' => $this->common_lib->encode($user_id),
'sess_display_name' => $this->common_lib->encode($personal_fields['first_name']),
'sess_lastlogin' => $data['lastlogin'],
'sess_signature' => $this->common_lib->encode($user_id.$username)
);
$this->common_lib->set_session($sdata);
$email_var = array();
$email_var['username'] = $username;
$email_var['password'] = $this->common_lib->get_post('rg_password',true);
$email_var['verification_link'] = $this->common_lib->generate_verification_link($username);
$this->common_lib->send_registration_email($email_var,$personal_fields['email']);
$this->userm->_update($user_id, time());
redirect("user/account");
}else{
$this->common_lib->set_session(array("danger-msg" => validation_errors()));
}
$this->load->model('commonm');
$data['country_list'] = $this->commonm->get_all("countries",array(),array(),"country");
$data['inner_template'] = "user/register";
$this->load->view('layout/layout_main.php',$data);
}
public function logout(){
$this->common_lib->do_logout();
redirect("user/login");
exit;
}
public function login(){
$login_status = $this->common_lib->do_login();
$data = array();
$data['inner_template'] = "user/login";
$this->load->view('layout/layout_main.php',$data);
}
public function resetpassword($un,$token){
if($this->userm->_is_exists($un,"username")){
$this->form_validation->set_rules('rg_password', 'New Password', 'trim|required|min_length[5]|max_length[15]|matches[rg_cpassword]|xss_clean');
$this->form_validation->set_rules('rg_cpassword', 'New Confirm Password', 'trim|required|min_length[5]|max_length[15]|xss_clean');
if($this->form_validation->run()){
$un = $this->common_lib->get_post("un");
$user_data = array();
$user_detail = $this->commonm->get_all("users",array("username" => $un));
$password = $this->common_lib->get_post('rg_password',true);
$password = $this->common_lib->one_way_encrypt($password);
$user_data['password'] = $password;
$this->load->model('userm');
$this->userm->_up_profile($user_detail[0]->user_id,$user_data);
$this->common_lib->set_session(array("success-msg" => "Password reset successfully"));
redirect("user/login");
}else{
$this->common_lib->set_session(array("danger-msg" => validation_errors()));
}
}else{
$this->common_lib->set_session(array("danger-msg" => "Looks like password reset email has been broken. Please try to copy and paste reset link from email or choose forgot password option again."));
redirect("user/forgotpassword");
exit;
}
$data = array();
$data['un'] = $un;
$data['token'] = $token;
$data['inner_template'] = "user/resetpassword";
$this->load->view('layout/layout_main.php',$data);
}
public function forgotpassword(){
if($this->common_lib->run_forgot_password_validation()){
$email_address = $this->common_lib->get_post("email");
if($this->userm->_is_exists($email_address,"email")){
$user_detail = $this->commonm->get_all("users",array("email" => $email_address));
$this->common_lib->send_forgot_password($user_detail[0]->username,$email_address);
$this->common_lib->set_session(array("success-msg" => "<b>Thank you</b><br>We have send you an email that will allow you to change your password."));
}else{
$this->common_lib->set_session(array("danger-msg" => "This email address is not exist!"));
}
}else{
$this->common_lib->set_session(array("danger-msg" => validation_errors()));
}
$data = array();
$data['inner_template'] = "user/forgotpassword";
$this->load->view('layout/layout_main.php',$data);
}
public function changepassword(){
$this->form_validation->set_rules('rg_opassword', 'Old Password', 'trim|required|max_length[15]|xss_clean|callback_check_password');
$this->form_validation->set_rules('rg_password', 'New Password', 'trim|required|min_length[5]|max_length[15]|matches[rg_cpassword]|xss_clean');
$this->form_validation->set_rules('rg_cpassword', 'New Confirm Password', 'trim|required|min_length[5]|max_length[15]|xss_clean');
if($this->form_validation->run()){
$user_data = array();
$password = $this->common_lib->get_post('rg_password',true);
$password = $this->common_lib->one_way_encrypt($password);
$user_data['password'] = $password;
$this->load->model('userm');
$this->userm->_up_profile($this->common_lib->get_login_id(),$user_data);
$this->common_lib->set_session(array("success-msg" => "Password changed successfully"));
redirect("user/changepassword");
}else{
$data['form-error-msg'] = validation_errors();
}
$data = array();
$data['inner_template'] = "user/changepassword";
$this->load->view('layout/layout_main.php',$data);
}
public function orders(){
$data = array();
$data['order_list'] = $this->userm->get_customer_orders($this->common_lib->get_login_id());
$data['inner_template'] = "user/orders";
$this->load->view('layout/layout_main.php',$data);
}
public function order_detail($order_id){
$order_id = $this->common_lib->fSafeNum($order_id);
$data = array();
if(count($this->userm->get_valid_order($this->common_lib->get_login_id(),$order_id)) == 0){
$this->common_lib->set_session(array("danger-msg" => "Order not found!"));
redirect("user/orders");
exit;
}
$data['order_id'] = $order_id;
$data['order_detail'] = $this->common_lib->get_order_summary($order_id,true);
$data['inner_template'] = "user/order_detail";
$this->load->view('layout/layout_main.php',$data);
}
}
/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */
@KyuuKazami