Fixes #13513: Prevent exception when rendering bookmarks widget for anonymous user

This commit is contained in:
Jeremy Stretch 2023-08-22 10:44:22 -04:00
parent 229007082b
commit 7d7e8127f5

View File

@ -346,13 +346,16 @@ class BookmarksWidget(DashboardWidget):
def render(self, request): def render(self, request):
from extras.models import Bookmark from extras.models import Bookmark
bookmarks = Bookmark.objects.filter(user=request.user).order_by(self.config['order_by']) if request.user.is_anonymous:
if object_types := self.config.get('object_types'): bookmarks = list()
models = get_models_from_content_types(object_types) else:
conent_types = ContentType.objects.get_for_models(*models).values() bookmarks = Bookmark.objects.filter(user=request.user).order_by(self.config['order_by'])
bookmarks = bookmarks.filter(object_type__in=conent_types) if object_types := self.config.get('object_types'):
if max_items := self.config.get('max_items'): models = get_models_from_content_types(object_types)
bookmarks = bookmarks[:max_items] conent_types = ContentType.objects.get_for_models(*models).values()
bookmarks = bookmarks.filter(object_type__in=conent_types)
if max_items := self.config.get('max_items'):
bookmarks = bookmarks[:max_items]
return render_to_string(self.template_name, { return render_to_string(self.template_name, {
'bookmarks': bookmarks, 'bookmarks': bookmarks,