dilrajsachdev
11/25/2013 - 9:55 AM

Checking User permission Decorator from Django permissions Groups, if can't find then redirect to permission-denied

Checking User permission Decorator from Django permissions Groups, if can't find then redirect to permission-denied

def check_permission():
    """checking permissions"""
    def decorator(func):
        def inner_decorator(request, *args, **kwargs):
            user = request.user
            user_perm = user.user_permissions.all()            
            user_perm = list(user_perm)            
            #adding permissions from groups and individuals
            for k in user.groups.all():
                user_perm = user_perm + list(k.permissions.all())           
            
            table = Table.objects.filter(permissions__in=user_perm).distinct()
            if categories:
                return func(request, categories, *args, **kwargs)
            else:
                return HttpResponseRedirect('/permission-denied/')            
        return wraps(func)(inner_decorator)
    return decorator