-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Only return published blog entries. #1757
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
On a side note, my test suite is failing me and I'm not sure why. Discovered the reason for this; #1758 |
bmispelon
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the quick response on this, nice work 👍🏻
If you allow me to change/extend the scope of this PR a little bit, I think it's not enough to test for user.is_staff but we should also make sure that the user has write permissions on the BlogEntry model (since this feature is meant to be used for previewing).
And there should also be some tests added (I'm suprised there weren't already, or that if there were they were still passing after this change):
- anon users can't see unpublished entries at all (list or detail)
- logged in users (non-staff) can't see unpublished entries at all
- staff users without write permission on
BlogEntrycan't see unpublished entries at all - staff users with write permission on
BlogEntrycan't see unpublished entries in the list, but can view the detail page
|
@marksweb this is great. Thank you for jumping in on this. |
Yes I was surprised & expecting you to suggest this 😄 |
Ok, it took longer than I expected, but I've added tests and enforced permissions. |
adamzap
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Looks great!
I guess the last thing to do here is squash commits and rebase the branch, but maybe the merger will do that?
pauloxnet
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added 2 minor suggestions.
|
@marksweb Could you check the CI failure here? |
diff --git blog/views.py blog/views.py index 4629754..49c1fdc 100644 --- blog/views.py +++ blog/views.py @@ -21,7 +21,6 @@ def get_queryset(self): return Entry.objects.published() def get_context_data(self, **kwargs): - """ """ context = super().get_context_data(**kwargs) events_queryset = Event.objects.future().published() @@ -50,3 +49,10 @@ class BlogDayArchiveView(BlogViewMixin, DayArchiveView): class BlogDateDetailView(BlogViewMixin, DateDetailView): banner_is_title = False + + def get_queryset(self): + """Allows staff users to view unpublished entries""" + if self.request.user.is_staff: + return Entry.objects.all() + else: + return Entry.objects.published()
Done - there was an actual issue I'd not spotted 🤦🏼 |
|
@bmispelon Do you have any concerns here, or can we merge this? |
bmispelon
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work Mark, thanks for this! 👍🏻
This fixes #1755 to only return published blog entries, even for staff users.
Unpublished entries can still be previewed via the admin.