|
6 | 6 | require_once(__DIR__ . "/../../vendor/autoload.php"); |
7 | 7 |
|
8 | 8 | use Pdsinterop\PhpSolid\Middleware; |
9 | | - use Pdsinterop\PhpSolid\Server; |
10 | | - use Pdsinterop\PhpSolid\User; |
| 9 | + use Pdsinterop\PhpSolid\Api\SolidUserProfile; |
11 | 10 |
|
12 | 11 | $request = explode("?", $_SERVER['REQUEST_URI'], 2)[0]; |
13 | 12 | $method = $_SERVER['REQUEST_METHOD']; |
|
18 | 17 | case "GET": |
19 | 18 | switch ($request) { |
20 | 19 | case "/": |
21 | | - $serverName = $_SERVER['SERVER_NAME']; |
22 | | - [$idPart, $rest] = explode(".", $serverName, 2); |
23 | | - $userId = preg_replace("/^id-/", "", $idPart); |
24 | | - |
25 | | - $user = User::getUserById($userId); |
26 | | - if (!isset($user['storage']) || !$user['storage']) { |
27 | | - $user['storage'] = "https://storage-" . $userId . "." . BASEDOMAIN . "/"; |
28 | | - } |
29 | | - if (is_array($user['storage'])) { // empty array is already handled |
30 | | - $user['storage'] = array_values($user['storage'])[0]; // FIXME: Handle multiple storage pods |
31 | | - } |
32 | | - if (!isset($user['issuer'])) { |
33 | | - $user['issuer'] = BASEURL; |
34 | | - } |
35 | | - |
36 | | - $profile = <<<"EOF" |
37 | | -@prefix : <#>. |
38 | | -@prefix acl: <http://www.w3.org/ns/auth/acl#>. |
39 | | -@prefix foaf: <http://xmlns.com/foaf/0.1/>. |
40 | | -@prefix ldp: <http://www.w3.org/ns/ldp#>. |
41 | | -@prefix schema: <http://schema.org/>. |
42 | | -@prefix solid: <http://www.w3.org/ns/solid/terms#>. |
43 | | -@prefix space: <http://www.w3.org/ns/pim/space#>. |
44 | | -@prefix vcard: <http://www.w3.org/2006/vcard/ns#>. |
45 | | -@prefix pro: <./>. |
46 | | -@prefix inbox: <{$user['storage']}inbox/>. |
47 | | -
|
48 | | -<> a foaf:PersonalProfileDocument; foaf:maker :me; foaf:primaryTopic :me. |
49 | | -
|
50 | | -:me |
51 | | - a schema:Person, foaf:Person; |
52 | | - ldp:inbox inbox:; |
53 | | - space:preferencesFile <{$user['storage']}settings/prefs.ttl>; |
54 | | - space:storage <{$user['storage']}>; |
55 | | - solid:account <{$user['storage']}>; |
56 | | - solid:oidcIssuer <{$user['issuer']}>; |
57 | | - solid:privateTypeIndex <{$user['storage']}settings/privateTypeIndex.ttl>; |
58 | | - solid:publicTypeIndex <{$user['storage']}settings/publicTypeIndex.ttl>. |
59 | | -EOF; |
60 | | - header('Content-Type: text/turtle'); |
61 | | - echo $profile; |
| 20 | + SolidUserProfile::respondToProfile(); |
62 | 21 | break; |
63 | 22 | } |
64 | 23 | break; |
|
0 commit comments