Improve invite system

Targeting version 2.7, we will be making some improvements to the invite system to bring it into line with how platforms like Discourse are handling invites these days, with a bias toward quickly generating a link that can be copied and pasted into an email, text or chat. Options like sending an email with personalized message or adding users to groups etc will be provided behind an advanced options :gear:. Invite management will also be improved to enable users to edit their invites after they have been created.

This change has quite a few moving parts and touches on things that staff can do that regular users cannot, so we will want to be mindful to get it right. I’ve indicated the top level todos below as well as proposed copy for the new interfaces. We can update this OP as we move along.

  • remove LINKS tab, restructure PENDING tab on /user/invited/pending page to include link invites
  • add ability to edit existing invites listed on PENDING tab
  • simplify the Invite popup, putting advanced options behind :gear:
  • add ability to specify topic where the invited user will land after accepting invite
  • add interim step to Bulk Invite (for admins) with just in time education on how to prep and upload csv
  • remove ability to invite new user via share button on topic menu

Proposed new interfaces:

Structure of new consolidated pending tab
Invitation Groups Topic Created/Last sent Expires
invitedperson@example.fake team, developers Welcome, developers! Nov 15 Dec 15 [Edit] [Delete] [Get link] [Send email]
link (1/5 redeemed) team Oct 5 Dec 15 4pm [Edit] [Delete] [Get link]
anotherinvitedperson@example.fake translators Getting started with translation Nov 2 Dec 20 [Edit] [Delete] [Get link] [Send email]
thirdinvitedperson@example.fake team Nov 25 Dec 25 [Edit] [Delete] [Get link] [Send email]
New invite popup
Heading: Invite people 

Share this link with others to instantly grant access to SITENAME!

[                             ]  [create link/copy]

Your invite link expires next week. :gear:

Note: when CREATE LINK button selected, the link is added to the empty field and the button changes to COPY. When selected, the link is copied to the clipboard to be pasted into an email, chat or text.

New invite popup advanced options
Title: Invite people (advanced options)

Add to groups:

[ Search... ]

Send to topic on first login: 

[ Search... ]

Expire after

[ Select a timeframe  ]

Max number of uses

[ 5 ]

Limit to email address 

[ ] 

Send email 

[ Hello, please join our team.


    [                           ] [create link/copy link] [send email]

Note: Expire after is one week after current date by default. Max number of uses is only shown if no email address is provided. Custom message and send email buttons are only shown if email address is provided.

New bulk invite interim step
Title: Bulk invite (admin only)

Invite a list of users to get your community going quickly. Prepare a [csv file]( containing at least one row per email address of users you want to invite. The following comma separated information can be provided if you want to add people to groups or send them to a specific topic the first time they sign in.,group_1;group_2,topic_id

Every email address in your uploaded csv file will be sent an invitation, and you will be able to manage it later. 

[ upload csv file]

Note: selecting the upload csv file button opens the file system to select the csv to upload.