This commit is contained in:
2022-11-28 13:24:51 +01:00
commit 5ec9cbd698
102 changed files with 6487 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
<?php
namespace App\Controllers\Auth;
use App\Controllers\BaseController;
use App\Models\UserModel;
class LoginController extends BaseController
{
public function showLoginForm()
{
helper(['form']);
echo view('auth/login');
}
public function login()
{
$email = $this->request->getVar('email');
$password = $this->request->getVar('password');
$user = new UserModel();
$data = $user->where('email', $email)->first();
if ($data) {
$pass = $data['password'];
$authenticatePassword = password_verify($password, $pass);
if ($authenticatePassword) {
$authSession = new SessionConroller();
$authSession->authorised($data);
return redirect()->route('/');
} else {
$session->setFlashdata('msg', 'Password is incorrect.');
return redirect()->back()->withInput();
}
} else {
$session->setFlashdata('msg', 'Email does not exist.');
return redirect()->back()->withInput();
}
}
public function logout()
{
$authSession = new SessionConroller();
$authSession->unauthorised();
return redirect()->route('/');
}
}

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Controllers\Auth;
use App\Controllers\BaseController;
class ProfileController extends BaseController
{
public function index()
{
echo view('auth/profile');
}
}

View File

@@ -0,0 +1,45 @@
<?php
namespace App\Controllers\Auth;
use App\Controllers\BaseController;
use App\Models\UserModel;
class RegisterController extends BaseController
{
public function showRegistrationForm()
{
helper(['form']);
$data = [];
echo view('auth/register', $data);
}
public function register()
{
helper(['form']);
$rules = [
'name' => 'required|min_length[2]|max_length[50]',
'email' => 'required|min_length[4]|max_length[100]|valid_email|is_unique[users.email]',
'password' => 'required|min_length[4]|max_length[50]',
'confirmpassword' => 'matches[password]'
];
if ($this->validate($rules)) {
$user = new userModel();
$data = [
'name' => $this->request->getVar('name'),
'email' => $this->request->getVar('email'),
'password' => password_hash($this->request->getVar('password'), PASSWORD_DEFAULT)
];
$user->save($data);
$authSession = new SessionConroller();
$authSession->authorised($data);
return redirect()->to('/');
} else {
$data['validation'] = $this->validator;
echo view('auth/register', $data);
}
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Controllers\Auth;
use App\Controllers\BaseController;
class SessionConroller extends BaseController
{
public function authorised($data)
{
$session = session();
$authData = [
'name' => $data['name'],
'email' => $data['email'],
'isLoggedIn' => true
];
$session->set($authData);
}
public function unauthorised()
{
$session = session();
$authData = ['isLoggedIn' => false];
$session->set($authData);
}
}