How do I make signup page available only for logged in staff users in Django allauth?

Could you show me an example?

Is that how is it supposed to work:

def has_change_permission(self, request, obj=None):
        if obj:
            if isinstance(obj, User):
                if obj.is_staff:
                    return False
        return True

What about letting him add, but not change, user?

And when adding user, could we make the password system generated (also random generated password) ?