def is_client_allowed(self, username=None, client=None, server=None):
        if not username or not client:  # pragma: no cover
            return False
        # No server defined whereas we have an extended ACL
        if not server and self.servers(username):
            return False
        cls = self.clients(username, server)
        return (cls and client in cls) or self.is_admin(username)
_set_attributes(node) -> None.  Adds file node-specific attributes.
dataset/ETHPy150Open ziirish/burp-ui/burpui/misc/acl/basic.py/BasicACL.is_client_allowed--crossover with--dataset/ETHPy150Open PyTables/PyTables/tables/nodes/filenode.py/RAFileNode._set_attributes