Files
php_task_1/application/controllers/Member/Member_register_controller.php
T
2022-06-30 05:46:02 -04:00

107 lines
3.5 KiB
PHP
Executable File

<?php defined('BASEPATH') || exit('No direct script access allowed');
include_once __DIR__ . '/../../services/User_service.php';
include_once 'Member_controller.php';
/*Powered By: Manaknightdigital Inc. https://manaknightdigital.com/ Year: 2021*/
/**
* Register Controller
* @copyright 2019 Manaknightdigital Inc.
* @link https://manaknightdigital.com
* @license Proprietary Software licensing
* @author Ryan Wong
*
*/
class Member_register_controller extends Manaknight_Controller
{
protected $_redirect = '/sell';
public $_valid_roles = [1];
public function __construct()
{
parent::__construct();
$this->_run_middlewares();
}
protected function _middleware()
{
return [
'affilate',
'maintenance'
];
}
public function index()
{
$this->load->model('user_model');
$this->load->model('refer_log_model');
$this->load->helper('cookie');
$this->load->model('credential_model');
$this->load->model('member_profile_model');
$service = new User_service($this->credential_model, $this->user_model, $this->member_profile_model);
$service->set_refer_log_model($this->refer_log_model);
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|is_unique[credential.email]');
$this->form_validation->set_rules('password', 'Password', 'trim|required');
$this->form_validation->set_rules('confirm_password', 'Confirm Password', 'trim|required|matches[password]');
$this->form_validation->set_rules('first_name', 'First Name', 'trim|required');
$this->form_validation->set_rules('last_name', 'Last Name', 'trim|required');
// $this->form_validation->set_rules('username', 'Username', 'trim|required|is_unique[member_profile.username]');
if ($this->form_validation->run() === FALSE)
{
echo $this->load->view('Member/Register', $this->_data, TRUE);
exit;
}
$email = $this->input->post('email');
$password = $this->input->post('password');
$first_name = $this->input->post('first_name');
$last_name = $this->input->post('last_name');
// $username = $this->input->post('username');
$username = $first_name;
// if($email == $username){
// $this->_data['error'] = 'Can not Use Email as Username';
// echo $this->load->view('Member/Register', $this->_data, TRUE);
// exit;
// }
$redirect = $service->get_redirect($this->input->cookie('redirect', TRUE), $this->_redirect);
$session = $this->get_session();
$refer = (isset($session['refer']) && strlen($session['refer']) > 0) ? $session['refer'] : '';
$this->db->trans_begin();
$created_user = $service->create($email, $password, $first_name, $last_name, $username, 1, $refer);
if (!$created_user)
{
$this->db->trans_rollback();
$this->_data['error'] = 'User creation failed. Please try again.';
echo $this->load->view('Member/Register', $this->_data, TRUE);
exit;
}
delete_cookie('redirect');
$credential = $this->credential_model->get_by_fields([
'email' => $email,
'type' => 'n'
]);
$this->db->trans_commit();
$this->set_session('credential_id', (int) $credential->id);
$this->set_session('user_id', (int) $created_user->id);
$this->set_session('email', (string) $created_user->email);
$this->set_session('role', (string) $created_user->role_id);
if(isset($_POST['return_url'] ) && $_POST['return_url'] =='buy'){
return $this->redirect('buy');
}
return $this->redirect($redirect);
}
}