Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • Sign in / Register
Minds Backend - Engine
Minds Backend - Engine
  • Project overview
  • Repository
  • Issues 288
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 30
  • CI / CD
  • Security & Compliance
  • Packages
  • Wiki
  • Snippets
  • Members
  • Collapse sidebar
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Minds
  • Minds Backend - EngineMinds Backend - Engine
  • Issues
  • #1229

Closed
Open
Opened 1 week ago by Brian Hatchet@brianhatchet:speech_balloon:0 of 8 tasks completed0/8 tasks
Report abuse New issue

Email confirmation on account creation

When a new user signs up, send them an email with a hashcode. The email should use a queue and an email event.

The hashcode should be a the user's guid and a timestamp.

The user account record in cassandra should contain the date the verification time stamp was sent.

When the user clicks the verification link with an email, the router should validate the hash with the user id and the timestamp. If the user clicked the URL within 48 hours, the hash is valid. The user's record should be updated with a "validated_at" timestamp and the User entity should expose an "isValidated()" function.

The 48 hours should be a default value in editable by helm / settings.php

Currently, we send out two emails after 2 hours of user signup. That mechanism should be replaced by this email which sends immediately. When they verify their email, then we can send either welcome_complete or welcome_incomplete based on their onboarding status

Follow the "Welcome_incomplete" template for now and use the existing header and footer structure, but change the text to:


@name,

Please take a moment to validate your email address. This helps us prevent spam and ensure users are real. Click this link and we'll know it's you.

<link and call to action button like the other template.>

Thanks,

The Minds Team

Be sure to provide the tracking information so we can identify the success of this email.

  • Send a verification hash email through the queue
  • Use the existing email template and events mechanism.
  • Extend the router to parse and validate the url clicked within a configurable value of 48 hours
  • Replace the welcome emails with this one that sends immediately
  • Send them the welcome_complete or welcome_incomplete on verficiation based on their onboarding progress
  • Extend the commandline tool to allow easy testing of the email
  • Write end to end tests for the events
  • Provide phpunit tests for the new email and router callback
Edited 1 week ago by Emiliano Balbuena

Related issues
4

  • Email Verification on account creation feature request
    minds #608
    Avatar for Emiliano Balbuena
  • Enable the sending of emails in the review sites
    minds #990
    Avatar for Mark Harding
  • Confirm/write copy for the email verification email
    minds #991
    Dec 11
    Avatar for Bill Ottman
    Avatar for Jack Ottman
  • Remove verified status when changing email address and re-send confirmation email
    #1243
    Avatar for Emiliano Balbuena
    Avatar for Ben Hayward
Related merge requests
1
  • Email Confirmation
    !424
    Avatar for Ben Hayward
When this merge request is accepted, this issue will be closed automatically.
  • Discussion 9
  • Designs 0
  • Brian Hatchet :speech_balloon: @brianhatchet added Sprint::12/11 - Understood Unicorn Squad::Yellow scoped labels 1 week ago

    added scoped labels

  • Brian Hatchet :speech_balloon: @brianhatchet changed weight to 8 1 week ago

    changed weight to 8

  • Brian Hatchet :speech_balloon: @brianhatchet added to epic &102 1 week ago

    added to epic &102

  • Brian Hatchet :speech_balloon: @brianhatchet marked this issue as related to minds#608 1 week ago

    marked this issue as related to minds#608

  • Brian Hatchet :speech_balloon: @brianhatchet changed time estimate to 1d 1 week ago

    changed time estimate to 1d

  • Brian Hatchet :speech_balloon: @brianhatchet added Status::Backlog scoped label 1 week ago

    added scoped label

  • Brian Hatchet :speech_balloon: @brianhatchet marked this issue as related to minds#990 1 week ago

    marked this issue as related to minds#990

  • Brian Hatchet :speech_balloon: @brianhatchet marked this issue as related to minds#991 (closed) 1 week ago

    marked this issue as related to minds#991 (closed)

  • Brian Hatchet :speech_balloon: @brianhatchet changed the description 1 week ago

    changed the description

  • Brian Hatchet :speech_balloon: @brianhatchet added Priority::1 - High scoped label 1 week ago

    added scoped label

  • Emiliano Balbuena @edgebal added Status::InProgress scoped label and automatically removed Status::Backlog label 1 week ago

    added scoped label and automatically removed label

  • Emiliano Balbuena @edgebal changed due date to December 16, 2019 1 week ago

    changed due date to December 16, 2019

  • Emiliano Balbuena @edgebal changed title from Email verification on account creation to Email confirmation on account creation 1 week ago

    changed title from Email ation on account creation to Email ation on account creation

  • Emiliano Balbuena @edgebal closed 1 week ago

    closed

  • Emiliano Balbuena @edgebal reopened 1 week ago

    reopened

  • Emiliano Balbuena @edgebal changed title from Email confirmation on account creation to Email verification on account creation 1 week ago

    changed title from Email ation on account creation to Email ation on account creation

  • Emiliano Balbuena @edgebal changed title from Email verification on account creation to Email confirmation on account creation 1 week ago

    changed title from Email ation on account creation to Email ation on account creation

  • Emiliano Balbuena @edgebal mentioned in merge request !424 1 week ago

    mentioned in merge request !424

  • Emiliano Balbuena
    Emiliano Balbuena @edgebal · 1 week ago
    Developer
    1. Should we show something on the web and mobile app UI to let users know that they have to verify their email address.
    2. What would happen if the user clicks the link after it's expired? Right now we're treating the TOKEN as invalid, but we might want to re-send the verification email. Should we show something on the UX?
    3. Should we remove validated status when the user changes the email address thru Settings > Email Notifications?
    4. In the case (3) is true, should we introduce a warning and a confirmation to the Settings UX (both web and mobile)?
  • Bill Ottman
    Bill Ottman :dragon_face: @ottman · 1 week ago
    Owner

    Hey,

    1. Si :)
    2. Si :)
    3. Si :)
    4. Si :)

    We should find some other apps for UX examples like Coinbase etc. It could probably just be a modal (cross-platform) that appears and won't disappear until updated. Thanks Emi!

  • Emiliano Balbuena
    Emiliano Balbuena @edgebal · 1 week ago
    Developer

    @ottman I was thinking, at least for now, to use the blue bar we show to ask users to setup their MetaMask wallet... without the possibility to close it until email is validated.

    cc/ @brianhatchet

  • Bill Ottman
    Bill Ottman :dragon_face: @ottman · 1 week ago
    Owner

    Yes that sounds fine so atleast they can navigate around the site but it is a bit annoying.

  • Emiliano Balbuena @edgebal added Status::BuddyReview scoped label and automatically removed Status::InProgress label 1 week ago

    added scoped label and automatically removed label

  • Emiliano Balbuena @edgebal added 1d 4h of time spent at 2019-12-16 1 week ago

    added 1d 4h of time spent at 2019-12-16

  • Brian Hatchet :speech_balloon: @brianhatchet assigned to @benhayward.ben 6 days ago

    assigned to @benhayward.ben

  • Brian Hatchet
    Brian Hatchet :speech_balloon: @brianhatchet · 6 days ago
    Developer

    @benhayward.ben this one is awaiting your buddy review.

  • Ben Hayward @benhayward.ben added Status::Requires Changes scoped label and automatically removed Status::BuddyReview label 6 days ago

    added scoped label and automatically removed label

  • Ben Hayward @benhayward.ben unassigned @edgebal 6 days ago

    unassigned @edgebal

  • Ben Hayward @benhayward.ben assigned to @edgebal and unassigned @benhayward.ben 6 days ago

    assigned to @edgebal and unassigned @benhayward.ben

  • Ben Hayward
    Ben Hayward @benhayward.ben · 6 days ago
    Developer

    Miscommunication; this isn't ready yet.

  • Brian Hatchet :speech_balloon: @brianhatchet marked this issue as related to #1243 (closed) 5 days ago

    marked this issue as related to #1243 (closed)

  • Brian Hatchet :speech_balloon: @brianhatchet assigned to @markeharding 5 days ago

    assigned to @markeharding

  • Brian Hatchet :speech_balloon: @brianhatchet added Sprint::12/18 Vacant Viper Status::Blocked scoped labels and automatically removed Sprint::12/11 - Understood Unicorn Status::Requires Changes labels 5 days ago

    added scoped labels and automatically removed labels

  • Brian Hatchet
    Brian Hatchet :speech_balloon: @brianhatchet · 5 days ago
    Developer

    @markeharding we need to get the email secrets re-applied now that @edgebal fixed the issue.

  • Emiliano Balbuena @edgebal added 1d 2h of time spent at 2019-12-17 5 days ago

    added 1d 2h of time spent at 2019-12-17

  • Emiliano Balbuena @edgebal removed time spent 5 days ago

    removed time spent

  • Emiliano Balbuena @edgebal added 1d 6h of time spent at 2019-12-17 5 days ago

    added 1d 6h of time spent at 2019-12-17

  • Emiliano Balbuena
    Emiliano Balbuena @edgebal · 5 days ago
    Developer
    • Re-send confirmation email endpoint
    • Reset confirmed flag upon email address change
    • Export a window.Minds variable when source is confirmation email
    • Bugfixes on confirmation manager and email template
    • Initial smoke testing on Sandbox
  • Emiliano Balbuena @edgebal mentioned in issue front#2373 5 days ago

    mentioned in issue front#2373

  • Emiliano Balbuena @edgebal added Status::Review scoped label and automatically removed Status::Blocked label 3 days ago

    added scoped label and automatically removed label

  • Emiliano Balbuena @edgebal assigned to @benhayward.ben and unassigned @markeharding and @edgebal 3 days ago

    assigned to @benhayward.ben and unassigned @markeharding and @edgebal

  • Emiliano Balbuena @edgebal added Status::BuddyReview scoped label and automatically removed Status::Review label 3 days ago

    added scoped label and automatically removed label

  • Ben Hayward @benhayward.ben added Status::Requires Changes scoped label and automatically removed Status::BuddyReview label 3 days ago

    added scoped label and automatically removed label

  • Emiliano Balbuena @edgebal assigned to @brianhatchet and @xander-miller and unassigned @benhayward.ben 5 hours ago

    assigned to @brianhatchet and @xander-miller and unassigned @benhayward.ben

  • Emiliano Balbuena @edgebal added Status::Review scoped label and automatically removed Status::Requires Changes label 5 hours ago

    added scoped label and automatically removed label

  • Emiliano Balbuena @edgebal added Status::Requires Changes scoped label and automatically removed Status::Review label 2 hours ago

    added scoped label and automatically removed label

  • Emiliano Balbuena
    Emiliano Balbuena @edgebal · 2 hours ago
    Developer

    New requirement:

    • Should use /email-confirmation path on confirmation email URL
    • Should add a SEO redirect to / from /email-confirmation

    cc/ @brianhatchet

  • Emiliano Balbuena @edgebal added Status::InProgress scoped label and automatically removed Status::Requires Changes label 2 hours ago

    added scoped label and automatically removed label

  • Emiliano Balbuena @edgebal assigned to @edgebal and unassigned @brianhatchet and @xander-miller 2 hours ago

    assigned to @edgebal and unassigned @brianhatchet and @xander-miller

Please register or sign in to reply
Assignee
Emiliano Balbuena's avatar
Emiliano Balbuena @edgebal
Bot, Spam & Fraud Prevention
Epic
Bot, Spam & Fraud Prevention
None
Milestone
None
Time tracking
Spent 1d 6h
Est 1d
Dec 16, 2019
Due date
Dec 16, 2019
4
Labels
Priority::1 - High Sprint::12/18 Vacant Viper Squad::Yellow Status::InProgress
8
Weight
8
Confidentiality
Not confidential
Lock issue
Unlocked
6
6 participants
user avatar
Emiliano Balbuena
user avatar
Brian Hatchet
user avatar
Ben Hayward
user avatar
Bill Ottman
user avatar
Xander Miller
user avatar
Mark Harding
Reference: minds/engine#1229