def test_editable_pages_for_non_editing_user(self): user = get_user_model().objects.get(username='******') homepage = Page.objects.get(url_path='/home/') christmas_page = EventPage.objects.get(url_path='/home/events/christmas/') unpublished_event_page = EventPage.objects.get(url_path='/home/events/tentative-unpublished-event/') someone_elses_event_page = EventPage.objects.get(url_path='/home/events/someone-elses-event/') user_perms = UserPagePermissionsProxy(user) editable_pages = user_perms.editable_pages() can_edit_pages = user_perms.can_edit_pages() publishable_pages = user_perms.publishable_pages() can_publish_pages = user_perms.can_publish_pages() self.assertFalse(editable_pages.filter(id=homepage.id).exists()) self.assertFalse(editable_pages.filter(id=christmas_page.id).exists()) self.assertFalse(editable_pages.filter(id=unpublished_event_page.id).exists()) self.assertFalse(editable_pages.filter(id=someone_elses_event_page.id).exists()) self.assertFalse(can_edit_pages) self.assertFalse(publishable_pages.filter(id=homepage.id).exists()) self.assertFalse(publishable_pages.filter(id=christmas_page.id).exists()) self.assertFalse(publishable_pages.filter(id=unpublished_event_page.id).exists()) self.assertFalse(publishable_pages.filter(id=someone_elses_event_page.id).exists()) self.assertFalse(can_publish_pages)
def test_editable_pages_for_superuser(self): user = get_user_model().objects.get(email='*****@*****.**') homepage = Page.objects.get(url_path='/home/') christmas_page = EventPage.objects.get( url_path='/home/events/christmas/') unpublished_event_page = EventPage.objects.get( url_path='/home/events/tentative-unpublished-event/') someone_elses_event_page = EventPage.objects.get( url_path='/home/events/someone-elses-event/') user_perms = UserPagePermissionsProxy(user) editable_pages = user_perms.editable_pages() can_edit_pages = user_perms.can_edit_pages() publishable_pages = user_perms.publishable_pages() can_publish_pages = user_perms.can_publish_pages() self.assertTrue(editable_pages.filter(id=homepage.id).exists()) self.assertTrue(editable_pages.filter(id=christmas_page.id).exists()) self.assertTrue( editable_pages.filter(id=unpublished_event_page.id).exists()) self.assertTrue( editable_pages.filter(id=someone_elses_event_page.id).exists()) self.assertTrue(can_edit_pages) self.assertTrue(publishable_pages.filter(id=homepage.id).exists()) self.assertTrue( publishable_pages.filter(id=christmas_page.id).exists()) self.assertTrue( publishable_pages.filter(id=unpublished_event_page.id).exists()) self.assertTrue( publishable_pages.filter(id=someone_elses_event_page.id).exists()) self.assertTrue(can_publish_pages)
def test_editable_pages_for_user_with_edit_permission(self): event_moderator = get_user_model().objects.get(username='******') homepage = Page.objects.get(url_path='/home/') christmas_page = EventPage.objects.get(url_path='/home/events/christmas/') unpublished_event_page = EventPage.objects.get(url_path='/home/events/tentative-unpublished-event/') someone_elses_event_page = EventPage.objects.get(url_path='/home/events/someone-elses-event/') user_perms = UserPagePermissionsProxy(event_moderator) editable_pages = user_perms.editable_pages() can_edit_pages = user_perms.can_edit_pages() publishable_pages = user_perms.publishable_pages() can_publish_pages = user_perms.can_publish_pages() self.assertFalse(editable_pages.filter(id=homepage.id).exists()) self.assertTrue(editable_pages.filter(id=christmas_page.id).exists()) self.assertTrue(editable_pages.filter(id=unpublished_event_page.id).exists()) self.assertTrue(editable_pages.filter(id=someone_elses_event_page.id).exists()) self.assertTrue(can_edit_pages) self.assertFalse(publishable_pages.filter(id=homepage.id).exists()) self.assertTrue(publishable_pages.filter(id=christmas_page.id).exists()) self.assertTrue(publishable_pages.filter(id=unpublished_event_page.id).exists()) self.assertTrue(publishable_pages.filter(id=someone_elses_event_page.id).exists()) self.assertTrue(can_publish_pages)
def register_account_notification_preferences(request): user_perms = UserPagePermissionsProxy(request.user) if user_perms.can_edit_pages() or user_perms.can_publish_pages(): return { 'url': reverse('wagtailadmin_account_notification_preferences'), 'label': _('Notification preferences'), 'help_text': _('Choose which email notifications to receive.'), }
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) user_perms = UserPagePermissionsProxy(self.instance.user) if not user_perms.can_publish_pages(): del self.fields['submitted_notifications'] if not user_perms.can_edit_pages(): del self.fields['approved_notifications'] del self.fields['rejected_notifications']
def is_active(self): # Hide the panel if the user can't edit or publish pages user_perms = UserPagePermissionsProxy(self.request.user) if not user_perms.can_edit_pages() and not user_perms.can_publish_pages(): return False # Hide the panel if there are no notification preferences return self.get_form().fields
def account(request): user_perms = UserPagePermissionsProxy(request.user) show_notification_preferences = user_perms.can_edit_pages() or user_perms.can_publish_pages() return render(request, 'wagtailadmin/account/account.html', { 'show_change_password': password_management_enabled() and request.user.has_usable_password(), 'show_notification_preferences': show_notification_preferences, 'show_preferred_language_preferences': len(get_available_admin_languages()) > 1 })
def account(request): user_perms = UserPagePermissionsProxy(request.user) show_notification_preferences = user_perms.can_edit_pages( ) or user_perms.can_publish_pages() return render( request, 'wagtailadmin/account/account.html', { 'show_change_password': password_management_enabled() and request.user.has_usable_password(), 'show_notification_preferences': show_notification_preferences, 'show_preferred_language_preferences': len(get_available_admin_languages()) > 1 })