HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.30
System: Linux iZj6c1151k3ad370bosnmsZ 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64
User: root (0)
PHP: 7.4.30
Disabled: NONE
Upload Files
File: /var/www/html/inventory.breadsecret.com/class/Controller/mainPage.php
<?php
namespace Controller;

use Responses\Message, Responses\Action, Responses\Data;
use Pages\Page;
use Database\Sql, Database\Listable;
use Routing\Route;
use Utility\WebSystem, Utility\QRCode;

class mainPage implements Listable {
	public function login($request) { return new Page('login'); }
	public function registration($request) { return new Page('user/registration'); }
	public function forgetpassword($request) { return new Page('user/forgetpassword'); }
	public function changepassword($request) { return new Page('user/changepassword'); }
	
	public function __call($name, $arguments) { 
		$request = $arguments[0];

		if (!user::checklogin()) return new Action('redirect', WebSystem::path(Route::getRouteByName('page.login')->path(), false, false));
		$page = str_replace('_', '/', $name);
		return new Page($page); 
	}

	public function extraProcess($listObj) {
		return $listObj;
	}

	public function main($request) {
		if (!user::checklogin()) return new Action('redirect', WebSystem::path(Route::getRouteByName('page.login')->path(), false, false));

		$userObj = unserialize($_SESSION['user']);

		return new Page('main');
		// System Admins Role
		/*
		if ($userObj->roleID == 1) {
			$stmDonatorAmt = Sql::select('team_donator')->setFieldValue('COALESCE(SUM(donatorAmount), 0) donateAmt')->where(['status', '=', 1])->prepare();
			$stmDonatorAmt->execute();
			$objDonatorAmt = $stmDonatorAmt->fetch();

			$stmTeamTotal = Sql::select('team')->setFieldValue('count(id) teamTotal')
				->where(['status', '=', 1])->where(['userID', '!=', 0])->prepare();
			$stmTeamTotal->execute();
			$objTeamTotal = $stmTeamTotal->fetch();

			$stmTeamHeadTotal = Sql::select(['team', 't'])->setFieldValue('count(tm.id) teamHeadTotal')
				->leftJoin(['teamMember', 'tm'], 't.id = tm.teamID')
				->where(['t.status', '=', 1])->where(['t.userID', '!=', 0])
				->where(['tm.status', '=', 1])
				->prepare();
			$stmTeamHeadTotal->execute();
			$objTeamHeadTotal = $stmTeamHeadTotal->fetch();
			

			return new Page('main', ['donateAmt'=>$objDonatorAmt['donateAmt'],
				'teamTotal'=>$objTeamTotal['teamTotal'], 'teamHeadTotal'=>$objTeamHeadTotal['teamHeadTotal']]);
		}

		// Users Role
		$teamObj = team::findByUserID($userObj->id);
		$teamObj->teamCategory = category::find($teamObj->categoryID);
		$teamObj->teamPeriod = period::find($teamObj->periodID);
		$stmTeamMember = Sql::select('team_member')->where(['teamID', '=', '?'])->order('roleID')->prepare();
		$stmTeamMember->setFetchMode(\PDO::FETCH_OBJ);
		$stmTeamMember->execute([$teamObj->id]);
		$stmTeamDonator = Sql::select('team_donator')->where(['teamID', '=', '?'])->where(['status', '=', 1])->prepare();
		$stmTeamDonator->setFetchMode(\PDO::FETCH_OBJ);
		$stmTeamDonator->execute([$teamObj->id]);

		$stmTxn = Sql::select('transaction')->where(['teamID', '=', '?'])->where(['status', '=', 1])->prepare();
		$stmTxn->setFetchMode(\PDO::FETCH_OBJ);
		$stmTxn->execute([$teamObj->id]);

		return new Page('user', ['teamObj'=>$teamObj, 'stmTM'=>$stmTeamMember, 'stmTD'=>$stmTeamDonator, 'stmTxn'=>$stmTxn]);
		*/
	}

	public function genQRCode($request) {
		if (!isset($request->get->code) || empty($request->get->code)) {
			return new Message('alert', 'Code is empty');
		}
		$enctype = $request->get->enctype ?? 'base64';

		$code = "";
		if ($enctype == 'base64') {
			$code = base64_decode($request->get->code);
		} else if ($enctype == 'text' || $enctype == 'string') {
			$code = $request->get->code;
		} else {
			return new Message('alert', 'No Encode Type');
		}

		$qrCode = new QRCode($code);

		header('Content-Type: image/png');
		header('Content-Length: '.strlen($qrCode));

		echo $qrCode;

		return null;
	}

}