access = new Access(); } public function index() { $posts = new Posts(); $posts->index(); } public function login() { if (Session::exists('userid')) { Session::flash('info', 'You already logged in'); Redirect::to('/'); } else { View::render('Access/login.html', [ 'token' => Token::generate() ]); } } public function register() { if (Session::exists('userid') && Session::get('privilage') == 1) { View::render('Access/registrasi.html', [ 'token' => Token::generate() ]); } else { throw new \Exception("Bad Request", 400); } } // Methods public function post($args = []) { foreach ($args as $value) { if ($value == '') { Session::flash('info', 'All data must not be empty'); Redirect::to('/'); die(); } } $table = 'user'; $date = new \DateTime(); $now = $date->format('Y-m-d'); $args['registered_at'] = $now; $salt = Hash::salt(); $password = Hash::make($args['password'], $salt); $args['salt'] = $salt; $args['password'] = $password; $args['full_name'] = htmlspecialchars($args['full_name']); $args['username'] = htmlspecialchars($args['username']); $data = $this->access->showAll(); foreach ($data as $users) { if ($args['username'] == $users['username']) { Session::flash('info', 'Username already exists'); Redirect::to('./register'); die(); } } $this->access->entry($table, $args); Redirect::to('/'); } public function put($args = []) { if ($user = $this->access->login($args)) { Session::put('userid', $user['id']); Session::put('username', $user['username']); Session::put('full_name', $user['full_name']); Session::put('privilage', $user['privilage']); $table = 'user'; $id = Session::get('userid'); if ($this->access->update($table, ['status' => 1], $id)) { $username = Session::get('username'); Session::flash('info', "$username logged in"); } } else { Session::flash('info', 'Invalid username/password'); } Redirect::to('/'); } public function logout() { $user = Session::get('userid'); $username = Session::get('username'); if ($this->access->logout($user)) { Session::flash('info', "$username has logged out"); Session::delete('userid'); Session::delete('username'); Session::delete('full_name'); Session::delete('privilage'); Redirect::to('/'); } } }