動いている

諏訪子 <suwako@076.moe>、2025-12-07 21:11
コミット 229cc48cb51c7a2d0cfaed048171fb9827af2a9b ・親 e18de43 ・ファイルを見る

4個のファイル、+37 -6

@@ -4,6 +4,7 @@
44 use Site\Controller\BlogPost;
55 use Site\Controller\Mods;
66 use Site\Lib\Activitypub;
7+use Site\Lib\Auth;
78 use Site\Lib\Markdown;
89 use Site\Lib\Template;
910
@@ -56,6 +57,11 @@
5657 $postsPerPage
5758 );
5859
60+ // ユーザー
61+ $auth = new Auth();
62+ $user = $auth->getLoggedInUser();
63+ $tmpl->assign('user', $user);
64+
5965 $tmpl->assign('currentPage', $page);
6066 $tmpl->assign('totalPages', $totalPages);
6167 $tmpl->assign('posts', $currentPosts);
@@ -103,6 +109,11 @@
103109 $article = $this->highlightTextContent($article, $keywords);
104110 $meta->title = $this->highlightTextContent($meta->title, $keywords);
105111 }
112+
113+ // ユーザー
114+ $auth = new Auth();
115+ $user = $auth->getLoggedInUser();
116+ $tmpl->assign('user', $user);
106117
107118 $tmpl->assign('pagetit', $pagetit);
108119 $tmpl->assign('curPage', 'blog');
@@ -2,6 +2,7 @@
22 namespace Site\Controller;
33
44 use Site\Controller\Mods;
5+use Site\Lib\Auth;
56 use Site\Lib\Template;
67
78 class Page {
@@ -13,6 +14,11 @@
1314 $pagetit = '新ページ';
1415 $description = 'PHPフレームワークについて';
1516
17+ // ユーザー
18+ $auth = new Auth();
19+ $user = $auth->getLoggedInUser();
20+ $tmpl->assign('user', $user);
21+
1622 $tmpl->assign('pagetit', $pagetit);
1723 $tmpl->assign('curPage', 'about');
1824 $tmpl->assign('custCss', false);
@@ -31,6 +37,11 @@
3137 $pagetit = 'モネロ(XMR)で支援♡';
3238 $description = 'テクニカル諏訪子ちゃんをモネロで支援♡';
3339
40+ // ユーザー
41+ $auth = new Auth();
42+ $user = $auth->getLoggedInUser();
43+ $tmpl->assign('user', $user);
44+
3445 $tmpl->assign('pagetit', $pagetit);
3546 $tmpl->assign('curPage', 'support');
3647 $tmpl->assign('custCss', true);
@@ -49,6 +60,11 @@
4960 $tmpl = new Template('/');
5061 $pagetit = '秘密のページ';
5162 $description = 'ケロ';
63+
64+ // ユーザー
65+ $auth = new Auth();
66+ $user = $auth->getLoggedInUser();
67+ $tmpl->assign('user', $user);
5268
5369 $tmpl->assign('pagetit', $pagetit);
5470 $tmpl->assign('curPage', 'support');
@@ -72,4 +72,4 @@
7272 throw new \Exception($e->getMessage());
7373 }
7474 }
75-}
75+}
@@ -85,7 +85,7 @@
8585 $token = bin2hex(random_bytes(64));
8686 $expire = time() + $this->tokenDuration;
8787 $newToken = [
88- 'token' => password_hash($token, $algo),
88+ 'token' => $token,
8989 'ip' => $ip,
9090 'createDate' => time(),
9191 'expDate' => $expire,
@@ -151,7 +151,7 @@
151151 return \Result::success();
152152 }
153153
154- public function isUserExist(?string $username): \Result {
154+ public function isUserExist(?string $username = null): \Result {
155155 if (null === $username) return \Result::Error('エラー:ユーザー名をご入力下さい。');
156156 $userList = scandir($this->dataDir);
157157
@@ -167,7 +167,7 @@
167167
168168 ////////////////////
169169
170- private function purgeOldTokens(\stdClass $userData): \stdClass {
170+ private function purgeOldTokens(\stdClass $userData): \stdClass|\Result {
171171 // 有効期限切れたトークンの削除
172172 $out = $userData;
173173 $out->tokens = array_filter($userData->tokens, function($t): bool {
@@ -196,8 +196,12 @@
196196 $path = "{$this->dataDir}{$f}";
197197 if (!is_file($path)) continue;
198198 $content = file_get_contents($path);
199- if (str_contains($content, $token)) {
199+ if ($token && str_contains($content, $token)) {
200200 $matches[] = $path;
201+ break;
202+ } else if (!$token && str_contains($content, '"username": "'.$username.'",')) {
203+ $matches[] = $path;
204+ break;
201205 }
202206 }
203207 $id = (int)preg_replace('/^(.*?)\.(.*?)$/', "$1", str_replace($this->dataDir, '', $matches[0]));
@@ -277,4 +281,4 @@
277281
278282 return \Result::Success();
279283 }
280-};
284+};