aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/db/models.py')
-rw-r--r--mediagoblin/db/models.py43
1 files changed, 22 insertions, 21 deletions
diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py
index f1449667..8c8e42e5 100644
--- a/mediagoblin/db/models.py
+++ b/mediagoblin/db/models.py
@@ -250,9 +250,29 @@ class User(Base, UserMixin):
__mapper_args__ = {
'polymorphic_identity': 'user',
- 'polymorphic_on': type
+ 'polymorphic_on': type,
}
+ def delete(self, **kwargs):
+ """Deletes a User and all related entries/comments/files/..."""
+ # Collections get deleted by relationships.
+
+ media_entries = MediaEntry.query.filter(MediaEntry.uploader == self.id)
+ for media in media_entries:
+ # TODO: Make sure that "MediaEntry.delete()" also deletes
+ # all related files/Comments
+ media.delete(del_orphan_tags=False, commit=False)
+
+ # Delete now unused tags
+ # TODO: import here due to cyclic imports!!! This cries for refactoring
+ from mediagoblin.db.util import clean_orphan_tags
+ clean_orphan_tags(commit=False)
+
+ # Delete user, pass through commit=False/True in kwargs
+ username = self.username
+ super(User, self).delete(**kwargs)
+ _log.info('Deleted user "{0}" account'.format(username))
+
def has_privilege(self, privilege, allow_admin=True):
"""
This method checks to make sure a user has all the correct privileges
@@ -335,7 +355,7 @@ class LocalUser(User):
upload_limit = Column(Integer)
__mapper_args__ = {
- 'polymorphic_identity': 'user_local'
+ "polymorphic_identity": "user_local",
}
## TODO
@@ -349,25 +369,6 @@ class LocalUser(User):
'admin' if self.has_privilege(u'admin') else 'user',
self.username)
- def delete(self, **kwargs):
- """Deletes a User and all related entries/comments/files/..."""
- # Collections get deleted by relationships.
-
- media_entries = MediaEntry.query.filter(MediaEntry.uploader == self.id)
- for media in media_entries:
- # TODO: Make sure that "MediaEntry.delete()" also deletes
- # all related files/Comments
- media.delete(del_orphan_tags=False, commit=False)
-
- # Delete now unused tags
- # TODO: import here due to cyclic imports!!! This cries for refactoring
- from mediagoblin.db.util import clean_orphan_tags
- clean_orphan_tags(commit=False)
-
- # Delete user, pass through commit=False/True in kwargs
- super(User, self).delete(**kwargs)
- _log.info('Deleted user "{0}" account'.format(self.username))
-
def serialize(self, request):
user = {
"id": "acct:{0}@{1}".format(self.username, request.host),