99 lines
2.8 KiB
PHP
Raw Normal View History

2024-04-24 13:20:52 +07:00
<?php
namespace App\Controllers;
use CodeIgniter\Cookie\Cookie;
use DateTime;
helper('cookie');
class Auth extends BaseController {
public function login() {
if ($this->request->getMethod() === 'post') {
$data['email'] = $this->request->getVar('email');
$data['password'] = $this->request->getVar('password');
$data['rememberme'] = $this->request->getVar('rememberme');
$db = \Config\Database::connect();
$sql = "SELECT firstname, lastname, userid, initial, userposid, level FROM users WHERE email_1='".$data['email']."'";
$query = $db->query($sql);
$row = $query->getRow();
if(isset($row)) {
$userid = $row->userid;
$initial = $row->initial;
$level = $row->level;
$firstname = $row->firstname;
$userposid = $row->userposid;
$sessiondata = [
'email' => $data['email'],
'userid' => $userid,
'userposid' => $userposid,
'initial' => $initial,
'level' => $level,
'firstname' => $firstname,
];
}
$rules = [
'email' => 'required|valid_email',
'password' => 'required|validateLogin[email, password]'
];
$errors = [
'password' => [
'validateLogin' => 'Wrong password'
]
];
if($this->validate($rules,$errors)){
session()->set( $sessiondata );
if( isset($data['rememberme']) ) {
$time = 30*24*60*60;// 30days
set_cookie ("email", $data['email'], $time);
set_cookie ("password", $data['password'], $time);
set_cookie ("rememberme", $data['rememberme'], $time);
//echo "cookie set";
} else {
delete_cookie ("email");
delete_cookie ("password");
delete_cookie ("rememberme");
}
return redirect()->to('/');
} else {
$data['validation'] = $this->validator;
return view('auth_login',$data);
}
}
$data['email'] = get_cookie('email');
$data['password'] = get_cookie('password');
$data['rememberme'] = get_cookie('rememberme');
return view('auth_login',$data);
}
public function logout() {
session()->destroy();
return redirect()->to('/auth/login');;
}
public function setPass() {
if ($this->request->getMethod() === 'post') {
$data['email'] = $this->request->getVar('email');
$data['password'] = $this->request->getVar('password');
$data['passwordconf'] = $this->request->getVar('passwordconf');
$rules = [
'email' => 'required|valid_email',
'password' => 'required',
'passwordconf' => 'required|matches[password]'
];
if($this->validate($rules)){
$email = $data['email'];
$password = password_hash($data['password'],PASSWORD_DEFAULT);
$db = \Config\Database::connect();
$sql = "update users set password='$password' where email_1='$email'";
if($db->query($sql)) { return view('form_success'); }
else { return view('form_fail'); }
} else {
return view('auth_setPass',$data);
}
}
return view('auth_setPass');
}
}