def permit? (privilege, options = {}) # :yields:
      if permit!(privilege, options.merge(:bang=> false))
        yield if block_given?
        true
      else
        false
      end
    end
def permit? (privilege, options = {}) # :yields:
      if permit!(privilege, options.merge(:bang=> false))
        yield if block_given?
        true
      else
        false
      end
    end
Calls permit! but doesn't raise authorization errors. If no exception is
 raised, permit? returns true and yields  to the optional block.