Initial Commit
This commit is contained in:
4
core/Configuration/.gitignore
vendored
Normal file
4
core/Configuration/.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
Mail\.class\.php
|
||||
JWT\.class\.php
|
||||
Database\.class\.php
|
||||
Google\.class\.php
|
||||
1
core/Configuration/.htaccess
Normal file
1
core/Configuration/.htaccess
Normal file
@@ -0,0 +1 @@
|
||||
DENY FROM ALL
|
||||
106
core/Configuration/Configuration.class.php
Normal file
106
core/Configuration/Configuration.class.php
Normal file
@@ -0,0 +1,106 @@
|
||||
<?php
|
||||
|
||||
namespace Configuration;
|
||||
|
||||
class Configuration {
|
||||
|
||||
private $database;
|
||||
private $mail;
|
||||
private $jwt;
|
||||
private $google;
|
||||
|
||||
function __construct() {
|
||||
}
|
||||
|
||||
public function load() {
|
||||
try {
|
||||
|
||||
$classes = array(
|
||||
\Configuration\Database::class => &$this->database,
|
||||
\Configuration\Mail::class => &$this->mail,
|
||||
\Configuration\JWT::class => &$this->jwt,
|
||||
\Configuration\Google::class => &$this->google,
|
||||
);
|
||||
|
||||
$success = true;
|
||||
foreach($classes as $class => &$ref) {
|
||||
$path = getClassPath($class);
|
||||
if(!file_exists($path)) {
|
||||
$success = false;
|
||||
} else {
|
||||
include_once $path;
|
||||
if(class_exists($class)) {
|
||||
$ref = new $class();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $success;
|
||||
} catch(\Error $e) {
|
||||
die($e);
|
||||
}
|
||||
}
|
||||
|
||||
public function getDatabase() { return $this->database; }
|
||||
public function getJWT() { return $this->jwt; }
|
||||
public function getMail() { return $this->mail; }
|
||||
|
||||
public function isFilePresent($className) {
|
||||
$path = getClassPath("\\Configuration\\$className");
|
||||
return file_exists($path);
|
||||
}
|
||||
|
||||
public function create($className, $data) {
|
||||
$path = getClassPath("\\Configuration\\$className");
|
||||
|
||||
if($data) {
|
||||
|
||||
// TODO: Generalize this...
|
||||
$superClass = get_class($data);
|
||||
$host = addslashes($data->getHost());
|
||||
$port = intval($data->getPort());
|
||||
$login = addslashes($data->getLogin());
|
||||
$password = addslashes($data->getPassword());
|
||||
|
||||
$properties = "";
|
||||
foreach($data->getProperties() as $key => $val) {
|
||||
$key = addslashes($key);
|
||||
$val = is_string($val) ? "'" . addslashes($val) . "'" : $val;
|
||||
$properties .= "\n\$this->setProperty('$key', $val);";
|
||||
}
|
||||
|
||||
$code = intendCode(
|
||||
"<?php
|
||||
|
||||
namespace Configuration;
|
||||
|
||||
class $className extends \\$superClass {
|
||||
|
||||
public function __construct() {
|
||||
parent::__construct('$host', $port, '$login', '$password');$properties
|
||||
}
|
||||
}
|
||||
|
||||
?>", false
|
||||
);
|
||||
} else {
|
||||
$code = intendCode(
|
||||
"<?php
|
||||
|
||||
?>", false);
|
||||
}
|
||||
|
||||
return file_put_contents($path, $code);
|
||||
}
|
||||
|
||||
public function delete($className) {
|
||||
$path = getClassPath("\\Configuration\\$className");
|
||||
if(file_exists($path)) {
|
||||
return unlink($path);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
?>
|
||||
59
core/Configuration/database.sql
Normal file
59
core/Configuration/database.sql
Normal file
@@ -0,0 +1,59 @@
|
||||
--
|
||||
-- API
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS User (
|
||||
`uid` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
||||
`email` VARCHAR(256) UNIQUE DEFAULT NULL,
|
||||
`name` VARCHAR(32) UNIQUE NOT NULL,
|
||||
`salt` varchar(16) NOT NULL,
|
||||
`password` varchar(64) NOT NULL,
|
||||
`uidLanguage` int(11) DEFAULT 1
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS UserInvitation (
|
||||
`email` VARCHAR(256) NOT NULL,
|
||||
`token` VARCHAR(36) UNIQUE NOT NULL,
|
||||
`valid_until` DATETIME NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `Group` (
|
||||
`gid` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
||||
`name` VARCHAR(32) NOT NULL
|
||||
);
|
||||
|
||||
INSERT INTO `Group` (gid, name) VALUES (1, "Default"), (2, "Administrator")
|
||||
ON DUPLICATE KEY UPDATE name=name;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS UserGroup (
|
||||
`uid` INTEGER NOT NULL,
|
||||
`gid` INTEGER NOT NULL,
|
||||
UNIQUE(`uid`, `gid`)
|
||||
);
|
||||
|
||||
CREATE TABLE Session IF NOT EXISTS (
|
||||
`uid` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
||||
`expires` timestamp NOT NULL,
|
||||
`uidUser` int(11) NOT NULL,
|
||||
`ipAddress` varchar(45) NOT NULL,
|
||||
`os` varchar(64) NOT NULL,
|
||||
`browser` varchar(64) NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ApiKey (
|
||||
`uid` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
||||
`uidUser` int(11) NOT NULL,
|
||||
`api_key` VARCHAR(64) NOT NULL,
|
||||
`valid_until` DATETIME NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS Language (
|
||||
`uid` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
||||
`code` VARCHAR(5) UNIQUE NOT NULL,
|
||||
`name` VARCHAR(32) UNIQUE NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ExternalSiteCache (
|
||||
`url` VARCHAR(256) PRIMARY KEY,
|
||||
`data` TEXT NOT NULL,
|
||||
`expires` TIMESTAMP DEFAULT NULL
|
||||
);
|
||||
Reference in New Issue
Block a user