Bug: repos query on browse frontend ignores project is_public #58
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/pal-e-api#58
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Plan
plan-2026-02-28-knowledge-system-consolidation— Phase 4 (Privacy Audit)Repo
pal-e-docs— the repo where the code change happensUser Story
As an unauthenticated visitor browsing pal-e-docs
I need repos belonging to private projects to be hidden
So that internal infrastructure repos are not leaked on the public browse frontend
Acceptance Criteria
When I visit
/browse/or/browse/reposwithout logging inThen I only see repos whose parent project has
is_public = trueWhen I visit
/browse/or/browse/reposwhile logged inThen I see all repos regardless of project visibility
Additional Information
src/pal_e_docs/routes/frontend.py:repos = db.query(Repo)...— no public filter applied/browse/repos): same unfiltereddb.query(Repo), plusdb.query(Project)also unfilteredThe pattern already exists:
_apply_project_public_filter(line 29) filters projects. Repos need an equivalent filter that joins throughRepo.projectand checksProject.is_public. The/browse/reposroute also passes an unfiltered project list to the template.Discovered during the Phase 4 privacy audit. 13 infra-sensitive notes were already made private. This is the remaining code fix to fully close Phase 4.
Checklist
Related
project-pal-e-docs— parent projectplan-2026-02-28-knowledge-system-consolidation— Phase 4issue-pal-e-docs-repos-public-filter— pal-e-docs issue note