212 lines
6.7 KiB
PHP
212 lines
6.7 KiB
PHP
<?php defined('BASEPATH') or exit('No direct script access allowed');
|
|
|
|
/**
|
|
* AMS
|
|
*
|
|
* @package HMVC
|
|
* @author Venba
|
|
* @copyright 2022 Venba
|
|
* @license https://venbainfotech.com/licenses/MIT MIT License
|
|
* @link <URI> (description)
|
|
* @version GIT: $Id$
|
|
* @since Version 0.0.1
|
|
* @filesource
|
|
*
|
|
*/
|
|
|
|
class Auth extends MY_Controller
|
|
{
|
|
/**
|
|
* [__construct description]
|
|
*
|
|
* @method __construct
|
|
*/
|
|
public function __construct()
|
|
{
|
|
// To inherit directly the attributes of the parent class.
|
|
parent::__construct();
|
|
### Syntax : $this->load->model('Model Path' , 'Alias name');
|
|
### The second parameter (optional) is used to call the method.
|
|
$this->load->model('Auth_model','auth_model');
|
|
$this->load->model('MY_Model','MY_Model');
|
|
}
|
|
|
|
|
|
/**
|
|
* [index description]
|
|
*
|
|
* @method index
|
|
*
|
|
* @return [type] [description]
|
|
*/
|
|
public function index()
|
|
{
|
|
if(check_auth()){
|
|
redirect('Dashboard');
|
|
}else{
|
|
$this->layout->load_view('Auth/login');
|
|
}
|
|
}
|
|
|
|
public function authendicate()
|
|
{
|
|
$user = $this->auth_model->validate_user();
|
|
$business = $this->auth_model->validateBusiness($user->business_id);
|
|
|
|
if ($user->business_id !== '0' && empty($business)) {
|
|
$this->session->set_flashdata('msg', "Business Deactivated Contact Administrator");
|
|
redirect('login');
|
|
}
|
|
if (empty($user)) {
|
|
$this->session->set_flashdata('msg', "username not avaiable");
|
|
redirect('login');
|
|
}
|
|
if (!empty($user) && $user->is_active == 0) {
|
|
$this->session->set_flashdata('msg', "deactivate user");
|
|
redirect('login');
|
|
}
|
|
// if (!empty($user)) {
|
|
// if ($user->is_active == 0) {
|
|
// $this->session->set_flashdata('msg', $user);
|
|
// redirect('login');
|
|
// }
|
|
// else{
|
|
// $this->session->set_flashdata('msg', $user);
|
|
// redirect('login');
|
|
// }
|
|
// }
|
|
|
|
|
|
// if (!empty($user) && $user->status == 0) {
|
|
// // account pending
|
|
// echo json_encode(array('st'=>2));
|
|
// exit();
|
|
// }
|
|
// if (!empty($user) && $user->status == 2) {
|
|
// // account suspend
|
|
// echo json_encode(array('st'=>3));
|
|
// exit();
|
|
// }
|
|
|
|
|
|
|
|
// if ($user->role == 'user') {
|
|
// $diff = date_difference($user->created_at);
|
|
// if (!empty($user) && $user->email_verified == 0 && $this->settings->enable_email_verify == 1 && $diff < 2) {
|
|
// // email verify
|
|
// echo json_encode(array('st'=>4));
|
|
// exit();
|
|
// }
|
|
// }
|
|
|
|
|
|
// if ($user->role == 'subadmin' || $user->role == 'editor' || $user->role == 'viewer') {
|
|
// $user_id = $user->parent_id;
|
|
// }else{
|
|
// $user_id = $user->id;
|
|
// }
|
|
|
|
// if valid
|
|
if(password_verify($this->input->post('password'), $user->password))
|
|
{
|
|
$data = array(
|
|
'id' => $user->id,
|
|
'name' => $user->name,
|
|
//'thumb' => $user->thumb,
|
|
'email' =>$user->email,
|
|
'role' =>$user->role,
|
|
'action_permit' =>$user->action_permit,
|
|
'business_id' =>$user->business_id,
|
|
'logged_in' => TRUE
|
|
);
|
|
$data = $this->security->xss_clean($data);
|
|
$this->session->set_userdata($data);
|
|
redirect('Dashboard');
|
|
}
|
|
// pass the value 1 when the username or password is wrong
|
|
$this->session->set_flashdata('msg',"password doesn't match");
|
|
redirect('login');
|
|
}
|
|
|
|
public function logout()
|
|
{
|
|
$this->auth_model->logout();
|
|
redirect('login');
|
|
}
|
|
|
|
public function lost_your_password()
|
|
{
|
|
$this->layout->load_view("Auth/otp_verification");
|
|
}
|
|
|
|
public function sendMail(){
|
|
// otp generator
|
|
$otp = rand(100000, 999999);
|
|
$data['otp'] = $otp;
|
|
$mail = $this->input->get('email');
|
|
$where = 'email';
|
|
$user = $this->auth_model->validateUserForOtp($mail, $where);
|
|
|
|
if (empty($user)) {
|
|
$data['csrf_hash'] = $this->security->get_csrf_hash();
|
|
$data['status'] = "failed";
|
|
echo json_encode($data);
|
|
}
|
|
else{
|
|
$data['csrf_hash'] = $this->security->get_csrf_hash();
|
|
$data['status'] = "success";
|
|
$data['id'] = $user->id;
|
|
$data['email'] = $mail;
|
|
|
|
$id = $user->id;
|
|
$table="users";
|
|
$datas['otp'] = $otp;
|
|
$userData = $this->MY_Model->edit_option($datas, $id, $table);
|
|
echo json_encode($data);
|
|
}
|
|
}
|
|
|
|
public function verify_otp(){
|
|
|
|
$id = $this->input->post('id');
|
|
$email = $this->input->post('email');
|
|
$where = 'id';
|
|
$user_entered_otp = $this->input->post('otp');
|
|
$user = $this->auth_model->validateUserForOtp($id, $where);
|
|
|
|
|
|
if ($user->otp == $user_entered_otp)
|
|
{
|
|
$data['generate_otp'] = $generate_otp;
|
|
$data['user_entered_otp'] = $user_entered_otp;
|
|
$data['csrf_hash'] = $this->security->get_csrf_hash();
|
|
$data['status'] = "success";
|
|
$data['id'] = $id;
|
|
$data['email'] = $email;
|
|
$id = $id;
|
|
$table = "users";
|
|
$datas['otp'] = '';
|
|
$userData = $this->MY_Model->edit_option($datas, $id, $table);
|
|
$this->layout->load_view('Auth/change_password_form', $data);
|
|
}
|
|
else
|
|
{
|
|
$data['csrf_hash'] = $this->security->get_csrf_hash();
|
|
$data['status'] = "failed";
|
|
$data['id'] = $id;
|
|
$data['email'] = $email;
|
|
$this->layout->load_view("Auth/otp_verification", $data);
|
|
}
|
|
}
|
|
|
|
|
|
public function change_password()
|
|
{
|
|
$id = $this->input->post('id');
|
|
$data['password'] = hash_password($this->input->post('password'));
|
|
$table = "users";
|
|
$userData = $this->MY_Model->edit_option($data, $id, $table);
|
|
redirect('login');
|
|
}
|
|
}
|