Example #1
0
def has_any_page_change_permissions(request):
    from cms.admin.utils import current_site
    permissions = PagePermission.objects.filter(
        page__site=current_site(request)).filter(
            Q(user=request.user) | Q(group__in=request.user.groups.all()))
    if permissions.count() > 0:
        return True
    return False
Example #2
0
    def __init__(self, request, *args, **kwargs):
        super(CMSChangeList, self).__init__(request, *args, **kwargs)
        from cms.admin.utils import current_site
        self._current_site = current_site(request)
        try:
            self.query_set = self.get_query_set(request)
        except:
            raise
        self.get_results(request)

        request.session['cms_admin_site'] = self._current_site.pk
        self.set_sites(request)
 def __init__(self, request, *args, **kwargs):
     super(CMSChangeList, self).__init__(request, *args, **kwargs)
     from cms.admin.utils import current_site
     self._current_site = current_site(request)
     try:
         self.query_set = self.get_query_set(request)
     except:
         raise
     self.get_results(request)
     
     
     request.session['cms_admin_site'] = self._current_site.pk
     self.set_sites(request)
Example #4
0
def has_page_add_permission(request):
    """Return true if the current user has permission to add a new page. This is
    just used for general add buttons - only superuser, or user with can_add in
    globalpagepermission can add page.
    
    
    Special case occur when page is going to be added from add page button in
    change list - then we have target and position there, so check if user can
    add page under target page will occur. 
    """
    opts = Page._meta
    if request.user.is_superuser:
        return True

    # if add under page
    target = request.GET.get('target', None)
    position = request.GET.get('position', None)

    if target is not None:
        try:
            page = Page.objects.get(pk=target)
        except:
            return False
        if (request.user.has_perm(opts.app_label + '.' +
                                  opts.get_add_permission())
                and GlobalPagePermission.objects.with_user(
                    request.user).filter(can_add=True,
                                         sites__in=[page.site_id])):
            return True
        if position in ("first-child", "last-child"):
            return page.has_add_permission(request)
        elif position in ("left", "right"):
            if page.parent_id:
                return has_generic_permission(page.parent_id, request.user,
                                              "add", page.site)
                #return page.parent.has_add_permission(request)
    else:
        from cms.admin.utils import current_site
        site = current_site(request)
        if (request.user.has_perm(opts.app_label + '.' +
                                  opts.get_add_permission())
                and GlobalPagePermission.objects.with_user(
                    request.user).filter(can_add=True, sites__in=[site])):
            return True
    return False
def has_page_add_permission(request):
    """Return true if the current user has permission to add a new page. This is
    just used for general add buttons - only superuser, or user with can_add in
    globalpagepermission can add page.
    
    
    Special case occur when page is going to be added from add page button in
    change list - then we have target and position there, so check if user can
    add page under target page will occur. 
    """        
    opts = Page._meta
    if request.user.is_superuser:
        return True
    
    # if add under page
    target = request.GET.get('target', None)
    position = request.GET.get('position', None)
    
    if target is not None:
        try:
            page = Page.objects.get(pk=target)
        except:
            return False
        if (request.user.has_perm(opts.app_label + '.' + opts.get_add_permission()) and
            GlobalPagePermission.objects.with_user(request.user).filter(can_add=True, sites__in=[page.site_id])):
            return True
        if position in ("first-child", "last-child"):
            return page.has_add_permission(request)
        elif position in ("left", "right"):
            if page.parent_id:
                return has_generic_permission(page.parent_id, request.user, "add", page.site)
                #return page.parent.has_add_permission(request)
    else:
        from cms.admin.utils import current_site
        site = current_site(request)
        if (request.user.has_perm(opts.app_label + '.' + opts.get_add_permission()) and
            GlobalPagePermission.objects.with_user(request.user).filter(can_add=True, sites__in=[site])):
            return True
    return False
Example #6
0
def has_page_change_permission(request):
    """Return true if the current user has permission to change any page. This is
    just used for building the tree - only superuser, or user with can_change in
    globalpagepermission can change a page.
    """
    from cms.admin.utils import current_site
    opts = Page._meta
    if request.user.is_superuser or \
        (request.user.has_perm(opts.app_label + '.' + opts.get_change_permission()) and
            (GlobalPagePermission.objects.with_user(request.user).filter(can_change=True, sites__in=[current_site(request)]).count()>0) or
            has_any_page_change_permissions(request)):
        return True
    return False
def has_page_change_permission(request):
    """Return true if the current user has permission to change any page. This is
    just used for building the tree - only superuser, or user with can_change in
    globalpagepermission can change a page.
    """    
    from cms.admin.utils import current_site    
    opts = Page._meta
    if request.user.is_superuser or \
        (request.user.has_perm(opts.app_label + '.' + opts.get_change_permission()) and
            (GlobalPagePermission.objects.with_user(request.user).filter(can_change=True, sites__in=[current_site(request)]).count()>0) or 
            has_any_page_change_permissions(request)):
        return True
    return False
def has_any_page_change_permissions(request):
    from cms.admin.utils import current_site  
    permissions = PagePermission.objects.filter(page__site=current_site(request)).filter(Q(user=request.user)|Q(group__in=request.user.groups.all()))
    if permissions.count()>0:
        return True
    return False