Example #1
0
    def test_change_view_redirects_to_login_if_non_staff_user(self):
        user = factories.UserFactory(is_superuser=False, is_staff=False)
        self.client.force_login(user)

        menu_content = factories.MenuContentFactory()
        item = factories.ChildMenuItemFactory(parent=menu_content.root)
        change_url = reverse(
            "admin:djangocms_navigation_menuitem_change",
            kwargs={"menu_content_id": menu_content.pk, "object_id": item.pk},
        )
        content_type = ContentType.objects.get(app_label="cms", model="page")
        page = factories.PageContentFactory().page
        data = {
            "title": "My new Title",
            "content_type": content_type.pk,
            "object_id": page.pk,
            "_ref_node_id": menu_content.root.id,
            "numchild": 1,
            "link_target": "_blank",
            "_position": "first-child",
        }

        # For POST
        response = self.client.post(change_url, data)
        redirect_url = reverse("admin:login") + "?next=" + change_url
        self.assertRedirects(response, redirect_url)

        # For GET
        response = self.client.get(change_url)
        self.assertRedirects(response, redirect_url)
    def test_navigation_menu_not_added_to_admin_menu_if_user_doesnt_have_permissions(
            self):
        user = factories.UserFactory()
        page_content = factories.PageContentFactory()
        toolbar = self._get_toolbar(page_content, preview_mode=True, user=user)
        toolbar.populate()
        toolbar.post_template_populate()
        cms_toolbar = toolbar.toolbar
        navigation_menu_item = self._find_menu_item("Navigation...",
                                                    cms_toolbar)

        self.assertIsNone(navigation_menu_item)
Example #3
0
    def test_changelist_view_redirects_to_login_if_non_staff_user(self):
        user = factories.UserFactory(is_superuser=False, is_staff=False)
        self.client.force_login(user)

        menu_content = factories.MenuContentFactory()
        factories.ChildMenuItemFactory.create_batch(5, parent=menu_content.root)
        list_url = reverse(
            "admin:djangocms_navigation_menuitem_list", args=(menu_content.id,)
        )

        response = self.client.get(list_url)

        redirect_url = reverse("admin:login") + "?next=" + list_url
        self.assertRedirects(response, redirect_url)
 def _get_toolbar(self, content_obj, user=None, **kwargs):
     """Helper method to set up the toolbar
     """
     if not user:
         user = factories.UserFactory(is_staff=True)
     request = self._get_page_request(
         page=content_obj.page if content_obj else None, user=user)
     cms_toolbar = CMSToolbar(request)
     toolbar = NavigationToolbar(cms_toolbar.request,
                                 toolbar=cms_toolbar,
                                 is_current_app=True,
                                 app_path="/")
     toolbar.toolbar.set_object(content_obj)
     return toolbar
Example #5
0
def get_toolbar(content_obj, user=None, **kwargs):
    """
    Helper method to set up the toolbar
    :param content_obj: A content object
    :param user: The user requesting the toolbar
    :return: A toolbar object
    """
    if not user:
        user = factories.UserFactory(is_staff=True)
    request = get_page_request(
        page=content_obj.page if content_obj else None, user=user
    )
    cms_toolbar = CMSToolbar(request)
    toolbar = NavigationToolbar(
        cms_toolbar.request, toolbar=cms_toolbar, is_current_app=True, app_path="/"
    )
    toolbar.toolbar.set_object(content_obj)
    return toolbar
    def test_navigation_menu_added_to_admin_menu(self):
        user = factories.UserFactory()
        user.user_permissions.add(
            Permission.objects.get(
                content_type__app_label="djangocms_navigation",
                codename="change_menucontent",
            ))
        page_content = factories.PageContentFactory()
        toolbar = self._get_toolbar(page_content, preview_mode=True, user=user)
        toolbar.populate()
        toolbar.post_template_populate()
        cms_toolbar = toolbar.toolbar
        navigation_menu_item = self._find_menu_item("Navigation...",
                                                    cms_toolbar)
        url = reverse("admin:djangocms_navigation_menucontent_changelist")

        self.assertIsNotNone(navigation_menu_item)
        self.assertIsInstance(navigation_menu_item, SideframeItem)
        self.assertEqual(navigation_menu_item.url, url)
    def test_move_node_view_redirects_to_login_if_non_staff_user(self):
        user = factories.UserFactory(is_superuser=False, is_staff=False)
        self.client.force_login(user)

        menu_content = factories.MenuContentFactory()
        child = factories.ChildMenuItemFactory(parent=menu_content.root)
        child_of_child = factories.ChildMenuItemFactory(parent=child)
        move_url = reverse("admin:djangocms_navigation_menuitem_move_node",
                           args=(menu_content.id, ))
        data = {
            "node_id": child_of_child.pk,
            "sibling_id": menu_content.root.pk,
            "as_child": 1,
        }

        # For POST
        response = self.client.post(move_url, data=data)
        redirect_url = reverse("admin:login") + "?next=" + move_url
        self.assertRedirects(response, redirect_url)

        # For GET
        response = self.client.get(move_url)
        self.assertRedirects(response, redirect_url)
Example #8
0
 def setUp(self):
     self.request = RequestFactory().get("/")
     self.user = factories.UserFactory()
     self.request.user = self.user
     self.renderer = menu_pool.get_renderer(self.request)
     self.menu = CMSMenu(self.renderer)
Example #9
0
 def setUp(self):
     self.selector = NavigationSelector(None)
     self.request = RequestFactory().get("/")
     self.request.user = factories.UserFactory()
     self.request.toolbar = CMSToolbar(self.request)
Example #10
0
 def setUpTestData(cls):
     cls.user = factories.UserFactory()