feat(backend): for public hackathons make participant pages public - #296
Draft
sabinem wants to merge 1 commit into
Draft
feat(backend): for public hackathons make participant pages public#296sabinem wants to merge 1 commit into
sabinem wants to merge 1 commit into
Conversation
A private hackathon can only be joined with a valid invitation (or by someone who already holds hackathon:read), so the organizer has already decided who takes part by the time Join runs. Asking for a second confirmation left the invitee holding no casbin role, which meant the event they had just been invited to was filtered out of every list they could see — the invitation link was the only trace of it. Join now grants membership itself when the hackathon is private. Public hackathons are unchanged: there the door stood open to everyone, which makes the organizer's confirmation the only point at which anybody chooses. - Extracts the shared confirmation into grantMembership, used by both Join and ApproveParticipant. It adds the Member role *before* clearing is_waiting, reversing ApproveParticipant's old order: casbin cannot join an ent transaction, and a half-failure that shows someone as waitlisted-but-able-to-act is repairable by the Approve button, where the reverse leaves a roster saying "Approved" over an account with no read access and no control that fixes it. - Auto-approval failure is logged, not returned. It leaves exactly the state a public join produces, which the invite page already reads correctly. - Extracts Join's invite-token gate into inviteAdmits, which the feature needed to stay under the cyclomatic limit and which retires two nolint directives. - The invite page now says "Join" rather than "Request a place" for a private hackathon. Kept conditional on visibility: CreateInvite performs no visibility check, so a public hackathon's link still waitlists. - H5's seeded waitlist moves out of the fixture; dana is now a confirmed member and the waitlist-to-approve case lives in H1, which is public.
sabinem
marked this pull request as draft
September 10, 2026 06:53
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
For public hackathons make member pages accessible to the public.