Проверьте, есть ли у пользователя разрешение на просмотр другой страницы в 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