Skip to content

Admin: Add approved organizer to organization by email #22

Description

@Logvin

Summary

Admins should be able to associate a user with an organization directly from the organization detail screen, without having to navigate to Manage Users. This is the primary workflow for onboarding an organizer from a specific org.

Proposed UX

On the Organization detail screen (admin view), add an "Add Approved Organizer" section at the bottom of the panel:

  • A single email input field
  • An "Add" button
  • On submit: look up the user by email in the users table
    • If found: create a user_orgs record linking the user to this org (if one doesn't already exist), and set their role to organizer if it is currently guest
    • If not found: create a new user row with that email, role organizer, and org_id set to this org, then create the user_orgs record
  • Display the current approved organizers for this org in a list, with a Remove button next to each one

Acceptance Criteria

  • "Add Approved Organizer" section visible on org detail panel (admin only)
  • Email input + Add button; inline error if email is blank or invalid
  • Existing user found by email → linked to org via user_orgs, role upgraded to organizer if guest
  • No existing user → new user row created with that email and organizer role, linked to org
  • Duplicate add (user already in org) → no-op or friendly message, no error
  • Organizer list shows all users currently linked to this org
  • Remove button unlinks user from org (deletes user_orgs row); does not delete the user
  • A user can belong to multiple orgs (the existing user_orgs table already supports this)

Notes

  • The user_orgs table already exists and supports many-to-many user↔org relationships
  • The users.org_id FK is the user's primary org — linking via user_orgs is the correct path for multi-org membership
  • No changes to the DB schema should be required

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestv1.0Required for launch milestone

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions