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