I want the users to sign an (GDPR) agreement when the join.
(Or better: the first time they sign in).
Also, it would be nice if users are asked to check / update their contact info (etc) a certain intervals ( 6–12 months). Is there a 'not too complicated way of doing that).
Does anyone have good advice?
The site will be 'quite basic', just a few add-ons, and 100 users.
We have done this adding a viewlet and checking there your requirements. If the requirements are not met you can redirect the user to a page where you present the form or whatever you need.
I changed the messages to be able to use html.
Then I used plone.login to add an adapter as you suggested.
This lets me show a 'form' on login without the need to redirect.
From a UI perspective, I am very happy with this.