Skip to content

Club membership #618

@TyHil

Description

@TyHil

Add a new enum column to a each club that allows them to choose between allowing anyone to be a member (default), allowing people to request to be a member, and not allowing new members.

Add a new card on the /manage/[slug] page, maybe titled "Member Settings", where an admin can change this enum using a MUI Select and the Save button.

Add new options to the clubRoleEnum in src/server/db/schema/users.ts for "Follower" and "Requested". Do the db migration and make every current "Member" a "Follower". Update the codebase references that check if someone is a "Member"

Update the JoinButton to function like so:

  • If you're not a member, it looks like the current Follow button
  • Once you click follow it updates to be a Split Button that says either "Join" or "Request to Join" based on what the clubs setting is.
    • The dropdown opens a MUI Menu with a single option, "Unfollow"
  • Once you click "Join" the button changes to a "Leave" button without a dropdown and you become a "Member"
    • If you click "Leave" you go back to being a "Follower"
  • Once you click "Request to Join" the button changes to a "Remove Request to Join" button without a dropdown and you become "Requested" in the userMetadataToClubs table

In the manage/[slug]/followers page admins need to be able to change a person from the "Requested" status either back to a "Follower" or to a "Member".

Update the button on the manage page to say "Member & Followers". Then on the followers page it is possible to filter the Role column for "does not contain" "Follower" but that's difficult to find, so add a "Show Only Members" button at the top that adds this filter.

Metadata

Metadata

Assignees

No one assigned

    Labels

    AdvancedDevelopers experienced with the tech stack and larger issuesType: Feature RequestNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions