You can definitely use multiple mixins for permissions, as long as super is called correctly.  For example, this works:

    class A(object):
        def main(self):
            print "A"

    class B(object):
        def main(self):
            print "B"
            super(B, self).main()

    class C(B, A):
        def main(self):
            print "C"
            super(C, self).main()

    >>> C().main()
    C
    B
    A

This is used, for example, [in django-braces](https://github.com/brack3t/django-braces/blob/master/braces/views.py#L82).  Each dispatch method will be called in order from left to right, and as long as all call super except the rightmost, each block will be executed.  The difficulty is if you need custom dispatch logic and don't plan on calling the `View` dispatch method at all.