Skip to content

Ability to re-send EULA acceptance emails to everyone after EULA change #16881

Open
@snipe

Description

@snipe

I'm splitting this discussion off from #11501 which was closed a while back but got frankenthreaded by @thetechjester (and I think it's a worthy thing to explore again.) @uberbrady and I have spent the afternoon kicking this around and thinking through how this would work, and the best approaches, both technically and user experience-wise.

This is an invitation to anyone interested in this feature to share their use-cases so we can refine what would meet the most users' needs and make sure the technical side of things covers as many bases as we can. Please do give us your use-cases for this feature (if you have any) in the comments.

We already have the ability to resend unaccepted asset emails via the unaccepted asset report, but this request is a little different in that the use-case here is that the EULA:

  1. Has changed due to new policies
  2. Didn't require sign-off before but now it does

What currently happens when an asset belonging to a category that requires acceptance (or if the general setting is that it requires acceptance) with or without a EULA is:

  1. A checkout record is created in the action_logs table
  2. A record gets created in the checkout_acceptance table gets created with null for accepted_at and declined_at

When a user accepts or declines an asset:

  1. A new record gets created in action_logs with the action_type of accepted or declined
  2. The existing record in checkout_acceptances gets updated with an accept/decline date, the EULA that was active AT THAT MOMENT gets stored in a column on that table, a PDF gets created that gets stored on the server (that also contains the EULA, if there is a EULA)

So how do we get there? (this is mostly ad-hoc notes - will be refined over time)

Bulk edit menu to resend unaccepted assets would.... ?

  1. Add a new record to checkout_acceptances and then follow the same rules?
  2. ???
  3. Profile

Challenges:

  1. If we do this at the category level as a bulk action, it will (as of now) send a new email for every single thing that a user might have checked out. It also seems like it might cover the most bases though, since it's possible that ONLY the EULA/acceptance policy of a single category has changed
  2. If we do this at the user level, they will still (as of now) still get a new email for every thing they currently have checked out - same as above, and not awesome
  3. Technical Implementation: if the policy has changed, for example you didn't used to have a EULA, the EULA has changed, OR you didn't used to require signatures and you now do, but you have 10k assets that were assigned before that change, they will not have records in the checkout_acceptances table, since there was no need for those records at that time.

Multiple Emails Problem - like the three body problem, but dumber

This gets tricky, since it's possible that the entire organization has changed their global EULA (assuming they're not using category-level EULAs) but it's also possible that an organization has changed each and every EULA for every category they have. From a UI perspective, this is lovecraftian.

If users were presented one page of things they need to accept, that's not difficult - BUT if there are 20 different EULAs they have to sign, one for each different category, that's just awful. (Putting aside the fact that we still want to offer acceptance for users that do not have the ability to login - whole other nut to crack.)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions