Skip to content

Standardize direct verification for one-time participation #13533

@NilHomedes

Description

@NilHomedes

Is your feature request related to a problem? Please describe.
In Decidim we have seen that there are two types of participants:

  • One-time participants: Those who access once to perform a specific action (such as voting on participatory budgets) and do not return to the platform.
  • Recurrent participants: Those participants who return more frequently to the platform to participate in different processes.

For one-time participants, it is usually frustrating to have to register to perform a single action that also requires verification. So they need to complete two forms to perform one action, sometimes these participants leaves the process uncomplete.

Describe the solution you'd like
I want a feature that enables direct verification without registration, so participants can complete an action without needing to register, just verifying themselves. This feature is designed for short periods of time and specific moments during a participatory process, specially for voting periods.

  • This feature should work as a new verification method.
  • This feature can be activated/deactivated in different components.
  • In the system panel, I should be able to enable ephemeral-verification and link it to another existing verification method (i.e. organization census).
  • To enable ephemeral-verification will be necessary to revoke all the verifications. By doing that, we are reducing the possible verifications conflicts that could emerge during the participatory action.

Alternatives

In Barcelona, they implemented the “ephemeral user)” feature, that was a similar approach to that.

Mokcup
Mobile

Does this issue could impact on users private data?
Yes. You are asking for personal data when they are verifying themselves.

Acceptance criteria

  • Given I’m a system admin
    When I go to /system
    Then I can enable the method “Ephemeral Verification” and choose a verification method already enabled.
  • Given I’m an admin
    When I want to enable permissions in a component
    Then I can select the method “Ephemeral Verification”
  • Given I’m an admin
    When I want to enable “Ephemeral verification” in a component
    Then I’m prompted with a modal saying that “In order to enable this authorisation method, you need to revoke all of the existing authorizations. This minimises the risk of verification conflicts.”
    This modal should have a CTA to “Revoke all verifications”.
  • Given I’m an admin
    When I enable the method “Ephemeral Verification” in a component,
    Then the permissions apply for that component action.

Flow 1) Visitant

  • Given I’m a visitant
    When I want to make an action restricted by the “Ephemeral Verification” method
    Then I’m prompted directly with the verification form.
  • Given I’m a visitant
    When I have completed the verification process
    Then an ephemeral session is created.
  • Given I’m a visitant
    When I have completed the verification process
    Then I gain access to the action.
  • Given I’m an ephemeral user
    When I leave uncomplete the action
    Then the ephemeral session is automatically closed after XX minutes. (according to session expiration time defined)
  • Given I’m an ephemeral user
    When I want to quit the component with permisions enabled
    Then I’m prompted with a modal warning me that I will be logged out if I leave this page.
  • Given I am a visitant with an existing ephemeral session
    When I attempt to verify myself again using my data that has already been used
    Then my existing ephemeral session is retrieved
    And I can view and edit my previous votes

Flow 2) Registered participant

  • Given I’m a registered participant
    When I want to make an action restricted by the “Ephemeral Verification” method
    Then I’m prompted directly with the verification form.
  • Given that I’m a registered participant, logged in
    When I click on an action restricted by “Ephemeral verification”
    Then I’m prompted directly with the verification form.
  • Given that I’m a registered participant, logged in
    When I complete the authorization form
    Then, I’m verified and I gain access to the action
    And then, the verification is saved in my profile on /authorizations

Edge cases

  • Given I am a visitant
    When I attempt to verify myself using the data of a registered participant who has already been verified
    Then a verification conflict occurs
    And I am prevented from proceeding
  • Given I am an ephemeral user who has already voted
    When I register and try to verify myself with my information
    Then the data from the ephemeral user is retrieved and merged with the registered participant's account.
    And then I can see and edit my votes.

Retrocompatibilty

  • Backport this PR to make it compatible with 0.29 version

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Merged

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions