diff --git a/www/.php/credentials.sample.inc b/www/.php/credentials.sample.inc index 9246a39..766de78 100644 --- a/www/.php/credentials.sample.inc +++ b/www/.php/credentials.sample.inc @@ -2,6 +2,8 @@ global $GITEA_TOKEN; global $CREDENTIALS; global $CLIENT_CREDENTIALS; +global $CLIENT_ACCESS; +global $COMBINED_ACCESS; $GITEA_TOKEN = 'token'; @@ -14,3 +16,17 @@ $CLIENT_CREDENTIALS = [ 'username' => 'password', ], ]; + +$CLIENT_ACCESS = [ + 'WGX' => [ + 'name' => 'Winzergenossenschaft', + 'api' => 'https://example.com/elwig/api/v1', + ], +]; + +$COMBINED_ACCESS = [ + 'HOLDING' => [ + 'name' => 'Name', + 'clients' => ['WGX'], + ], +]; diff --git a/www/access.php b/www/access.php new file mode 100644 index 0000000..092a4fa --- /dev/null +++ b/www/access.php @@ -0,0 +1,100 @@ + $data) { + if ($name === $info[1] && (sizeof($info) === 2 || $info[2] === '')) { + $client = $data; + $client['id'] = $name; + } +} +foreach ($COMBINED_ACCESS as $name => $data) { + if ($name === $info[1] && (sizeof($info) === 2 || $info[2] === '')) { + $client = $data; + $client['id'] = $name; + } +} +if ($_SERVER['PATH_INFO'] !== "/$client[id]/") { + header('Status: 308'); + header("Location: /access/$client[id]/"); + exit(); +} else if ($client === null) { + header('Status: 404'); + header('Content-Length: 0'); + exit(); +} + +if ($client['api']) { + $data = "window.ELWIG_API = \"$client[api]\";"; +} else { + $data = "window.CLIENTS = {"; + $first = true; + foreach ($client['clients'] as $id) { + $c = $CLIENT_ACCESS[$id]; + if (!$first) $data .= ", "; + $data .= "\"$id\": {\"name\": \"$c[name]\", \"short\": \"$c[short]\", \"api\": \"$c[api]\"}"; + $first = false; + } + $data .= "};"; +} + +header('Content-Type: application/xhtml+xml; charset=UTF-8'); +echo "\n"; ?> + +
+ +