mysociety / whatdotheyknow-theme

The Alaveteli theme for WhatDoTheyKnow (UK)
http://www.whatdotheyknow.com/
MIT License
31 stars 26 forks source link

Delete old unused accounts #1310

Closed RichardTaylor closed 1 year ago

RichardTaylor commented 2 years ago

Remove accounts with no tracks or requests which are over x months old.

This could help remove spam profiles.

RichardTaylor commented 2 years ago

Excluding banned accounts

confirmordeny commented 2 years ago

What if the user has played the classification game? Would we have an exemption for that?

garethrees commented 2 years ago

We'd want to notify users that their account was being deleted and allow them to click a link/sign in to prevent that happening.

At the moment we don't know when users last logged in (https://github.com/mysociety/alaveteli/issues/1351), so we have no way of identifying such "inactive" accounts.

RichardTaylor commented 2 years ago

accounts with no tracks or requests which are over x months old

This doesn't need a last logged-in date. It picks up accounts which were created but not used.

What if the user has played the classification game? Would we have an exemption for that?

There are always edge cases, another might be accounts created to "reserve" a username. I think the WhatDoTheyKnow team created a handful of those. I see two with a @WhatDoTheyKnow username.

mdeuk commented 2 years ago

We'd want to notify users that their account was being deleted and allow them to click a link/sign in to prevent that happening.

+1, I can see a benefit here in reducing data held - but we need to ensure users know what we plan to do, and give them a really simple way to say "no, I actually want to keep my account".

I think implementing https://github.com/mysociety/alaveteli/issues/3420 would be helpful before we did this, as having a "click this button" type message would certainly be a clearer CTA.

Excuse the very rough mockup, but it could be something like this:

Mockup of an email from WhatDoTheyKnow to users about account deletion

At the moment we don't know when users last logged in (https://github.com/mysociety/alaveteli/issues/1351), so we have no way of identifying such "inactive" accounts.

We'd definitely need this for it to work in a meaningful way.

One other consideration: what is the precise criteria envisioned? IMO wouldn't want to automatically expire accounts that have been used at all - since that could, for example, prevent a user following up on a request that receives a very late reply from the public body (say, owing to an ICO DN or FTT hearing).

RichardTaylor commented 2 years ago

IMO wouldn't want to automatically expire accounts that have been used at all

The proposal here is only to remove accounts which have never been used.

We'd want to notify users that their account was being deleted

We'd be writing to lots of spammers.

The aim here is to clear out accounts like

https://www.whatdotheyknow.com/admin/users/244793

there may be a more targeted way to do that.

--

Another edge case is authority accounts only used to "respond" to a request.

WilliamWDTK commented 2 years ago

Just coincidentally, I've received such an email from an account I have:

Hi there,

It's been over a year since we last saw you log in to your account "[USERNAME REDACTED]" on [PRODUCT REDACTED], and, well, we kind of miss you But we don't want to keep your data on file if you've decided that you don't want the account any more -- the last thing we want to do is pester you when you don't want to hear from us.

If you want to keep the account, all you need to do is go to:

[LOG-IN URL REDACTED]

and log in before 22 August 2022, and the account will be safe.

If you don't log in before then, we'll completely delete the account "[USERNAME REDACTED]" and you won't hear from us again (unless you have another account). There will be no way to restore the account after this, though of course you will be able to sign up for a new one if you want.

Let us know if you have any questions, we're here to help.

All the best,

The [PRODUCT REDACTED] team -- [PRODUCT REDACTED]: [SLOGAN REDACTED] [HOMEPAGE URL REDACTED]

A product from [PRODUCT REDACTED] [LEGAL STRUCTURE REDACTED] Registered in England and Wales as company number [COMPANY NUMBER REDACTED]. Registered address: [ADDRESS REDACTED]

garethrees commented 2 years ago

The proposal here is only to remove accounts which have never been used.

We can't actually figure this out (e.g, if someone signed up to send user to user message, we don't track that)

The aim here is to clear out accounts like

We did make an attempt at this in https://github.com/mysociety/alaveteli/issues/3180

Excuse the very rough mockup, but it could be something like this:

This looks great, and is similar to what's in use in FixMyStreet.

WilliamWDTK commented 2 years ago

The proposal here is only to remove accounts which have never been used.

We can't actually figure this out (e.g, if someone signed up to send user to user message, we don't track that)

I suppose it depends how you define "use"

mdeuk commented 2 years ago

Excuse the very rough mockup, but it could be something like this:

This looks great, and is similar to what's in use in FixMyStreet.

We can thank the Government Digital Service for that - i used one of the Tracker templates, which are based on this. The next version will use code from GDS Notify, handily licensed under similar terms to Alaveteli. 😃

I'm a fan of a good bit of the GDS design system, a good amount of thought has been put into keeping it simple for the end user, so it matches our ethos pretty well.

FWIW, I like the email @WilliamWDTK has quoted - it's nice and clear, and it gives a clear picture as to what deletion might mean. In our case, we know some users sign up and don't use the service - but we don't always know why.

An example that is a definite edge case is public bodies - they might have signed up so they could use our service to reply to a request through the web portal - would we have any direct indication on the user's account of that?

We want to get rid of the profile spam accounts, but I wouldn't wish to create an inconvenience to genuine users until we could try and establish a last use date - which is possibly tricky. I suppose there is a metadata risk here, do we necessarily want to record that data?

WilliamWDTK commented 2 years ago

We want to get rid of the profile spam accounts, but I wouldn't wish to create an inconvenience to genuine users until we could try and establish a last use date - which is possibly tricky. I suppose there is a metadata risk here, do we necessarily want to record that data?

If you wanted to minimise data, you could just record the month and year…

HelenWDTK commented 1 year ago

Closing as there are no current plans to implement this, and AFAIK, we still don't have the data we'd need to do it. We can revisit this if that changes.