Skip to content

Permissions

Steve Phillips edited this page Mar 20, 2018 · 29 revisions

User Stories

  1. Alice signs up at PursuanceProject.org, creates a pursuance, then invites Bob to join. She decides to make Bob an Admin once he has joined. Bob can do anything Alice can do except (1) nuke the pursuance itself -- that is, permanently delete it -- and (2) kick other Admins out of Alice's pursuance. Alice can always demote Bob if she no longer wants him to be an Admin.

  2. Bob then invites Cassie and makes her a Recruiter. As a Recruiter, Cassie can now invite other people to this pursuance and assign tasks to people, in addition to doing everything a Change Agent can do (get assigned tasks, and view and participate in tasks and their discussions).

  3. Cassie then invites her friend David and makes him a Change Agent. David cannot invite other people to join this pursuance, but he can be assigned tasks, view tasks, and participate in discussions on tasks (except for tasks with limited visibility and that can only be seen by those with a more trusted role than he has).

  4. Cassie then also invites Eva, who is less trusted, and so makes Eva a Seedling. He can only see, work on, and discuss tasks to which he has been assigned.

The invite graph, and each user's role, now looks like this:

Alice (Primary) => Bob (Admin) => Cassie (Recruiter) => David (Change Agent)
                                                     => Eva (Seedling)

Fine-grained permissions

Below is a table indicating which roles have which default permissions within a pursuance.

  • X indicates that the given role has the given permission for all tasks by default
    • Excludes tasks with special permissions (e.g., tasks that only Admins and up can view)
  • (X) indicates that the given role has the given permission for some tasks but not all
Role View task Suggest (sub)tasks Discuss task Suggest banning user (Re)Assign task Invite (Un)Ban user Create (sub)tasks Edit task Archive task Set special task permissions Set user roles Nuke task Nuke pursuance
Primary, God X X X X X X X X X X X X X X
Admin X X X X X X X X X X X X X
Asst Admin X X X X X X X X X X X
Recruiter X X X X X X
Assigner X X X X X
Change Agent X X X
Viewer X X (X)
Seedling (X) (X) (X)

Advanced permissions

Ideas
  • Edit tasks created by you
    • (EDIT: This needs to be there from the beginning, so I just added a tasks.created_by column so that we can enable all users to modify tasks they've created)
  • Subscribe to another user's activity
  • Give someone else the ability to subscribe to other users' activity
  • Enable certain users to perform certain actions (e.g., ban a user) that they can't do by themselves but only if a certain number of other users with a certain roles agrees with them
    • If we get good at doing this sort of thing in general, then we can thereby enable the creation of democratic pursuances that allow for the majority of users (with > 25 karma points?) to vote/determine what happens in those pursuances
Questions
  1. Shouldn't Seedlings still be able to create sub-tasks, to divide up their own work?
Clone this wiki locally