def authorize(self, ctx, identity, ops):
        '''Implements Authorizer.authorize by calling f with the given identity
        for each operation.
        '''
        allowed = []
        caveats = []
        for op in ops:
            ok, fcaveats = self._f(ctx, identity, op)
            allowed.append(ok)
            if fcaveats is not None:
                caveats.extend(fcaveats)
        return allowed, caveats