171 lines
5.1 KiB
PHP
171 lines
5.1 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use App\Models\Login_model;
|
|
|
|
/**
|
|
* Class : Login (LoginController)
|
|
* Login class to control to authenticate user credentials and starts user's session.
|
|
* @author : Kishor
|
|
* @version : 1.1
|
|
* @since : 15 November 2016
|
|
* @example : Revised at 15th april 2024
|
|
*/
|
|
class Login extends BaseController
|
|
{
|
|
|
|
protected $login_model;
|
|
protected $session;
|
|
|
|
/**
|
|
* This is default constructor of the class
|
|
*/
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->login_model = new Login_model();
|
|
}
|
|
|
|
/**
|
|
* Index Page for this controller.
|
|
*/
|
|
public function index()
|
|
{
|
|
$isLoggedIn = session()->get('isLoggedIn');
|
|
if (!isset($isLoggedIn) || $isLoggedIn != TRUE) {
|
|
return view('login');
|
|
} else {
|
|
// redirect('/dashboard');
|
|
return redirect()->to('/dashboard');
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* This function used to check the user is logged in or not
|
|
*/
|
|
function isLoggedIn()
|
|
{
|
|
$isLoggedIn = session()->get('isLoggedIn');
|
|
if (!isset($isLoggedIn) || $isLoggedIn != TRUE) {
|
|
return view('login');
|
|
} else {
|
|
// return view('login');
|
|
return redirect()->to('/dashboard');
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* This function used to logged in user
|
|
*/
|
|
public function loginMe()
|
|
{
|
|
// return redirect()->to(site_url('/dashboard'));
|
|
|
|
helper(['form', 'url']);
|
|
|
|
$validationRules = [
|
|
'password' => 'required|max_length[32]'
|
|
];
|
|
|
|
if (!$this->validate($validationRules)) {
|
|
return redirect()->to(site_url('login'))->withInput();
|
|
}
|
|
|
|
$email = $this->request->getPost('email');
|
|
$password = $this->request->getPost('password');
|
|
|
|
$result = $this->login_model->loginMe($email, $password);
|
|
|
|
if (!empty($result)) {
|
|
foreach ($result as $res) {
|
|
log_message('error', '#####loggin_name : ' . $res->FirstName);
|
|
$sessionData = [
|
|
'userId' => $res->userId,
|
|
'role' => $res->roleId,
|
|
'roleText' => $res->role,
|
|
'name' => $res->FirstName,
|
|
'Designation' => $res->Designation,
|
|
'DEPCode' => $res->DEPCode,
|
|
'HeadDept' => $res->HeadDept,
|
|
'depaccess' => $this->login_model->Accessdep($res->EmpID),
|
|
'DepartmentName' => $res->DepartmentName,
|
|
'EmpID' => $res->EmpID,
|
|
'ProfilePic' => $res->ProfilePic,
|
|
'CompanyName' => $res->CompanyName,
|
|
'isLoggedIn' => true
|
|
];
|
|
|
|
session()->set($sessionData);
|
|
|
|
$role = $res->roleId;
|
|
$designation = $res->Designation;
|
|
$DEPCode = $res->DEPCode;
|
|
|
|
if ($DEPCode == SECURITY) {
|
|
return redirect()->to(site_url('/Addigr'));
|
|
} else {
|
|
return redirect()->to(site_url('/dashboard'));
|
|
}
|
|
}
|
|
} else {
|
|
session()->setFlashdata('error', 'Email or password mismatch');
|
|
return redirect()->to(site_url('login'));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* This function used to load forgot password view
|
|
*/
|
|
function forgotPassword()
|
|
{
|
|
view('forgotPassword');
|
|
}
|
|
|
|
|
|
/**
|
|
* To reset password of the user (without one time code)
|
|
*/
|
|
public function resetPasswordUser()
|
|
{
|
|
$mobileno = $this->request->getPost('phno');
|
|
$emailid = $this->request->getPost('email');
|
|
$result = $this->login_model->getuserid($mobileno, $emailid);
|
|
|
|
if (!empty($result)) {
|
|
|
|
$string = "abcde" . rand(100000, 999999) . "lmnxyz";
|
|
$string_shuffled = str_shuffle($string);
|
|
$passcode = substr($string_shuffled, 1, 6);
|
|
$password = "RESICO@" . $passcode;
|
|
|
|
$mobile = "91" . $result[0]->ContactNumber;
|
|
$msg = "Hi " . $result[0]->FirstName . ",
|
|
\n Your password has been reset successfully.
|
|
\n Please login with your new password '" . $password . "'";
|
|
|
|
$message = urlencode($msg);
|
|
|
|
$ch = curl_init();
|
|
curl_setopt($ch, CURLOPT_URL, "https://smsapi.24x7sms.com/api_2.0/SendSMS.aspx?APIKEY=xegCdYUIMf3&MobileNo=" . $mobile . "&SenderID=VNBAIT&Message=" . $message . "&ServiceName=PROMOTIONAL_HIGH");
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
|
|
$output = curl_exec($ch);
|
|
curl_close($ch);
|
|
|
|
$resetpassword = password_hash($password, PASSWORD_DEFAULT);
|
|
|
|
$updatepassword = $this->login_model->updatepassword($result[0]->userId, $resetpassword);
|
|
|
|
session()->setFlashdata('success', 'Password sent successfully. Please check your mobile.');
|
|
return redirect()->to('/loginMe');
|
|
} else {
|
|
session()->setFlashdata('error', 'This Mobile Number is not registered with us.');
|
|
return redirect()->to('/loginMe');
|
|
}
|
|
}
|
|
}
|