Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Multi-User #2982

Closed
26 tasks done
ErisDS opened this issue Jun 17, 2014 · 1 comment
Closed
26 tasks done

[Feature] Multi-User #2982

ErisDS opened this issue Jun 17, 2014 · 1 comment
Assignees

Comments

@ErisDS
Copy link
Member

ErisDS commented Jun 17, 2014

Description

Adding multi-user support for ghost so that teams of people can write a blog together. This involves administrators, editors and authors. Shazam.


Details:

The new owner role

The owner is a user which is one level above admin. An owner can do absolutely anything - no permissions apply to them, or rather canThis should default to true if the user has role owner.

There can only ever be one owner in a Ghost blog, and a user with role owner cannot be deleted.

An owner can choose to transfer ownership (that is the owner role) to any other admin user.

The owner role will be setup with a single user as a fixture. That user will be 'commandeered' or taken-over by the first signup (setup). In existing Ghost blogs, the single current admin user will be upgraded to an owner.

The new setup flow

Ghost blogs will be 'installed' or 'setup' from the new setup screen, the signup screen will no longer be used for creating the first user, but only for creating new users.

The setup screen includes the blog title as well as the user details.

The setup screen will hijack the new 'owner' role user which will be a fixture.

The invite flow

Users will be added to a Ghost blog by being invited. The invite screen is shown here: https://github.com/TryGhost/Ghost-UI/issues/21.

The new owner role can do anything it likes.
An admin can invite a user, and that user can have the admin, editor or author role.
An editor can invite a user, but that user can only have the author role.
An author cannot invite a user.

An invite creates a user with an empty name and password, but with an email address. The invited user has a status of 'invited'.

Once invited, a user is sent an email with a URL with a token, similar to a forgotten password URL. The URL takes them to the signup screen and allows them to enter their name and password, and pre-fills their email address (it can be changed).

The signup process then completes the details of the user, and changes the status to 'active'. The user is automatically logged in.


The Plan!

I don't normally write up a plan of what issues need to be done first, but in order to deliver MU very very fast, I thought it would help.

Getting Ghost MU-ready involves three main tasks: 1. making it possible to create and manage multiple users 2. making the admin safe for multiple users and 3. adding features to make Ghost work nicely with multiple users. The 3 individual tasks should be able to run concurrently, although it will be tricky to test the safety and features without having at least 2 users in the system, and that will be easier once the creation and management tools are in place, so that has to take slight priority.

To that end, I've grouped the issues above into 2 phases that can happen concurrently. I will ask that people pick up and deliver items from phase 1 first, followed by phase 2.

Phase 1 issues (For 8th July):

Phase 2 issues (For 15th July):

@ErisDS ErisDS added this to the 0.5 Multi-user milestone Jun 17, 2014
@ErisDS ErisDS self-assigned this Jun 17, 2014
@ErisDS ErisDS changed the title [Draft] Multi-User Epic Multi-User Epic Jun 24, 2014
@ErisDS ErisDS changed the title Multi-User Epic [Feature] Multi-User Jul 17, 2014
@ErisDS
Copy link
Member Author

ErisDS commented Jul 31, 2014

Closing now that #3497 is done.

@ErisDS ErisDS closed this as completed Jul 31, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant