diff --git a/.idea/php.xml b/.idea/php.xml index 40e05a1..b5023d4 100644 --- a/.idea/php.xml +++ b/.idea/php.xml @@ -1,5 +1,15 @@ + + + + + + @@ -17,9 +27,15 @@ + + + + \ No newline at end of file diff --git a/app/App.php b/app/App.php index 0e3fb49..d10c3e5 100644 --- a/app/App.php +++ b/app/App.php @@ -21,14 +21,14 @@ class App public static function getTemplate(): Engine { static $templates = new Engine(__DIR__ . '/../templates'); - $me = self::me(); - $isLogin = self::checkU(); + $me = static::me(); + $isLogin = static::checkU(); $templates->addData([ 'me' => $me, 'whoami' => "$me->username#$me->userDiscriminator", 'noStatus' => false, 'isLogin' => $isLogin, - 'isAllowed' => $isLogin && $me !== null && self::isAllowed($me->userId), + 'isAllowed' => $isLogin && $me !== null && static::isAllowed($me->userId), ]); return $templates; } @@ -40,10 +40,10 @@ class App public static function checkU(): bool { - $token = self::getU(); + $token = static::getU(); if ($token === null) return false; if ($token->timestamp + $token->expires_in < time()) return false; - return self::me() !== null; + return static::me() !== null; } public static function setU(Token $token): void @@ -80,7 +80,7 @@ class App public static function requireAuth(): void { - if (!self::checkU()) { + if (!static::checkU()) { header('location: /login.php'); http_response_code(302); exit; @@ -89,7 +89,7 @@ class App public static function requireNonAuth(): void { - if (self::checkU()) { + if (static::checkU()) { header('location: /'); http_response_code(302); exit; @@ -98,10 +98,10 @@ class App public static function requireAllowed(): void { - self::requireAuth(); - $me = self::me(); - if ($me === null || !self::isAllowed($me->userId)) { - self::template([ + static::requireAuth(); + $me = static::me(); + if ($me === null || !static::isAllowed($me->userId)) { + static::template([ 'title' => '您無權限使用本系統', 'body' => << @@ -117,7 +117,7 @@ HTML, { try { $token = Auth::getTokenByCode($code); - if ($token !== null) self::setU($token); + if ($token !== null) static::setU($token); } catch (Exception) { error_log('Failed to getTokenByCode.'); } @@ -126,7 +126,7 @@ HTML, public static function me(): ?Me { try { - $u = self::getU(); + $u = static::getU(); if ($u === null) return null; return Auth::getMe($u); } catch (Exception) { @@ -139,8 +139,8 @@ HTML, public static function template(array $params): void { $status = ''; - if (self::checkU() && !$params['no_status']) { - $me = self::me(); + if (static::checkU() && !$params['no_status']) { + $me = static::me(); $status = <<您已使用 $me->username#$me->userDiscriminator 登入,點選此處以登出系統。 HTML; @@ -181,13 +181,13 @@ HTML; public static function isAllowed(string $userId): bool { - return in_array($userId, self::allowedUsers); + return in_array($userId, static::allowedUsers); } #[NoReturn] public static function render(string $name, array $data = []): void { - $html = self::getTemplate()->render($name, $data); + $html = static::getTemplate()->render($name, $data); header('Content-Type: text/html; charset=utf-8'); header('Content-Length: ' . strlen($html)); diff --git a/app/Auth.php b/app/Auth.php index e982b89..b0d46d9 100644 --- a/app/Auth.php +++ b/app/Auth.php @@ -42,7 +42,7 @@ class Auth { $query_string = http_build_query([ 'client_id' => $_ENV['DISCORD_CLIENT_ID'], - 'redirect_uri' => self::DISCORD_REDIRECT_URI, + 'redirect_uri' => static::DISCORD_REDIRECT_URI, 'response_type' => 'code', 'scope' => 'identify', ]); @@ -60,7 +60,7 @@ class Auth 'client_secret' => $_ENV['DISCORD_CLIENT_SECRET'], 'grant_type' => 'authorization_code', 'code' => $code, - 'redirect_uri' => self::DISCORD_REDIRECT_URI, + 'redirect_uri' => static::DISCORD_REDIRECT_URI, ]), ], ]))); diff --git a/app/FileViewer.php b/app/FileViewer.php index e90b65b..11ee8f4 100644 --- a/app/FileViewer.php +++ b/app/FileViewer.php @@ -29,7 +29,7 @@ abstract class FileViewer $directory = static::directory(); $filename = "$directory/$file"; - if (!in_array($file, self::list()) || !file_exists($filename) || !is_file($filename)) return null; + if (!in_array($file, static::list()) || !file_exists($filename) || !is_file($filename)) return null; $extension = pathinfo($filename, PATHINFO_EXTENSION); $content = file_get_contents($filename);