sandstorm-io / sandstorm

Sandstorm is a self-hostable web productivity suite. It's implemented as a security-hardened web app package manager.
https://sandstorm.io
Other
6.71k stars 705 forks source link

Admin Panel Redesign: Invite User #1938

Open neynah opened 8 years ago

neynah commented 8 years ago

Proposed design (which is not very different from what we already have):

Requesting feedback/discussion from @zarvox, @paulproteus, and anyone else.

zarvox commented 8 years ago

I was hoping to go a little bit in the other direction - leave in only the "get an invite link" button, and abandon the email flow until we have something which lets you initiate the full account-provisioning flow smoothly from the admin side.

Rationale:

So there's two pieces of work:

  1. A transitional design to make sure the core function of invitation is still possible
  2. A better design that smooths and improves the general workflow.

I intend to do 1) now and address 2) orthogonally later, after the rest of the Admin UI rework has shipped.

For 1), I propose the following:

I think this design is okay for a number of reasons:

  1. The former design is an artifact of Kenton's needs for bulk-sending invites for Alpha/Oasis, which is no longer a workflow we need to do internally, since we've sent out all the invites to all the indiegogo backers.
  2. Org management obviates the need to manually bulk-send invites for most deployments.
  3. The email workflow is a bit more technical; the get-a-link workflow is simpler (one button, no text fields needed) and works without relying on email delivery.
  4. The ability to promote a visitor to user already exists in both the old and the new admin panels, so this is only a useful workflow for admin-initiated account creation.
  5. We'll be better served with a more directed approach to admin-initiated account creation, if we hear that that's an important workflow.
paulproteus commented 8 years ago

I think @neynah's mockup is basically reasonable but I'm +1 on @zarvox not implementing it as part of the current goal of "Ship the new admin interface."

In terms of what the minimalist version would support:

Drop the delivering-invites-via-server-email feature from the UI, until we have a more-complete workflow thought out for it.

+1, although I will email sandstorm-dev to make sure people seem OK with this

Have a single button which, when clicked, creates a new link in an input box and focuses that text so it can be copied. Clicking the button again generates a new link.

+1

I would also like some text on the page, indicating to admins what they should do. @zarvox I'm fine with you writing such text; if you want input from me, let me know and I can provide.

neynah commented 8 years ago

Have a single button which, when clicked, creates a new link in an input box and focuses that text so it can be copied. Clicking the button again generates a new link.

@zarvox Are you imagining this UI to appear in a modal after the Admin clicks "Invite User"? Or are we scrapping the "Invite User" button and instead having this UI on the Users page?

zarvox commented 8 years ago

I imagined it would be a separate page - click "Invite User" on "Users" page shows "Users / Invite" page, with breadcrumb.

If you made it a modal, it'd be weird that this modal, unlike most others, would not have a workflow through which you "complete" the modal interaction, since you might generate multiple links, and you need to copy out the generated link via the clipboard in any event, so the modal requires the user to dismiss it. At that point, I think users are better served by having the normal affordances and information scent of a full route.

neynah commented 8 years ago

Yes, separate page makes the most sense.

If an Admin wants to invite a new Admin, they will first invite them as a User and then promote them to Admin right?

It sounds like we'll need some description/explanatory text on this page to describe what these links are/how to use them.

As I understand it, each link is unique so if an Admin wanted to invite 10 users at once, they would:

  1. Click the button once and then share the link (10 times over), or
  2. Click the button 10 times, then share each of the links one by one (Also: they could leave this page open and revisit it at any time and forget which links they've already shared)

My concern with workflow 2 is that the Admin may lose track of which ones they've copied and shared(possibly without realizing it). For example, I think it's very possible an Admin could send the same link to 2 people and only one of them would be able to succeed (without contacting the Admin about it). Perhaps at the very least we can differentiate which links have been copied.

paulproteus commented 8 years ago

Oh, I guess sending multiple invites is a reason to want the old functionality back, or something else to handle sending multiple invites. I can still live with the removal of the email template UI, but now I'm -0 on removing it, whereas before I was +1 on removing it.

zarvox commented 8 years ago

If an Admin wants to invite a new Admin, they will first invite them as a User and then promote them to Admin right?

This seems reasonable enough for now. Inviting new admins is not a frequently-used workflow. I'd like to see the "create user as admin" flow supported in the hypothetical v2 user-creation flow.

It sounds like we'll need some description/explanatory text on this page to describe what these links are/how to use them.

Yes.

As I understand it, each link is unique so if an Admin wanted to invite 10 users at once, they would:

  1. Click the button once and then share the link (10 times over), or
  2. Click the button 10 times, then share each of the links one by one (Also: they could leave this page open and revisit it at any time and forget which links they've already shared)

For security reasons, these are single-use links, so they'd need to do 1 (note: edited)). But again, if you're inviting a bunch of people at once, in most cases you're better served by org management, and I'd argue that the magic formatting requirements of the existing box (with no validation, or hints that you got it right) are a rough edge that should be removed, and a better workflow designed.

I could see a new workflow where:

This has a dependency on working email delivery. I personally don't think it's worth the effort to build a bulk-invite scheme that doesn't automate delivering the notifications via email - as @neynah noted, keeping the links separate and managing their lifecycle is a pain point.

ocdtrekkie commented 8 years ago

If anything, I'd be more worried about accidentally making it too easy to make admins, inadvertently, than making it a one-step process to make an admin.

paulproteus commented 8 years ago

I'm +1 on a widget that doesn't allow customization (although I'd like it if showed a preview of the email). @zarvox I liked your proposal.

@zarvox I share your -1 on " a bulk-invite scheme that doesn't automate delivering the notifications via email"; I agree it's a lot of work for relatively little value.

neynah commented 8 years ago

I could see a new workflow where:

the admin has a single box into which she enters a bare email address she hits enter the Sandstorm server generates an invite link, and sends it in an (at least initially) non-customizable email that briefly explains what Sandstorm is and sets context for that user to be onboarded. The input box is cleared and the email address/link just sent appears in a list of sent invites just below the input form

So it's similar to the mock-up above with the differences being:

zarvox commented 8 years ago

After discussing in person, we've concluded that it's best for feature throughput for us to table any changes to the invite UI until the rest of the new admin project ships, as there are too many open questions and we didn't intend for this to be a blocker.

I will build something which imitates the current UI, despite its flaws, and we will later work on a new workflow to improve onboarding. Let's leave this ticket open to track that future workflow design.