Skip to content

Use UserCallout model to keep track of trial status popover dismissals

What does this MR do?

Adds two new UserCallout.feature_name values, one for the D14 popover and another for the D3 popover. It then keeps track of whenever we have forcibly shown each of those popovers to the current user. If they’ve already seen the popover – that is, if we know we’ve already forcibly shown it – we’ll record that knowledge in the user_callouts table, and we won’t forcibly show them that same popover again.

Screenshots

Before (no memory, keeps showing the same popover) After (remembers that popover has been shown)
Screen_Recording_2021-06-30_at_5.05.45_PM Screen_Recording_2021-06-30_at_5.01.01_PM

How to test locally

Follow these initial setup instructions, and then you can play around with the UserCallout data:

user = User.find(<your_user_id>)

# This will reset the memory of your user having dismissed the popovers
user.callouts.where(feature_name: [:dismissed_d14_popover, :dismissed_d3_popover]).destroy_all

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

Does this MR contain changes to processing or storing of credentials or tokens, authorization and authentication methods or other items described in the security review guidelines? If not, then delete this Security section.

  • [-] Label as security and @ mention @gitlab-com/gl-security/appsec
  • [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • [-] Security reports checked/validated by a reviewer from the AppSec team

Related to #333606 (closed) & #334936 (closed)

Edited by Dallas Reedy

Merge request reports