取消用户(user_id)的权限(permission)

async def revoke(self, user_id, *permissions):
        " 取消用户(user_id)的权限(permission) "

        prefix = f"{self._prefix_perm}/{user_id}/"

        perm_names = [str(p) for p in permissions]        
        checkings = [
            KV.delete.txn(prefix + p, b'\0', prev_kv=True) for p in perm_names
        ]
        success, response = await self._client.txn(compare=[], success=checkings)
        if not success:
            errmsg = f"无法取消用户({user_id})的权限: {{{', '.join(perm_names)}}}"
            raise Unprocessable(errmsg)
        if logger.isEnabledFor(logging.DEBUG):
            revoked, ignored = set(), set()
            for i, item  in enumerate(response):
                if item:
                    revoked.add(perm_names[i])
                else:
                    ignored.add(perm_names[i])
            
            logger.debug(f"撤销用户({user_id})权限({', '.join(revoked)}), "
                            f"忽略并无此授权({', '.join(ignored)})")