hmsiccbl / screensaver1

Screensaver Version 1 - End of life on December 1, 2018
GNU General Public License v2.0
3 stars 3 forks source link

User agreement expiration notification for Ross Merkin is being sent repeatedly #104

Closed schiang68 closed 11 years ago

schiang68 commented 11 years ago

This is not of immediate urgency as Ross no longer works at HMS and does not have SS access activated. However, it would be bad if this problem is a larger issue and affects other users in the future.

The last time this happened, the problem was that the screener did not have an assigned e-mail. However, this isn't the case with Ross Merkin, so it's unclear what's happening.

schiang68 commented 11 years ago

I deactivated Ross Merkin's SMUA checklist item to see if that will stop the repeated notification e-mails.

seanderickson commented 11 years ago

I've fixed a bug in the notification system that appears to have caused this situation and will check it in shortly. In this case, the system would fail every time it tried send the notification email, because because the user had no login roles in the system already. The absence of login roles was unexpected and caused an NPE. Since this exception was unhandled, it would cause the whole process to abort, and repeat each day.

I've reviewed the logic here; Deactivating the checklist item for the SMUA for the user will eliminate any future email for that user for that checklist item (I have added test code to verify this). This is a valid method for "manually" expiring a user; but it should be noted that just deactivating the checklist item will not remove login roles for that user, so the administrator should perform that action as well if necessary to limit the user's visibility of data on the system ( as per ICCB-L business rules).

For the other case of failure of the email transmission to the user, the SMUA expiry notification service will continue to attempt to send email to them, until such time as the user is "expired". The automated "expire" action entails both deactivating the checklist item and removing the user's data sharing level role (2 or 3). Also, if they do not have ancillary roles (such as RNAi user roles), then their Screensaver User Login role is removed.

(whew, this checklist item / notification stuff takes some investigative work!)