On 8-Sep-09, at 11:20 PM, Craig Andrews wrote:

I've temporarily given up on the language work, as it's just too much for
me right now - I'll get back to it when Evan is around.

On to my new task: User deletion.

When a user is deleted, what exactly should happen?


The ticket for User Deletion is here: http://status.net/trac/ticket/155
It has some notes on implementation.

I also did some work on this once when I was trying to learn my way around the software.
I don't know if it's useful or good, but it's here:
http://gitorious.org/~cvollick/laconica/cvollicks-clone/commits/ userDelete

It's behind master because I stopped working on it a while ago.
All the changes are in one place though.

Also, when I was planning out how to do it I wrote a document so I knew what I was doing.

It looked like this:
Ok...
So...
User::delete();

First, change the nickname to 'deleteduser<ID>'.
This might be safer if we restricted it so normal people can't change their nickname to start with deleteduser.

Then remove all profile info.

Remove all login info.

Delete all notices by that user.
Perhaps make it an option to delete all content.
I say that notices that are part of a conversation are not to be deleted.
I may be wrong in that.

Remove their avatar.
Perhaps make it a Deleted Avatar in place of the default.

Leave this account subscribed to all the people it's subscribed to.
Unsubscribe everyone from this account.
Also take the user out of any groups.
Also, unset the "Autosubscribe" option.
    user.autosubscribe

Notify all subscribers in some way that this user has deleted their account.
Perhaps it could even be in the form of a post of sorts.

Remove all other information attached to their account, like sms stuff, twitter stuff, open id stuff, oath stuff, etc.
    confirm_address
    profile_block
    profile_tag
    remember_me
    user_openid
    design
I've decided to leave the invitations.
We shouldn't cancel all pending invitations just because the inviter left.

Maybe not change the username and put a sort of probation on it so that someone else can't just scoop the name.
Probably make that configurable.


I'm thinking that the
user's account/profile is delete, group memberships removed, and all
notices he ever made are deleted. However, this breaks conversations from
a historical perspective - and that's my concern.

In my implementation I was going to set it up to have the notice deletion be an option. I was going to make it so that notices that are in conversations are never deleted, though.

_______________________________________________
Laconica-dev mailing list
Laconica-dev@laconi.ca
http://mail.laconi.ca/mailman/listinfo/laconica-dev

Reply via email to