Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Store IP and datetime when confirming a double opt-in #1329

Closed
tcurdt opened this issue May 15, 2023 · 7 comments
Closed

Store IP and datetime when confirming a double opt-in #1329

tcurdt opened this issue May 15, 2023 · 7 comments
Assignees
Labels
enhancement New feature or request

Comments

@tcurdt
Copy link

tcurdt commented May 15, 2023

IANAL but at least for Germany (maybe even the EU) it is required to store the IP and datetime of the double opt-in. This is to have a paper trail the user actually confirmed.

This cannot be done on the frontend. It is the backend that needs store these two attributes on confirmation.
This would also need to be exportable and importable.
Just for comparison: Mailchimp has this implemented.

On the code level I am wondering if SubscriptionCreatedAt is actually the confirmation datetime or just the creation of the entity.

https://github.com/knadh/listmonk/blob/master/models/models.go#L178

I suspect it's also the model that would need to get a field for the IP address.

@tcurdt tcurdt added the enhancement New feature or request label May 15, 2023
@albertvisuals
Copy link

Yes, basically everyone who has to be GDPR compliant needs to have double opt-in, including proof of IP address and date-time of the second accepting.

@c-seeger
Copy link

@knadh this should be prioritized since its law relevant for many users inside EU due to GDPR.

@tcurdt
Copy link
Author

tcurdt commented Jul 20, 2023

With some guidance I am sure there is the possibility for a PR.
But to get some input first would be great.

@knadh
Copy link
Owner

knadh commented Jul 20, 2023

I'm working on this. A new config option, Privacy -> Record opt-in IP. These details can then be recorded in subscriber meta, maybe, optin_ip and optin_date. Does that make sense?

@tcurdt
Copy link
Author

tcurdt commented Jul 20, 2023

Does that make sense?

I guess that was just a typo but

optin_ip
optin_date

would totally make sense!

@knadh knadh self-assigned this Jul 21, 2023
@knadh
Copy link
Owner

knadh commented Jul 25, 2023

The subscriber meta that I'd suggested above was infeasible (duh!). IP has to be recorded per subscription (subscriber -> list). This involved adding a new field to subscriber_lists table and change to the subscription API requests and responses, but it's almost ready to be merged. Introduces a new meta{} JSONB field which records the double opt-in IP address, which can also be used for storing any arbitrary per-subscription meta in the future.

WIP:

Settings -> Privacy

image

Individual subscriber

image

@tcurdt
Copy link
Author

tcurdt commented Jul 25, 2023

Looking good. Thanks for that!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants