178 lines
5.0 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');
2024-04-24 13:20:52 +07:00
// $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,
// ];
// }
2024-04-24 13:20:52 +07:00
// $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);
// }
// mikael.zakaria.37@gmail.com
public function login() {
if ($this->request->getMethod() === 'POST') {
$data = [
'email' => $this->request->getVar('email'),
'password' => $this->request->getVar('password'),
'rememberme'=> $this->request->getVar('rememberme')
2024-04-24 13:20:52 +07:00
];
// RULES VALIDATION
$rules = [
'email' => 'required|valid_email',
'password' => 'required'
2024-04-24 13:20:52 +07:00
];
if (! $this->validate($rules)) {
return view('auth_login', [
'validation' => $this->validator,
'password' => $data['password'],
'rememberme' => $data['rememberme'],
'email' => $data['email'] // biar tetap terisi
]);
}
// CARI USER
$db = \Config\Database::connect();
$builder = $db->table('users');
$builder->select('userid, firstname, lastname, initial, userposid, level, password');
$builder->where('email_1', $data['email']);
$user = $builder->get()->getRow();
if ($user && password_verify($data['password'], $user->password)) {
// SET SESSION
$sessionData = [
'userid' => $user->userid,
'firstname' => $user->firstname,
'initial' => $user->initial,
'userposid' => $user->userposid,
'level' => $user->level,
'email' => $data['email'],
'isLoggedIn'=> true
];
session()->set($sessionData);
// REMEMBER ME (hanya email)
if ($data['rememberme']) {
$time = 60*60*24*30; // 30 hari
set_cookie('email', $data['email'], $time);
set_cookie('rememberme', true, $time);
2024-04-24 13:20:52 +07:00
} else {
delete_cookie('email');
delete_cookie('rememberme');
2024-04-24 13:20:52 +07:00
}
2024-04-24 13:20:52 +07:00
return redirect()->to('/');
}
// JIKA PASSWORD SALAH
session()->setFlashdata('loginError', 'Email atau password salah.');
return view('auth_login', [
'password' => $data['password'],
'rememberme' => $data['rememberme'],
'email' => $data['email']
]);
2024-04-24 13:20:52 +07:00
}
// AUTO-FILL DARI COOKIE
$data['email'] = get_cookie('email');
2024-04-24 13:20:52 +07:00
$data['rememberme'] = get_cookie('rememberme');
return view('auth_login', $data);
2024-04-24 13:20:52 +07:00
}
2024-04-24 13:20:52 +07:00
public function logout() {
session()->destroy();
return redirect()->to('/auth/login');;
}
public function setPass() {
if ($this->request->getMethod() === 'POST') {
2024-04-24 13:20:52 +07:00
$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');
}
}