- Public display
This commit is contained in:
+49
-1
@@ -4,9 +4,57 @@ declare(strict_types=1);
|
||||
date_default_timezone_set('America/New_York');
|
||||
|
||||
const APP_ROOT = __DIR__ . '/..';
|
||||
const CONFIG_DIR = APP_ROOT . '/config';
|
||||
const PUBLIC_ACCESS_CONFIG_PATH = CONFIG_DIR . '/public-access.json';
|
||||
const DATA_DIR = APP_ROOT . '/data';
|
||||
const DB_PATH = DATA_DIR . '/health_tracker.sqlite';
|
||||
|
||||
function public_access_config(): array
|
||||
{
|
||||
static $config = null;
|
||||
|
||||
if (is_array($config)) {
|
||||
return $config;
|
||||
}
|
||||
|
||||
$config = [
|
||||
'admin_area_enabled' => false,
|
||||
'tracker_area_enabled' => false,
|
||||
];
|
||||
|
||||
if (!is_file(PUBLIC_ACCESS_CONFIG_PATH)) {
|
||||
return $config;
|
||||
}
|
||||
|
||||
$json = json_decode((string) file_get_contents(PUBLIC_ACCESS_CONFIG_PATH), true);
|
||||
if (!is_array($json)) {
|
||||
return $config;
|
||||
}
|
||||
|
||||
foreach ($config as $key => $default) {
|
||||
if (array_key_exists($key, $json)) {
|
||||
$config[$key] = filter_var($json[$key], FILTER_VALIDATE_BOOLEAN);
|
||||
}
|
||||
}
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
function app_admin_area_enabled(): bool
|
||||
{
|
||||
return public_access_config()['admin_area_enabled'];
|
||||
}
|
||||
|
||||
function app_tracker_area_enabled(): bool
|
||||
{
|
||||
return public_access_config()['tracker_area_enabled'];
|
||||
}
|
||||
|
||||
function app_private_tools_enabled(): bool
|
||||
{
|
||||
return app_admin_area_enabled() || app_tracker_area_enabled();
|
||||
}
|
||||
|
||||
function app_db(): PDO
|
||||
{
|
||||
static $pdo = null;
|
||||
@@ -2698,7 +2746,7 @@ function state_payload(array $query): array
|
||||
}
|
||||
}
|
||||
$userId = (int) $currentUser['id'];
|
||||
$currentUserIsAdmin = is_admin($pdo, $userId);
|
||||
$currentUserIsAdmin = app_admin_area_enabled() && is_admin($pdo, $userId);
|
||||
|
||||
$exercises = db_all(
|
||||
$pdo,
|
||||
|
||||
Reference in New Issue
Block a user