Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • Sign in / Register
Minds Backend - Engine
Minds Backend - Engine
  • Project overview
  • Repository
  • Issues 272
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 29
  • 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 3 weeks 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 2 weeks 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, 2019
    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 11
  • Designs 0
  • Brian Hatchet :speech_balloon: @brianhatchet added 1 deleted label 3 weeks ago

    added 1 deleted label

  • Brian Hatchet :speech_balloon: @brianhatchet added Squad::Yellow scoped label 3 weeks ago

    added scoped label

  • Brian Hatchet :speech_balloon: @brianhatchet changed weight to 8 3 weeks ago

    changed weight to 8

  • Brian Hatchet :speech_balloon: @brianhatchet added to epic &102 3 weeks ago

    added to epic &102

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

    marked this issue as related to minds#608

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

    changed time estimate to 1d

  • Brian Hatchet :speech_balloon: @brianhatchet added Status::Backlog scoped label 3 weeks ago

    added scoped label

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

    marked this issue as related to minds#990

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

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

  • Brian Hatchet :speech_balloon: @brianhatchet changed the description 3 weeks ago

    changed the description

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

    added scoped label

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

    added scoped label and automatically removed label

  • Emiliano Balbuena @edgebal changed due date to December 16, 2019 2 weeks 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 2 weeks ago

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

  • Emiliano Balbuena @edgebal closed 2 weeks ago

    closed

  • Emiliano Balbuena @edgebal reopened 2 weeks ago

    reopened

  • Emiliano Balbuena @edgebal changed title from Email confirmation on account creation to Email verification on account creation 2 weeks 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 2 weeks ago

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

  • Emiliano Balbuena @edgebal mentioned in merge request !424 2 weeks ago

    mentioned in merge request !424

  • Emiliano Balbuena
    Emiliano Balbuena @edgebal · 2 weeks 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 · 2 weeks 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 · 2 weeks 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 · 2 weeks 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 2 weeks ago

    added scoped label and automatically removed label

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

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

  • Brian Hatchet :speech_balloon: @brianhatchet assigned to @benhayward.ben 2 weeks ago

    assigned to @benhayward.ben

  • Brian Hatchet
    Brian Hatchet :speech_balloon: @brianhatchet · 2 weeks 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 2 weeks ago

    added scoped label and automatically removed label

  • Ben Hayward @benhayward.ben unassigned @edgebal 2 weeks ago

    unassigned @edgebal

  • Ben Hayward @benhayward.ben assigned to @edgebal and unassigned @benhayward.ben 2 weeks ago

    assigned to @edgebal and unassigned @benhayward.ben

  • Ben Hayward
    Ben Hayward @benhayward.ben · 2 weeks ago
    Developer

    Miscommunication; this isn't ready yet.

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

    marked this issue as related to #1243 (closed)

  • Brian Hatchet :speech_balloon: @brianhatchet assigned to @markeharding 2 weeks ago

    assigned to @markeharding

  • Brian Hatchet :speech_balloon: @brianhatchet removed 1 deleted label 2 weeks ago

    removed 1 deleted label

  • Brian Hatchet :speech_balloon: @brianhatchet added Sprint::12/18 Vacant Viper Status::Blocked scoped labels and automatically removed Status::Requires Changes label 2 weeks ago

    added scoped labels and automatically removed label

  • Brian Hatchet
    Brian Hatchet :speech_balloon: @brianhatchet · 2 weeks 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 2 weeks ago

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

  • Emiliano Balbuena @edgebal removed time spent 2 weeks ago

    removed time spent

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

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

  • Emiliano Balbuena
    Emiliano Balbuena @edgebal · 2 weeks 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 2 weeks ago

    mentioned in issue front#2373

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

    added scoped label and automatically removed label

  • Emiliano Balbuena @edgebal assigned to @benhayward.ben and unassigned @markeharding and @edgebal 1 week ago

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

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

    added scoped label and automatically removed label

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

    added scoped label and automatically removed label

  • Emiliano Balbuena @edgebal assigned to @brianhatchet and @xander-miller and unassigned @benhayward.ben 1 week 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 1 week ago

    added scoped label and automatically removed label

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

    added scoped label and automatically removed label

  • Emiliano Balbuena
    Emiliano Balbuena @edgebal · 1 week 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 1 week ago

    added scoped label and automatically removed label

  • Emiliano Balbuena @edgebal assigned to @edgebal and unassigned @brianhatchet and @xander-miller 1 week ago

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

  • Emiliano Balbuena @edgebal assigned to @brianhatchet 1 week ago

    assigned to @brianhatchet

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

    added scoped label and automatically removed label

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

    See front#2373 (comment 264526103) on why this issue is marked as Blocked

    Edited by Emiliano Balbuena 1 week ago
  • Emiliano Balbuena @edgebal added Sprint::12/25 Wan Wren scoped label and automatically removed Sprint::12/18 Vacant Viper label 1 week ago

    added scoped label and automatically removed label

  • Brian Hatchet :speech_balloon: @brianhatchet added Sprint::01/15 - Yeasty Yabby scoped label 20 hours ago

    added scoped label

  • Brian Hatchet :speech_balloon: @brianhatchet added Sprint::01/01 - Xerothermic Xenarthra scoped label and automatically removed Sprint::12/25 Wan Wren label 20 hours ago

    added scoped label and automatically removed label

  • Brian Hatchet :speech_balloon: @brianhatchet removed Sprint::01/15 - Yeasty Yabby label 16 hours ago

    removed label

  • Brian Hatchet
    Brian Hatchet :speech_balloon: @brianhatchet · 1 hour ago
    Developer

    Trying to get this up and running now.

Please register or sign in to reply
2 Assignees
Emiliano Balbuena's avatar
Brian Hatchet's avatar
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::01/01 - Xerothermic Xenarthra Squad::Yellow Status::Blocked
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