<?php function getSubsystemByID(string $id) { global $subsystems; $subsystem = null; foreach ($subsystems as $ss) { if ($ss["source"] === $id) { $subsystem = $ss; } } return $subsystem; } require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/init.inc"; global $title; global $isLoggedIn; global $lang; global $pages; if (!isset($_GET['_']) || trim($_GET['_']) === "") header("Location: /?error=Invalid request") and die(); $parts = explode("/", $_GET['_']); array_shift($parts); array_shift($parts); $system = $parts[0]; $member = ($parts[1] ?? null) === "" ? null : $parts[1]; if ($system !== "cloudburst" && $system !== "raindrops") header("Location: /?error=Invalid system name: " . $system) and die(); $systemCommonName = $system === "cloudburst" ? "Cloudburst System" : "Raindrops System"; $systemID = $system === "cloudburst" ? "ynmuc" : "gdapd"; $subsystems = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/subsystems/$systemID.json"), true) ?? []; if ($member === null) { header("Location: /?error=Unsupported target: system") and die(); } else { $isSubsystem = false; $members = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/" . $systemID . "/members.json"), true); $memberData = null; $memberCommonName = null; $memberID = null; foreach ($members as $m) { if ($m['name'] === $member) { $memberData = $m; $memberCommonName = $m['display_name'] ?? $m['name']; $memberID = $m['id']; } } if ($memberData === null) { if (in_array($member, array_map(function ($i) { return $i["source"]; }, $subsystems))) { $isSubsystem = true; $subsystemID = $member; $subsystem = getSubsystemByID($subsystemID); $subsystemData = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/subsystems/$systemID-$subsystem[source].json"), true); $subsystemCommonName = $subsystemData["name"] ?? $subsystemID; require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/subsysedit.inc'; } else { header("Location: /?error=System member or subsystem not found") and die(); } } require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/edit-private.inc'; } exit;