Dev SSO: Tables, SAML
This commit is contained in:
@@ -4,8 +4,12 @@ namespace Core\Configuration;
|
||||
|
||||
use Core\API\Request;
|
||||
use Core\Driver\Logger\Logger;
|
||||
use Core\Driver\SQL\Column\IntColumn;
|
||||
use Core\Driver\SQL\Query\CreateTable;
|
||||
use Core\Driver\SQL\SQL;
|
||||
use Core\Driver\SQL\Type\CurrentColumn;
|
||||
use Core\Driver\SQL\Type\CurrentTable;
|
||||
use Core\Driver\SQL\Type\Trigger;
|
||||
use Core\Objects\DatabaseEntity\Controller\DatabaseEntity;
|
||||
use PHPUnit\Util\Exception;
|
||||
|
||||
@@ -45,24 +49,11 @@ class CreateDatabase {
|
||||
->primaryKey("method")
|
||||
->addBool("is_core", false);
|
||||
|
||||
self::loadEntityLog($sql, $queries);
|
||||
self::loadDefaultACL($sql, $queries);
|
||||
self::loadPatches($sql, $queries);
|
||||
|
||||
return $queries;
|
||||
}
|
||||
|
||||
private static function loadPatches(SQL $sql, array &$queries): void {
|
||||
$patchFiles = array_merge(
|
||||
glob('Core/Configuration/Patch/*.php'),
|
||||
glob('Site/Configuration/Patch/*.php')
|
||||
);
|
||||
|
||||
sort($patchFiles);
|
||||
foreach ($patchFiles as $file) {
|
||||
@include_once $file;
|
||||
}
|
||||
}
|
||||
|
||||
private static function getCreatedTables(SQL $sql, array $queries): ?array {
|
||||
$createdTables = $sql->listTables();
|
||||
|
||||
@@ -184,4 +175,47 @@ class CreateDatabase {
|
||||
$queries[] = $query;
|
||||
}
|
||||
}
|
||||
|
||||
private static function loadEntityLog(SQL $sql, array &$queries) {
|
||||
$queries[] = $sql->createTable("EntityLog")
|
||||
->addInt("entity_id")
|
||||
->addString("table_name")
|
||||
->addDateTime("last_modified", false, $sql->now())
|
||||
->addInt("lifetime", false, 90);
|
||||
|
||||
$insertProcedure = $sql->createProcedure("InsertEntityLog")
|
||||
->param(new CurrentTable())
|
||||
->param(new IntColumn("id"))
|
||||
->param(new IntColumn("lifetime", false, 90))
|
||||
->returns(new Trigger())
|
||||
->exec(array(
|
||||
$sql->insert("EntityLog", ["entity_id", "table_name", "lifetime"])
|
||||
->addRow(new CurrentColumn("id"), new CurrentTable(), new CurrentColumn("lifetime"))
|
||||
));
|
||||
|
||||
$updateProcedure = $sql->createProcedure("UpdateEntityLog")
|
||||
->param(new CurrentTable())
|
||||
->param(new IntColumn("id"))
|
||||
->returns(new Trigger())
|
||||
->exec(array(
|
||||
$sql->update("EntityLog")
|
||||
->set("last_modified", $sql->now())
|
||||
->whereEq("entity_id", new CurrentColumn("id"))
|
||||
->whereEq("table_name", new CurrentTable())
|
||||
));
|
||||
|
||||
$deleteProcedure = $sql->createProcedure("DeleteEntityLog")
|
||||
->param(new CurrentTable())
|
||||
->param(new IntColumn("id"))
|
||||
->returns(new Trigger())
|
||||
->exec(array(
|
||||
$sql->delete("EntityLog")
|
||||
->whereEq("entity_id", new CurrentColumn("id"))
|
||||
->whereEq("table_name", new CurrentTable())
|
||||
));
|
||||
|
||||
$queries[] = $insertProcedure;
|
||||
$queries[] = $updateProcedure;
|
||||
$queries[] = $deleteProcedure;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user