Cadasta / cadasta-platform

[DEPRECATED] Main repository of the Cadasta platform. Technology to help communities document their land rights around the world.
https://demo.cadasta.org
GNU Affero General Public License v3.0
53 stars 81 forks source link

Ability to request permission to gain access to project data #943

Open clash99 opened 7 years ago

clash99 commented 7 years ago

Updated to include draft requirements

User Story

As a registered user, I want to request access to projects I want to work with

Description

User flow:

  1. A registered user access to project overview
  2. The user could belong or not to the project's organization. 2.1. For users not belonging to project's organization, if accepted, their role would be "Regular member" of the org, and "Public User" or all other projects within the org 2.2. For users already belonging to project's organization (and then asking for a role update), their role in other projects will not be modified
  3. A web form will be shown to the user (see a draft wireframe). Information to collect will include:
    • Requested role (Public User, Project User, Data Collector, Project Manager)
    • Reason for asking (a drop-down menu if possible)
    • Other comments
  4. User submit the form
  5. A notification will be sent to all projects managers of that project (either via mail [preferred] or SMS)
  6. That notification will include a link to the permissions page of the project, to add that member similarly to what we'd do with the user invites #1448 (not developed yet)

Other comments

We need to discuss if we want to offer this also to unregistered users.

Pros of including unregistered users:

Cons:

@amplifi, what do you think?


Related to #677

This is to add an option for registered users with no project permissions to request access. There was a discussion as to where this would be sent (the PM?) and if this would be a configurable option at the project or even organization level.

Here is the layout flow for Project and Organizations for the different user roles: https://drive.google.com/a/cadasta.org/file/d/0BzpiEtMtHC3renRpeXVZLXNyQlE/view?usp=sharing

dpalomino commented 7 years ago

Thanks @clash99. Included in the backlog (id 49.00).

I think maybe the access request should be sent to the organization's administrators:

clash99 commented 7 years ago

Part of new dashboard project in right column. This is not being included right now, but wanted to show screenshot for future development:

screenshot 2017-05-19 12 37 23

dpalomino commented 7 years ago

Looks very good @clash99! One question, the "Reason for request", are we thinking on including a predefined set for "reasons", something like:

clash99 commented 7 years ago

Yes @dpalomino, I think that sounds like a good idea. Also if they are registered users, we should be able to pre-fill name and email.

dpalomino commented 7 years ago

Regarding this feature, in addition to the wireframes provided by @clash99 I think the flow could be something like:

  1. A registered user without permissions access to project overview
  2. Request permission form is offered to the user (see wireframes)
  3. User requests access to the project (specifying the role).
  4. A notification mail (or SMS if mail login was not available) is sent to all project managers of that project
  5. That notification will include a link to the permissions page of the project, to add that member similarly to what we'd do with the user invites #1448 (not developed yet)

This requirements/flow will be refined once the user invites will be implemented and new project dashboard #1447 will be finished.

dpalomino commented 7 years ago

User Story

As a registered user, I want to request access to projects I want to work with

Description

User flow:

  1. A registered user access to project overview
  2. The user could belong or not to the project's organization. 2.1. For users not belonging to project's organization, if accepted, their role would be "Regular member" of the org, and "Public User" or all other projects within the org 2.2. For users already belonging to project's organization (and then asking for a role update), their role in other projects will not be modified
  3. A web form will be shown to the user (see a draft wireframe). Information to collect will include:
    • Requested role (Public User, Project User, Data Collector, Project Manager)
    • Reason for asking (a drop-down menu if possible)
    • Other comments
  4. User submit the form
  5. A notification will be sent to all projects managers of that project (either via mail [preferred] or SMS)
  6. That notification will include a link to the permissions page of the project, to add that member similarly to what we'd do with the user invites #1448 (not developed yet)

Other comments

We need to discuss if we want to offer this also to unregistered users.

Pros of including unregistered users:

Cons:

@amplifi, what do you think?

amplifi commented 7 years ago

If unregistered users are already at a computer/phone/tablet and have browsed to the project page, the possible flows would be:

A) Click to join project, be prompted to either sign in or register, fill out registration form (incl. password), verify account, request access to project.

B) Enter email/phone to request access, then at some point still be forced to enter registration form details (incl. password) before any permissions could be applied, then verify account.

With B), we can't create accounts without passwords, so there's no good way to front-load adding the project permissions before a user creates an account. We shouldn't be adding permissions to unverified accounts, but the account creation is the first blocker we hit.

dpalomino commented 7 years ago

Thanks a lot @amplifi, this is very useful.

So then I think it makes sense then go with A) and walk the user through the whole process as you suggest (registration > verification > redirection again to the project request form).

I can create a separate issue for this. Thanks!