def is_restricted(page, request): all_perms = get_any_page_view_permissions(request, page) icon = boolean_icon(all_perms.exists()) return mark_safe( ugettext('<span title="Restrictions: %(title)s">%(icon)s</span>') % { 'title': u', '.join((perm.get_grant_on_display() for perm in all_perms)) or None, 'icon': icon, })
def is_restricted(page, request): if get_cms_setting('PERMISSION'): if hasattr(page, 'permission_restricted'): text = bool(page.permission_restricted) else: all_perms = list(get_any_page_view_permissions(request, page)) text = bool(all_perms) return text else: return boolean_icon(None)
def is_restricted(page, request): if get_cms_setting("PERMISSION"): if hasattr(page, "permission_restricted"): icon = boolean_icon(bool(page.permission_restricted)) else: all_perms = list(get_any_page_view_permissions(request, page)) icon = boolean_icon(bool(all_perms)) return mark_safe(ugettext("<span>%(icon)s</span>") % {"icon": icon}) else: icon = boolean_icon(None) return mark_safe(ugettext("<span>%(icon)s</span>") % {"icon": icon})
def is_restricted(page, request): if get_cms_setting('PERMISSION'): if hasattr(page, 'permission_restricted'): icon = boolean_icon(bool(page.permission_restricted)) else: all_perms = list(get_any_page_view_permissions(request, page)) icon = boolean_icon(bool(all_perms)) return mark_safe(ugettext('<span>%(icon)s</span>') % { 'icon': icon, }) else: icon = boolean_icon(None) return mark_safe(ugettext('<span>%(icon)s</span>') % { 'icon': icon, })
def is_restricted(page, request): if get_cms_setting('PERMISSION'): all_perms = list(get_any_page_view_permissions(request, page)) icon = boolean_icon(bool(all_perms)) return mark_safe( ugettext('<span title="Restrictions: %(title)s">%(icon)s</span>') % { 'title': u', '.join((perm.get_grant_on_display() for perm in all_perms)) or None, 'icon': icon, }) else: icon = boolean_icon(None) return mark_safe( ugettext('<span title="Restrictions: %(title)s">%(icon)s</span>') % { 'title': None, 'icon': icon, })
def is_restricted(page, request): if settings.CMS_PERMISSION: all_perms = list(get_any_page_view_permissions(request, page)) icon = boolean_icon(bool(all_perms)) return mark_safe( ugettext('<span title="Restrictions: %(title)s">%(icon)s</span>') % { 'title': u', '.join((perm.get_grant_on_display() for perm in all_perms)) or None, 'icon': icon, }) else: icon = boolean_icon(None) return mark_safe( ugettext('<span title="Restrictions: %(title)s">%(icon)s</span>') % { 'title': None, 'icon': icon, })
def user_has_view_permission(user, page=None): """ This code largely duplicates Page.has_view_permission(). We do this because the source method requires a request object, which isn't appropriate in this case. Fortunately, the source method (and its dependencies) use the request object only to get the user object, when it isn't explicitly provided and for caching permissions. We don't require caching here and we can explicitly provide the user object. """ if not user: return False class FakeRequest(object): pass fake_request = FakeRequest() can_see_unrestricted = get_cms_setting('PUBLIC_FOR') == 'all' or ( get_cms_setting('PUBLIC_FOR') == 'staff' and user.is_staff) # Inherited and direct view permissions is_restricted = bool( permissions.get_any_page_view_permissions(fake_request, page)) if not is_restricted and can_see_unrestricted: return True elif not user.is_authenticated(): return False if not is_restricted: # a global permission was given to the request's user if permissions.has_global_page_permission(fake_request, page.site_id, user=user, can_view=True): return True else: # a specific permission was granted to the request's user if page.get_draft_object().has_generic_permission(fake_request, "view", user=user): return True # The user has a normal django permission to view pages globally opts = page._meta codename = '%s.view_%s' % (opts.app_label, opts.object_name.lower()) return user.has_perm(codename)
def is_restricted(page, request): if get_cms_setting('PERMISSION'): if hasattr(page, 'permission_restricted'): icon = boolean_icon(bool(page.permission_restricted)) else: all_perms = list(get_any_page_view_permissions(request, page)) icon = boolean_icon(bool(all_perms)) return mark_safe( ugettext('<span>%(icon)s</span>') % { 'icon': icon, }) else: icon = boolean_icon(None) return mark_safe( ugettext('<span>%(icon)s</span>') % { 'icon': icon, })
def user_has_view_permission(user, page=None): """ This code largely duplicates Page.has_view_permission(). We do this because the source method requires a request object, which isn't appropriate in this case. Fortunately, the source method (and its dependencies) use the request object only to get the user object, when it isn't explicitly provided and for caching permissions. We don't require caching here and we can explicitly provide the user object. """ if not user: return False class FakeRequest(object): pass fake_request = FakeRequest() can_see_unrestricted = get_cms_setting('PUBLIC_FOR') == 'all' or ( get_cms_setting('PUBLIC_FOR') == 'staff' and user.is_staff) # Inherited and direct view permissions is_restricted = bool( permissions.get_any_page_view_permissions(fake_request, page)) if not is_restricted and can_see_unrestricted: return True elif not user.is_authenticated(): return False if not is_restricted: # a global permission was given to the request's user if permissions.has_global_page_permission( fake_request, page.site_id, user=user, can_view=True): return True else: # a specific permission was granted to the request's user if page.get_draft_object().has_generic_permission( fake_request, "view", user=user): return True # The user has a normal django permission to view pages globally opts = page._meta codename = '%s.view_%s' % (opts.app_label, opts.object_name.lower()) return user.has_perm(codename)