Add all code files from IDE
This commit is contained in:
103
source/dbtools/Application.php
Normal file
103
source/dbtools/Application.php
Normal file
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
|
||||
class Application
|
||||
{
|
||||
private $database = [];
|
||||
|
||||
private $db;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$config = new Config();
|
||||
|
||||
$this->database['username'] = $config['core']['database']['username'];
|
||||
$this->database['password'] = $config['core']['database']['password'];
|
||||
$this->database['hostname'] = $config['core']['database']['hostname'];
|
||||
$this->database['dbname'] = $config['core']['database']['dbname'];
|
||||
|
||||
$this->db = instDB();
|
||||
|
||||
}
|
||||
|
||||
protected function instDB()
|
||||
{
|
||||
|
||||
return \ParagonIE\EasyDB\Factory::create(
|
||||
'mysql:host=' . $this->database['hostname'] . ';dbname=' . $this->database['dbname'],
|
||||
$this->database['username'],
|
||||
$this->database['password']
|
||||
);
|
||||
}
|
||||
//
|
||||
public function Exists($Table, $IDRowColumnName, $SearchValue)
|
||||
{
|
||||
$exists = $db->cell(
|
||||
"SELECT count(ID) FROM $Table WHERE $IDRowColumnName = ?",
|
||||
$SearhValue
|
||||
);
|
||||
|
||||
// Query might not return what we're looking for, an integer. Use vardump if otherwise.
|
||||
return ($exists == 1) ? true : false;
|
||||
}
|
||||
|
||||
public function adminExists($AdminID)
|
||||
{
|
||||
$this->Exists("Administrators", "ID", $ID);
|
||||
}
|
||||
|
||||
|
||||
public function addAdministrator($Username, $Name, $Email, $Password, $KeyID)
|
||||
{
|
||||
$this->db->insert('Administrators', [
|
||||
'AdministratorName' => $Name,
|
||||
'AdministratorUsername' => $Username,
|
||||
'AdministratorEmail' => $Email,
|
||||
'AdministratorPassword' => $Password
|
||||
]);
|
||||
}
|
||||
|
||||
public function listAdminsByName($AdminUsername)
|
||||
{
|
||||
$Admin = $this->db->row(
|
||||
"SELECT * FROM Administrators WHERE Username = ?",
|
||||
$Username
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
public function addKey($AdminID, $Keyname)
|
||||
{
|
||||
$key = password_hash(openssl_random_pseudo_bytes(32), PASSWORD_BCYPT);
|
||||
|
||||
$this->db->insert('APIKeys', [
|
||||
'AdminID' => $AdminID,
|
||||
'Keyname' => $Keyname,
|
||||
'Keytext' => $key
|
||||
]);
|
||||
|
||||
return $key;
|
||||
|
||||
}
|
||||
|
||||
public function ApiKeyExists($AdminID)
|
||||
{
|
||||
$this->Exists("APIKeys", "AdminID", $AdminID);
|
||||
|
||||
}
|
||||
|
||||
public function ApiKeyToAdminId($Key)
|
||||
{
|
||||
$apiKey = $this->db->row(
|
||||
"SELECT * FROM APIKeys WHERE Keytext = ?",
|
||||
$Key
|
||||
);
|
||||
|
||||
// Expecting an array. Var dump if else
|
||||
if ($apiKey == null && !is_array($apiKey))
|
||||
{
|
||||
throw new LogicException("Illegal data from DB: ApiKeyToAdminId");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
Reference in New Issue
Block a user