From 1af6b91342f8e8ee61eccf6673b5e0db6d4e7002 Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Sat, 10 May 2025 22:55:31 +0500 Subject: feat: badges table --- database.sql | 11 ++++++++++- public/users.php | 7 +++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/database.sql b/database.sql index e995320..36beec8 100644 --- a/database.sql +++ b/database.sql @@ -81,13 +81,19 @@ CREATE TABLE IF NOT EXISTS reports ( response_message TEXT ); +CREATE TABLE IF NOT EXISTS badges ( + id CHAR(32) NOT NULL PRIMARY KEY DEFAULT REPLACE(UUID(),'-',''), + uploaded_by CHAR(32) REFERENCES users(id), + created_at TIMESTAMP NOT NULL DEFAULT UTC_TIMESTAMP +); + CREATE TABLE IF NOT EXISTS roles ( id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, priority INTEGER NOT NULL DEFAULT 0, name TEXT NOT NULL, foreground_color TEXT NOT NULL DEFAULT '000,000,000', background_color TEXT NOT NULL DEFAULT 'solid:255,255,255', - badge_id INTEGER NOT NULL DEFAULT 0, + badge_id CHAR(32) REFERENCES badges(id), -- permissions permission_upload BOOLEAN NOT NULL DEFAULT true, @@ -153,6 +159,8 @@ END$$ DELIMITER ; -- NULLIFY EMOTE AUTHORS ON USER DELETION +DROP TRIGGER IF EXISTS user_deletion; + DELIMITER $$ CREATE TRIGGER IF NOT EXISTS user_deletion BEFORE DELETE ON users @@ -161,6 +169,7 @@ BEGIN UPDATE emotes SET uploaded_by = NULL WHERE uploaded_by = OLD.id; UPDATE emote_set_contents SET added_by = NULL WHERE added_by = OLD.id; UPDATE reports SET resolved_by = NULL WHERE resolved_by = OLD.id; + UPDATE badges SET uploaded_by = NULL WHERE uploaded_by = OLD.id; END$$ DELIMITER ; diff --git a/public/users.php b/public/users.php index 1d803e7..3320451 100644 --- a/public/users.php +++ b/public/users.php @@ -344,7 +344,6 @@ if ($is_json) { sprintf("background: rgba(%s);", $bg_color_split[1]), @@ -353,11 +352,11 @@ if ($is_json) { default => "" }; - if (is_file($_SERVER["DOCUMENT_ROOT"] . $badge_path)): ?> + if ($role["badge_id"]): ?>
- <?php echo $role[" width="54" - height="54"> + /3x.webp" + alt="" width="54" height="54">

-- cgit v1.2.3