Beispiel #1
0
 def test_unauthed(self):
     request = self.get_request()
     page = Page()
     page.pk = 1
     page.level = 0
     page.tree_id = 1
     self.assertTrue(page.has_view_permission(request))
Beispiel #2
0
 def test_unauthed(self):
     request = self.get_request()
     page = Page()
     page.pk = 1
     page.level = 0
     page.tree_id = 1
     self.assertTrue(page.has_view_permission(request))
Beispiel #3
0
 def test_public_for_all(self):
     user = get_user_model().objects.create_user('user', '*****@*****.**', 'user')
     request = self.get_request(user)
     page = Page()
     page.pk = 1
     fake_tree_attrs(page)
     self.assertTrue(page.has_view_permission(request))
Beispiel #4
0
 def test_unauthed_no_access(self):
     with SettingsOverride(CMS_PUBLIC_FOR='staff'):
         request = self.get_request()
         page = Page()
         page.pk = 1
         fake_tree_attrs(page)
         self.assertFalse(page.has_view_permission(request))
Beispiel #5
0
 def test_public_for_all_staff_assert_num_queries(self):
     request = self.get_request()
     request.user.is_staff = True
     page = Page()
     page.pk = 1
     with self.assertNumQueries(0):
         page.has_view_permission(request)
Beispiel #6
0
 def test_public_for_all_staff_assert_num_queries(self):
     request = self.get_request()
     request.user.is_staff = True
     page = Page()
     page.pk = 1
     with self.assertNumQueries(0):
         page.has_view_permission(request)
Beispiel #7
0
 def test_public_for_all_staff(self):
     request = self.get_request()
     request.user.is_staff = True
     page = Page()
     page.pk = 1
     fake_mptt_attrs(page)
     self.assertTrue(page.has_view_permission(request))
Beispiel #8
0
 def test_public_for_all(self):
     user = User.objects.create_user('user', '*****@*****.**', 'user')
     request = self.get_request(user)
     page = Page()
     page.pk = 1
     page.level = 0
     page.tree_id = 1
     self.assertTrue(page.has_view_permission(request))
Beispiel #9
0
 def test_authed_no_access(self):
     with SettingsOverride(CMS_PUBLIC_FOR='staff'):
         user = get_user_model().objects.create_user('user', '*****@*****.**', 'user')
         request = self.get_request(user)
         page = Page()
         page.pk = 1
         fake_tree_attrs(page)
         self.assertFalse(page.has_view_permission(request))
Beispiel #10
0
 def test_public_for_all_staff(self):
     request = self.get_request()
     request.user.is_staff = True
     page = Page()
     page.pk = 1
     pages = [page]
     result = get_visible_pages(request, pages)
     self.assertEqual(result, [1])
Beispiel #11
0
 def test_public_for_all(self):
     user = User.objects.create_user('user', '*****@*****.**', 'user')
     request = self.get_request(user)
     page = Page()
     page.pk = 1
     page.level = 0
     page.tree_id = 1
     self.assertTrue(page.has_view_permission(request))
Beispiel #12
0
 def test_unauthed_no_access(self):
     with SettingsOverride(CMS_PUBLIC_FOR='staff'):
         request = self.get_request()
         page = Page()
         page.pk = 1
         page.level = 0
         page.tree_id = 1
         self.assertFalse(page.has_view_permission(request))
Beispiel #13
0
 def test_public_for_all_staff_assert_num_queries(self):
     request = self.get_request()
     request.user.is_staff = True
     page = Page()
     page.pk = 1
     pages = [page]
     with self.assertNumQueries(0):
         get_visible_pages(request, pages)
Beispiel #14
0
 def test_authed_basic_perm(self):
     with SettingsOverride(CMS_PUBLIC_FOR='staff'):
         user = get_user_model().objects.create_user('user', '*****@*****.**', 'user')
         user.user_permissions.add(Permission.objects.get(codename='view_page'))
         request = self.get_request(user)
         page = Page()
         page.pk = 1
         fake_tree_attrs(page)
         self.assertTrue(page.has_view_permission(request))
Beispiel #15
0
 def test_authed_no_access(self):
     with SettingsOverride(CMS_PUBLIC_FOR='staff'):
         user = User.objects.create_user('user', '*****@*****.**', 'user')
         request = self.get_request(user)
         page = Page()
         page.pk = 1
         page.level = 0
         page.tree_id = 1
         self.assertFalse(page.has_view_permission(request))
Beispiel #16
0
 def test_unauthed_no_access_num_queries(self):
     current_site = Site()
     current_site.pk = 1
     request = self.get_request()
     page = Page()
     page.pk = 1
     fake_tree_attrs(page)
     with self.assertNumQueries(1):
         page.has_view_permission(request)
Beispiel #17
0
 def test_unauthed(self):
     request = self.get_request()
     page = Page()
     page.pk = 1
     page.level = 0
     page.tree_id = 1
     pages = [page]
     result = get_visible_pages(request, pages)
     self.assertEqual(result, [1])
Beispiel #18
0
 def test_authed_no_access(self):
     with SettingsOverride(CMS_PUBLIC_FOR='staff'):
         user = User.objects.create_user('user', '*****@*****.**', 'user')
         request = self.get_request(user)
         page = Page()
         page.pk = 1
         page.level = 0
         page.tree_id = 1
         self.assertFalse(page.has_view_permission(request))
Beispiel #19
0
 def test_global_permission(self):
     with SettingsOverride(CMS_PUBLIC_FOR='staff'):
         user = get_user_model().objects.create_user('user', '*****@*****.**', 'user')
         GlobalPagePermission.objects.create(can_view=True, user=user)
         request = self.get_request(user)
         page = Page()
         page.pk = 1
         fake_tree_attrs(page)
         self.assertTrue(page.has_view_permission(request))
Beispiel #20
0
 def test_authed_basic_perm(self):
     with SettingsOverride(CMS_PUBLIC_FOR='staff'):
         user = User.objects.create_user('user', '*****@*****.**', 'user')
         user.user_permissions.add(Permission.objects.get(codename='view_page'))
         request = self.get_request(user)
         page = Page()
         page.pk = 1
         page.level = 0
         page.tree_id = 1
         self.assertTrue(page.has_view_permission(request))
Beispiel #21
0
 def test_unauthed_no_access(self):
     with SettingsOverride(CMS_PUBLIC_FOR='staff'):
         request = self.get_request()
         page = Page()
         page.pk = 1
         page.level = 0
         page.tree_id = 1
         pages = [page]
         result = get_visible_pages(request, pages)
         self.assertEqual(result, [])
Beispiel #22
0
 def test_global_permission(self):
     with SettingsOverride(CMS_PUBLIC_FOR='staff'):
         user = User.objects.create_user('user', '*****@*****.**', 'user')
         GlobalPagePermission.objects.create(can_view=True, user=user)
         request = self.get_request(user)
         page = Page()
         page.pk = 1
         page.level = 0
         page.tree_id = 1
         self.assertTrue(page.has_view_permission(request))
Beispiel #23
0
 def test_unauthed_no_access_num_queries(self):
     site = Site()
     site.pk = 1
     request = self.get_request()
     page = Page()
     page.pk = 1
     page.level = 0
     page.tree_id = 1
     with self.assertNumQueries(1):
         page.has_view_permission(request)
Beispiel #24
0
 def test_unauthed_no_access_num_queries(self):
     site = Site()
     site.pk = 1
     request = self.get_request()
     page = Page()
     page.pk = 1
     page.level = 0
     page.tree_id = 1
     with self.assertNumQueries(1):
         page.has_view_permission(request)
Beispiel #25
0
 def test_global_permission(self):
     with SettingsOverride(CMS_PUBLIC_FOR='staff'):
         user = User.objects.create_user('user', '*****@*****.**', 'user')
         GlobalPagePermission.objects.create(can_view=True, user=user)
         request = self.get_request(user)
         page = Page()
         page.pk = 1
         page.level = 0
         page.tree_id = 1
         self.assertTrue(page.has_view_permission(request))
Beispiel #26
0
 def test_public_for_all(self):
     user = User.objects.create_user('user', '*****@*****.**', 'user')
     request = self.get_request(user)
     page = Page()
     page.pk = 1
     page.level = 0
     page.tree_id = 1
     pages = [page]
     result = get_visible_pages(request, pages)
     self.assertEqual(result, [1])
Beispiel #27
0
def copy_pages():

    pages = PagesPage.objects.order_by('tree_id', 'lft', )
    # remove all the previous pages
    CMSPage.objects.all().delete()

    parents = {}

    for page in pages:
        cmspage = CMSPage()
        # replicate the language independent structure information
        # thanks to the common ancestor we can reuse exactly the same tree
        # information
        cmspage.pk = page.pk
        cmspage.creation_date = page.creation_date
        cmspage.publication_date = page.publication_date
        cmspage.publication_end_date = page.publication_end_date
        cmspage.changed_date = page.last_modification_date
        cmspage.template = 'django_' + page.template
        cmspage.level = page.level
        cmspage.lft = page.lft
        cmspage.rght = page.rght
        cmspage.tree_id = page.tree_id
        cmspage.site_id = 1
        if page.parent_id in parents:
            cmspage.parent = parents[page.parent_id]
        cmspage.save(no_signals=True)
        cmspage.rescan_placeholders()
        parents[cmspage.pk] = cmspage
        # replicate the language dependent data
        for language in page.get_languages():
            cmstitle = Title()
            cmstitle.language = language
            cmstitle.title = page.title(language)
            cmstitle.slug = page.slug(language)
            cmstitle.page = cmspage
            cmstitle.update_path()
            cmstitle.save()
            contents = page.content_by_language(language)
            for content in contents:
                if content.type in ('subtitle', 'text', 'right-column'):
                    placeholder = cmspage.placeholders.get(slot=content.type)
                    # For the main placeholders we need to scan whether content
                    # is markdown or plain HTML
                    # This is a very naif check, but does the trick in this
                    # context
                    if content.body.find('<p>') > -1:
                        add_plugin(placeholder, plugin_type='TextPlugin', language=language, body=content.body)
                    else:
                        add_plugin(placeholder, plugin_type='MarkItUpPlugin', language=language, body=content.body)
                elif content.type not in ('slug', 'title'):
                    # Fallback import
                    placeholder = cmspage.placeholders.get(slot=content.type)
                    add_plugin(placeholder, plugin_type='TextPlugin', language=language, body=content.body)
Beispiel #28
0
 def test_unauthed_no_access_num_queries(self):
     site = Site()
     site.pk = 1
     request = self.get_request()
     page = Page()
     page.pk = 1
     page.level = 0
     page.tree_id = 1
     pages = [page]
     with self.assertNumQueries(1):
         get_visible_pages(request, pages, site)
Beispiel #29
0
 def test_authed_no_access(self):
     with SettingsOverride(CMS_PUBLIC_FOR='staff'):
         user = User.objects.create_user('user', '*****@*****.**', 'user')
         request = self.get_request(user)
         page = Page()
         page.pk = 1
         page.level = 0
         page.tree_id = 1
         pages = [page]
         result = get_visible_pages(request, pages)
         self.assertEqual(result, [])
Beispiel #30
0
 def test_global_permission(self):
     with SettingsOverride(CMS_PUBLIC_FOR='staff'):
         user = User.objects.create_user('user', '*****@*****.**', 'user')
         GlobalPagePermission.objects.create(can_view=True, user=user)
         request = self.get_request(user)
         page = Page()
         page.pk = 1
         page.level = 0
         page.tree_id = 1
         pages = [page]
         result = get_visible_pages(request, pages)
         self.assertEqual(result, [1])
Beispiel #31
0
 def test_authed_basic_perm(self):
     with SettingsOverride(CMS_PUBLIC_FOR='staff'):
         user = User.objects.create_user('user', '*****@*****.**', 'user')
         user.user_permissions.add(Permission.objects.get(codename='view_page'))
         request = self.get_request(user)
         page = Page()
         page.pk = 1
         page.level = 0
         page.tree_id = 1
         pages = [page]
         result = get_visible_pages(request, pages)
         self.assertEqual(result, [1])
Beispiel #32
0
 def test_unauthed_num_queries(self):
     request = self.get_request()
     current_site = Site()
     current_site.pk = 1
     page = Page()
     page.pk = 1
     fake_tree_attrs(page)
     with self.assertNumQueries(1):
         """
         The query is:
         PagePermission query for affected pages
         """
         page.has_view_permission(request)
Beispiel #33
0
 def test_unauthed_num_queries(self):
     request = self.get_request()
     site = Site()
     site.pk = 1
     page = Page()
     page.pk = 1
     page.level = 0
     page.tree_id = 1
     with self.assertNumQueries(1):
         """
         The query is:
         PagePermission query for affected pages
         """
         page.has_view_permission(request)
Beispiel #34
0
 def test_public_for_all_staff_assert_num_queries(self):
     request = self.get_request()
     request.user.is_staff = True
     page = Page()
     page.pk = 1
     page.level = 0
     page.tree_id = 1
     pages = [page]
     with self.assertNumQueries(1):
         """
             The queries are:
             PagePermission count query
         """    
         get_visible_pages(request, pages)
Beispiel #35
0
 def test_unauthed_num_queries(self):
     request = self.get_request()
     site = Site()
     site.pk = 1
     page = Page()
     page.pk = 1
     page.level = 0
     page.tree_id = 1
     with self.assertNumQueries(1):
         """
         The query is:
         PagePermission query for affected pages
         """
         page.has_view_permission(request)
Beispiel #36
0
 def test_public_for_all_num_queries(self):
     user = User.objects.create_user('user', '*****@*****.**', 'user')
     request = self.get_request(user)
     site = Site()
     site.pk = 1
     page = Page()
     page.pk = 1
     page.level = 0
     page.tree_id = 1
     with self.assertNumQueries(3):
         """
         The queries are:
         The current Site
         PagePermission query for affected pages
         GlobalpagePermission query for user
         """
         page.has_view_permission(request)
Beispiel #37
0
 def test_public_for_all_num_queries(self):
     user = User.objects.create_user('user', '*****@*****.**', 'user')
     request = self.get_request(user)
     site = Site()
     site.pk = 1
     page = Page()
     page.pk = 1
     page.level = 0
     page.tree_id = 1
     with self.assertNumQueries(3):
         """
         The queries are:
         The current Site
         PagePermission query for affected pages
         GlobalpagePermission query for user
         """
         page.has_view_permission(request)
Beispiel #38
0
 def test_unauthed_num_queries(self):
     request = self.get_request()
     site = Site()
     site.pk = 1
     page = Page()
     page.pk = 1
     page.level = 0
     page.tree_id = 1
     pages = [page]
     with self.assertNumQueries(1):
         """
         The query is:
         PagePermission query for affected pages
         
         global is not executed because it's lazy
         """
         get_visible_pages(request, pages, site)
Beispiel #39
0
 def test_public_for_all_num_queries(self):
     user = User.objects.create_user('user', '*****@*****.**', 'user')
     request = self.get_request(user)
     site = Site()
     site.pk = 1
     page = Page()
     page.pk = 1
     page.level = 0
     page.tree_id = 1
     pages = [page]
     with self.assertNumQueries(2):
         """
         The queries are:
         PagePermission query for affected pages
         GlobalpagePermission query for user
         """
         get_visible_pages(request, pages, site)
Beispiel #40
0
 def test_public_for_all_num_queries(self):
     user = get_user_model().objects.create_user('user', '*****@*****.**', 'user')
     request = self.get_request(user)
     current_site = Site()
     current_site.pk = 1
     current_site.save()
     page = Page()
     page.pk = 1
     fake_tree_attrs(page)
     with self.assertNumQueries(3):
         """
         The queries are:
         The current Site
         PagePermission query for affected pages
         GlobalpagePermission query for user
         """
         page.has_view_permission(request)
Beispiel #41
0
 def test_authed_no_access_num_queries(self):
     site = Site()
     site.pk = 1
     with SettingsOverride(CMS_PUBLIC_FOR='staff'):
         user = User.objects.create_user('user', '*****@*****.**', 'user')
         request = self.get_request(user)
         page = Page()
         page.pk = 1
         page.level = 0
         page.tree_id = 1
         pages = [page]
         with self.assertNumQueries(4):
             """
             The queries are:
             PagePermission query for affected pages
             GlobalpagePermission query for user
             Generic django permission lookup
             content type lookup by permission lookup
             """
             get_visible_pages(request, pages, site)
Beispiel #42
0
 def test_authed_basic_perm_num_queries(self):
     site = Site()
     site.pk = 1
     with SettingsOverride(CMS_PUBLIC_FOR='staff'):
         user = User.objects.create_user('user', '*****@*****.**', 'user')
         user.user_permissions.add(Permission.objects.get(codename='view_page'))
         request = self.get_request(user)
         page = Page()
         page.pk = 1
         page.level = 0
         page.tree_id = 1
         with self.assertNumQueries(5):
             """
             The queries are:
             The site
             PagePermission query for affected pages
             GlobalpagePermission query for user
             Generic django permission lookup
             content type lookup by permission lookup
             """
             page.has_view_permission(request)
Beispiel #43
0
 def test_public_for_all_staff(self):
     request = self.get_request()
     request.user.is_staff = True
     page = Page()
     page.pk = 1
     self.assertTrue(page.has_view_permission(request))
Beispiel #44
0
def copy_pages():

    pages = PagesPage.objects.order_by(
        'tree_id',
        'lft',
    )
    # remove all the previous pages
    CMSPage.objects.all().delete()

    parents = {}

    for page in pages:
        cmspage = CMSPage()
        # replicate the language independent structure information
        # thanks to the common ancestor we can reuse exactly the same tree
        # information
        cmspage.pk = page.pk
        cmspage.creation_date = page.creation_date
        cmspage.publication_date = page.publication_date
        cmspage.publication_end_date = page.publication_end_date
        cmspage.changed_date = page.last_modification_date
        cmspage.template = 'django_' + page.template
        cmspage.level = page.level
        cmspage.lft = page.lft
        cmspage.rght = page.rght
        cmspage.tree_id = page.tree_id
        cmspage.site_id = 1
        if page.parent_id in parents:
            cmspage.parent = parents[page.parent_id]
        cmspage.save(no_signals=True)
        cmspage.rescan_placeholders()
        parents[cmspage.pk] = cmspage
        # replicate the language dependent data
        for language in page.get_languages():
            cmstitle = Title()
            cmstitle.language = language
            cmstitle.title = page.title(language)
            cmstitle.slug = page.slug(language)
            cmstitle.page = cmspage
            cmstitle.update_path()
            cmstitle.save()
            contents = page.content_by_language(language)
            for content in contents:
                if content.type in ('subtitle', 'text', 'right-column'):
                    placeholder = cmspage.placeholders.get(slot=content.type)
                    # For the main placeholders we need to scan whether content
                    # is markdown or plain HTML
                    # This is a very naif check, but does the trick in this
                    # context
                    if content.body.find('<p>') > -1:
                        add_plugin(placeholder,
                                   plugin_type='TextPlugin',
                                   language=language,
                                   body=content.body)
                    else:
                        add_plugin(placeholder,
                                   plugin_type='MarkItUpPlugin',
                                   language=language,
                                   body=content.body)
                elif content.type not in ('slug', 'title'):
                    # Fallback import
                    placeholder = cmspage.placeholders.get(slot=content.type)
                    add_plugin(placeholder,
                               plugin_type='TextPlugin',
                               language=language,
                               body=content.body)