From 50fe0d87d7e95dfd3a8d4dcb211de9d88b129b58 Mon Sep 17 00:00:00 2001 From: lyn Date: Mon, 13 Apr 2026 13:25:35 +0000 Subject: [PATCH] Fix can_write: add COALESCE to handle NULL from LEFT JOIN --- git-hangman-lab/scripts/list-projs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/git-hangman-lab/scripts/list-projs b/git-hangman-lab/scripts/list-projs index fe95b79..9799393 100755 --- a/git-hangman-lab/scripts/list-projs +++ b/git-hangman-lab/scripts/list-projs @@ -21,12 +21,12 @@ SELECT r.name, u.name as owner, r.is_private, OR r.is_private = 0 OR a.user_id = (SELECT id FROM user WHERE lower_name = LOWER('$USERNAME')) COLLATE utf8mb4_unicode_ci OR EXISTS (SELECT 1 FROM team_user tu WHERE tu.uid = (SELECT id FROM user WHERE lower_name = LOWER('$USERNAME')) COLLATE utf8mb4_unicode_ci)) as can_see, - (r.owner_id = (SELECT id FROM user WHERE lower_name = LOWER('$USERNAME')) COLLATE utf8mb4_unicode_ci + COALESCE((r.owner_id = (SELECT id FROM user WHERE lower_name = LOWER('$USERNAME')) COLLATE utf8mb4_unicode_ci OR a.user_id = (SELECT id FROM user WHERE lower_name = LOWER('$USERNAME')) COLLATE utf8mb4_unicode_ci OR EXISTS (SELECT 1 FROM team_user tu JOIN team t ON t.id = tu.team_id WHERE tu.uid = (SELECT id FROM user WHERE lower_name = LOWER('$USERNAME')) COLLATE utf8mb4_unicode_ci AND (t.includes_all_repositories = 1 - OR EXISTS (SELECT 1 FROM team_repo tr WHERE tr.team_id = t.id AND tr.repo_id = r.id)))) as can_write + OR EXISTS (SELECT 1 FROM team_repo tr WHERE tr.team_id = t.id AND tr.repo_id = r.id)))), 0) as can_write FROM repository r JOIN user u ON r.owner_id = u.id LEFT JOIN access a ON a.repo_id = r.id AND a.user_id = (SELECT id FROM user WHERE lower_name = LOWER('$USERNAME')) COLLATE utf8mb4_unicode_ci