Send email notifications when a token becomes expired.

Review Request #12591 — Created Sept. 12, 2022 and submitted

maubin
Review Board
release-5.0.x
12589
reviewboard

Currently, users do not get notified about expired tokens. With this change, an
email is sent the first time an expired token is used. The email describes when
the token expired and how to create new tokens. If the email was successfully
sent, any subsequent uses of the token do not trigger another email.

This change also fixes up all of the API token email templates by adding date
formatting and fixing some missing URLs. The tests for the templates were also
fixed up.

  • Created unit tests for the expired token emails and ran unit tests in
    reviewboard/notifications/tests/test_email_sending.py
  • Manually tested authenticating with expired and non expired tokens, confirmed
    that appropriate emails were sent.
Summary
Send email notifications when a token becomes expired.
Description From Last Updated

'djblets.webapi.signals.webapi_token_deleted' imported but unused Column: 1 Error code: F401

reviewbotreviewbot

continuation line under-indented for visual indent Column: 25 Error code: E128

reviewbotreviewbot

continuation line under-indented for visual indent Column: 25 Error code: E128

reviewbotreviewbot

I think this is meant to say "deleted"?

chipx86chipx86

You can leave off the , None, since that's the default.

chipx86chipx86

This would be better as a boolean, I think.

chipx86chipx86

Can you add some additional checks to verify the display of the timestamps in the content? I noticed none of …

chipx86chipx86

line too long (80 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (80 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (80 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (80 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot
Checks run (1 failed, 1 succeeded)
flake8 failed.
JSHint passed.

flake8

maubin
maubin
Review request changed

Change Summary:

Checks whether an expired notification has already been sent.

Commits:

Summary
-
Send email notifications when a token becomes expired.
+
Send email notifications when a token becomes expired.

Diff:

Revision 3 (+298 -32)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

maubin
chipx86
  1. 
      
  2. I think this is meant to say "deleted"?

  3. You can leave off the , None, since that's the default.

  4. This would be better as a boolean, I think.

  5. reviewboard/notifications/tests/test_email_sending.py (Diff revision 4)
     
     
     
     
     
     
     

    Can you add some additional checks to verify the display of the timestamps in the content?

    I noticed none of our API token e-mails force a timestamp format, but our other templates all do. Inconsistent, which.. fine, it's been that way a while, but for some future-proofing, it'll be good to make sure we have some testing around how it actually ends up rendering.

    In fact, these templates are so small, let's compare the full strings (assertHTMLEqual for the HTML one).

  6. 
      
maubin
Review request changed

Change Summary:

  • Changed expired_notification_sent to a boolean
  • Spruced up the API token email templates by adding date formatting and fixing some missing URLs.
  • Spruced up the tests for the templates by checking the full strings of the text and html templates.

Description:

   

Currently, users do not get notified about expired tokens. With this change, an

    email is sent the first time an expired token is used. The email describes when
    the token expired and how to create new tokens. If the email was successfully
    sent, any subsequent uses of the token do not trigger another email.

  +
  +

This change also fixes up all of the API token email templates by adding date

  + formatting and fixing some missing URLs. The tests for the templates were also
  + fixed up.

Commits:

Summary
-
Send email notifications when a token becomes expired.
+
Send email notifications when a token becomes expired.

Diff:

Revision 5 (+680 -142)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

maubin
david
  1. Ship It!
  2. 
      
maubin
Review request changed

Status: Closed (submitted)

Change Summary:

Pushed to release-5.0.x (27c2137)
Loading...