aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/db')
-rw-r--r--mediagoblin/db/migrations.py3
-rw-r--r--mediagoblin/db/mixin.py6
-rw-r--r--mediagoblin/db/models.py43
3 files changed, 27 insertions, 25 deletions
diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py
index d6806813..ce7174da 100644
--- a/mediagoblin/db/migrations.py
+++ b/mediagoblin/db/migrations.py
@@ -38,7 +38,8 @@ from mediagoblin.db.extratypes import JSONEncoded, MutationDict
from mediagoblin.db.migration_tools import (
RegisterMigration, inspect_table, replace_table_hack)
from mediagoblin.db.models import (MediaEntry, Collection, MediaComment, User,
- Privilege, Generator, LocalUser, Location)
+ Privilege, Generator, LocalUser, Location,
+ Client, RequestToken, AccessToken)
from mediagoblin.db.extratypes import JSONEncoded, MutationDict
diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py
index 07e1fe97..b954ab90 100644
--- a/mediagoblin/db/mixin.py
+++ b/mediagoblin/db/mixin.py
@@ -451,8 +451,8 @@ class ActivityMixin(object):
"audio": _("audio"),
"person": _("a person"),
}
- obj = self.object
- target = None if self.target is None else self.target
+ obj = self.object()
+ target = None if self.target_id is None else self.target()
actor = self.get_actor
content = verb_to_content.get(self.verb, None)
@@ -470,7 +470,7 @@ class ActivityMixin(object):
# Do we want to add a target (indirect object) to content?
if target is not None and "targetted" in content:
if hasattr(target, "title") and target.title.strip(" "):
- target_value = terget.title
+ target_value = target.title
elif target.object_type in object_map:
target_value = object_map[target.object_type]
else:
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),