Files
cwsvJudo/homepage/participo/api/inc/bootstrap.php
marko f28fa7b51b WIP: bring participo back - consistent use of bootstrap - formatting -
phpstan level 0 error free - fixes for kyu subpage - move mams into
participo framework - remove legacy `lib/db.php` usage - add attributer
admin function - add newsposter - fixing apiKey creation
2025-11-19 12:24:38 +01:00

56 lines
1.6 KiB
PHP

<?php
/// @file common settings and includes for the participo api
/// - set locale to german
setlocale(LC_ALL, "de_DE@euro", "de_DE", "de", "ge");
/// - extend the include search path for
set_include_path(
implode(PATH_SEPARATOR, [
get_include_path(),
/// - user defined libs (e.g. participo)
"../lib",
/// - config files (we reuse the participo-wide configuration)
"..",
]),
);
/// - participo configuration
require_once "config/participo.php";
/// - data base credentials
require_once "local/cwsvJudo.php";
/// - since this is a rest api implementation we can assume each endpoint needs dbAccess
require_once "participoLib/dbConnector.php";
function authorize()
{
if (array_key_exists("HTTP_AUTHORIZATION", $_SERVER)) {
if (!empty($_SERVER["HTTP_AUTHORIZATION"])) {
$auth = explode(" ", $_SERVER["HTTP_AUTHORIZATION"]);
if ($auth[0] = "Basic") {
$allowKey = ApiKey::loadFromDb($auth[1]);
}
}
}
if (!$allowKey || !$allowKey->isValidFor("api")) {
die(
json_encode([
"success" => false,
"reason" => "apiKey not sufficient or no api key provided",
])
);
}
}
/// - initialize the database connection
dbConnector::setOptions([
"dbCharset" => $cwsvJudoConfig["dbCharset"] ?? "UTF-8",
"outCharset" => $cwsvJudoConfig["outCharset"] ?? "UTF-8",
]);
dbConnector::connect(
$cwsvJudoConfig["db"]["host"],
$cwsvJudoConfig["db"]["name"],
$cwsvJudoConfig["db"]["user"],
$cwsvJudoConfig["db"]["password"],
);