Проверьте, есть ли у пользователя разрешение на просмотр другой страницы в Django CMS

Я хотел бы проверить, есть ли у пользователя разрешения (входит ли он в необходимые группы) для просмотра страницы, отличной от текущей.

from cms.models.permissionmodels import PagePermission
if PagePermission.objects.filter(page=page_to_check, user=request.user, can_view=True).exists():

всегда возвращает значение false.

Как я могу проверить, должен ли пользователь иметь возможность просматривать page_to_check?

Спасибо вам!

Самый простой способ проверить, есть ли у пользователя разрешение на просмотр страницы, - это использовать cms.utils.page_permissions:

from cms.utils.page_permissions import has_generic_permission

if has_generic_permission(page_to_check, user, "view_page"):
    ...

Это отражает как глобальные, так и постраничные разрешения CMS. Кроме того, используются кэши разрешений, что полезно для повышения производительности.

Другие действия, которые вы можете проверить, это:

  • add_page

  • change_page

  • change_page_advanced_settings

  • change_page_permissions

  • delete_page

  • delete_page_translation

  • publish_page

  • move_page

  • view_page

Вернуться на верх