diff options
| author | Joe Carstairs <me@joeac.net> | 2026-08-13 16:33:51 +0100 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2026-08-13 16:33:51 +0100 |
| commit | 62e6bab910297aa15d76eb735ce3dd9b5417e26e (patch) | |
| tree | a98b5fb2c2663e08c21475b1092ccec395e2d87e /http/php | |
| parent | f9272fdf3ea23070583c944b110a7b8f16c5a4ff (diff) | |
remove website/capsule content
Diffstat (limited to 'http/php')
| -rw-r--r-- | http/php/config.php | 62 | ||||
| -rw-r--r-- | http/php/db.php | 205 | ||||
| -rw-r--r-- | http/php/mail.php | 35 |
3 files changed, 0 insertions, 302 deletions
diff --git a/http/php/config.php b/http/php/config.php deleted file mode 100644 index cfe91d3..0000000 --- a/http/php/config.php +++ /dev/null @@ -1,62 +0,0 @@ -<?php namespace JoeacNet\Http\Config; - -define("CONFIG", parse_ini_file(dirname(__FILE__, 2) . "/config.ini")); - -function maxDailyEmails(): int|null -{ - $maxDailyEmails = CONFIG["MAX_DAILY_EMAILS"]; - if (!is_numeric($maxDailyEmails)) { - return null; - } - return $maxDailyEmails; -} - -function contactMailbox(): string|null -{ - return (string) CONFIG["CONTACT_MAILBOX"]; -} - -function contactMailboxName(): string|null -{ - return (string) CONFIG["CONTACT_MAILBOX_NAME"]; -} - -function localSmtpFrom(): string|null -{ - return (string) CONFIG["LOCAL_SMTP_FROM"]; -} - -function localSmtpFromName(): string|null -{ - return (string) CONFIG["LOCAL_SMTP_FROM_NAME"]; -} - -function localSmtpHost(): string|null -{ - return (string) CONFIG["LOCAL_SMTP_HOST"]; -} - -function localSmtpPort(): string|null -{ - return (string) CONFIG["LOCAL_SMTP_PORT"]; -} - -function localSmtpUser(): string|null -{ - return (string) CONFIG["LOCAL_SMTP_USER"]; -} - -function localSmtpPass(): string|null -{ - return (string) CONFIG["LOCAL_SMTP_PASSWORD"]; -} - -function dbScheme(): string|null -{ - return (string) CONFIG["DB_SCHEME"]; -} - -function dbPath(): string|null -{ - return (string) CONFIG["DB_PATH"]; -} diff --git a/http/php/db.php b/http/php/db.php deleted file mode 100644 index a60d6c4..0000000 --- a/http/php/db.php +++ /dev/null @@ -1,205 +0,0 @@ -<?php namespace JoeacNet\Http\Db; - -use JoeacNet\Http\Config; - -use PDO; - -require_once __DIR__ . "/config.php"; - -function connectDb(): PDO -{ - $pdo = new PDO(Config\dbScheme() . ":" . Config\dbPath()); - $pdo = createTables($pdo); - return $pdo; -} - -function createTables(PDO $pdo): PDO -{ - $pdo->exec( - <<<SQL - CREATE TABLE IF NOT EXISTS otp ( - userId TEXT NOT NULL, - value TEXT NOT NULL, - createdAtUnixSecs INTEGER NOT NULL, - validUntilUnixSecs INTEGER NOT NULL - ); - SQL - , - ); - - $pdo->exec( - <<<SQL - CREATE TABLE IF NOT EXISTS send_email_token ( - userId TEXT NOT NULL, - value TEXT NOT NULL, - createdAtUnixSecs INTEGER NOT NULL, - validUntilUnixSecs INTEGER NOT NULL - ); - SQL - , - ); - - $pdo->exec( - <<<SQL - CREATE TABLE IF NOT EXISTS sent_emails ( - messageId TEXT NOT NULL, - sentAtUnixSecs INTEGER NOT NULL - ); - SQL - , - ); - - return $pdo; -} - -function countEmailsSentLast24Hours(PDO $db): int -{ - $twentyFourHoursAgo = time() - 24 * 60 * 60; - return (int) $db - ->query( - <<<SQL - SELECT COUNT(*) as count - FROM sent_emails - WHERE sentAtUnixSecs >= $twentyFourHoursAgo; - SQL - , - ) - ->fetchColumn(0); -} - -function insertSendEmailToken(PDO $db, string $userId, string $token) -{ - $createdAtUnixSecs = time(); - $validUntilUnixSecs = $createdAtUnixSecs + 60; - $db - ->prepare( - <<<SQL - INSERT - INTO send_email_token - (userId, value, createdAtUnixSecs, validUntilUnixSecs) - VALUES - (:userId, :token, :createdAtUnixSecs, :validUntilUnixSecs); - SQL - , - ) - ->execute([ - "userId" => $userId, - "token" => $token, - "createdAtUnixSecs" => $createdAtUnixSecs, - "validUntilUnixSecs" => $validUntilUnixSecs, - ]); -} - -function isTokenValid(PDO $db, string $userId, string $token): int -{ - $now = time(); - $stmt = $db->prepare( - <<<SQL - SELECT COUNT(*) AS count - FROM send_email_token - WHERE userId = :userId - AND value = :token - AND validUntilUnixSecs >= :validUntilUnixSecs; - SQL - , - ); - $stmt->execute([ - "userId" => $userId, - "token" => $token, - "validUntilUnixSecs" => $now, - ]); - $validTokenCount = (int) $stmt->fetchColumn(0); - return $validTokenCount > 0; -} - -function deleteAllTokensForUser(PDO $db, string $userId) -{ - $db - ->prepare( - <<<SQL - DELETE - FROM send_email_token - WHERE userId = :userId; - SQL - , - ) - ->execute(["userId" => $userId]); -} - -function deleteAllOtpsForUser(PDO $db, string $userId) -{ - $db - ->prepare( - <<<SQL - DELETE - FROM otp - WHERE userId = :userId; - SQL - , - ) - ->execute(["userId" => $userId]); -} - -function recordSentEmail(PDO $db, string $messageId) -{ - $now = time(); - $stmt = $db->prepare( - <<<SQL - INSERT - INTO sent_emails - (messageId, sentAtUnixSecs) - VALUES - (:messageId, :now); - SQL - , - ); - $stmt->execute(["messageId" => $messageId, "now" => $now]); -} - -function insertOtp(PDO $db, string $userId, string $otp) -{ - $createdAtUnixSecs = time(); - $validUntilUnixSecs = $createdAtUnixSecs + 60 * 5; - $db - ->prepare( - <<<SQL - INSERT - INTO otp - (userId, value, createdAtUnixSecs, validUntilUnixSecs) - VALUES - (:userId, :otp, :createdAtUnixSecs, :validUntilUnixSecs) - SQL - , - ) - ->execute([ - "userId" => $userId, - "otp" => $otp, - "createdAtUnixSecs" => $createdAtUnixSecs, - "validUntilUnixSecs" => $validUntilUnixSecs, - ]); -} - -function isOtpCorrect( - PDO $db, - string $userId, - string $guess, - int $leniencySecs, -): bool { - $stmt = $db->prepare( - <<<SQL - SELECT - COUNT(*) as count - FROM otp - WHERE userId = :userId - AND value = :guess - AND validUntilUnixSecs >= :validUntilUnixSecs - SQL - , - ); - $stmt->execute([ - "userId" => $userId, - "guess" => $guess, - "validUntilUnixSecs" => time() - $leniencySecs, - ]); - return $stmt->fetchColumn(0); -} diff --git a/http/php/mail.php b/http/php/mail.php deleted file mode 100644 index d9c4125..0000000 --- a/http/php/mail.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php namespace JoeacNet\Http\Mail; - -use PHPMailer\PHPMailer\PHPMailer; - -use JoeacNet\Http\Config; - -require_once __DIR__ . "/../vendor/autoload.php"; - -function sendEmail( - string $toEmail, - string $toName, - string $subject, - string $body, - string $replyToEmail = null, - string $replyToName = null, -): string { - $mail = new PHPMailer(); - $mail->isSMTP(); - $mail->Host = Config\localSmtpHost(); - $mail->Port = Config\localSmtpPort(); - $mail->SMTPAuth = true; - $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; - $mail->Username = Config\localSmtpUser(); - $mail->Password = Config\localSmtpPass(); - $mail->setFrom(Config\localSmtpFrom(), Config\localSmtpFromName()); - if (!is_null($replyToEmail)) { - $mail->addReplyTo($replyToEmail, $replyToName); - } - $mail->addAddress($toEmail, $toName); - $mail->isHTML(false); - $mail->Subject = "joeac.net: $subject"; - $mail->Body = "$body"; - $mail->send(); - return $mail->getLastMessageID(); -} |
