From b49f8edb9ad4ebbdb0d902fdc69d655a273e80ec Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Thu, 18 Mar 2010 21:12:12 +0000 Subject: [PATCH] Actual delete command for mediawiki, now moves all user revisions to a special "DeletedUser" username --- settings.py | 2 +- sso/services/wiki/__init__.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/settings.py b/settings.py index 4896a07..6f0a0f0 100644 --- a/settings.py +++ b/settings.py @@ -33,7 +33,7 @@ USE_I18N = True # Absolute path to the directory that holds media. # Example: "/home/media/media.lawrence.com/" -MEDIA_ROOT = '/home/dreddit/www/auth.dredd.it/auth/media' +MEDIA_ROOT = './media' # URL that handles the media served from MEDIA_ROOT. Make sure to use a # trailing slash if there is a path component (optional in other cases). diff --git a/sso/services/wiki/__init__.py b/sso/services/wiki/__init__.py index b3bd733..2a7a25b 100644 --- a/sso/services/wiki/__init__.py +++ b/sso/services/wiki/__init__.py @@ -20,6 +20,9 @@ class MediawikiService(BaseService): SQL_ENABLE_USER = r"UPDATE user SET user_password = %s WHERE user_name = %s" SQL_CHECK_USER = r"SELECT user_name from user WHERE user_name = %s" + SQL_DEL_REV = r"UPDATE revision SET rev_user = (SELECT user_id FROM user WHERE user_name = 'DeletedUser'), rev_user_text = 'DeletedUser' WHERE rev_user = (SELECT user_id FROM user WHERE user_name = '%s')" + SQL_DEL_USER = r"DELETE FROM USER WHERE user_name = '%s'" + def __init__(self): # Use the master DB settings, bar the database name @@ -65,7 +68,9 @@ class MediawikiService(BaseService): def delete_user(self, uid): """ Delete a user """ - self.disable_user(uid) + self._dbcursor.execute(self.SQL_DEL_REV, [uid]) + self._dbcursor.execute(self.SQL_DEL_USER, [uid]) + self._db.connection.commit() def disable_user(self, uid): """ Disable a user """