﻿ticket,summary,type,release,owner,status,created,modified,_description,_reporter
13515,"Owner is set to ""< default >"" if no owner field set when creating ticket",defect,1.2,Ryan J Ollos,accepted,2018-12-30T15:10:40+01:00,2020-05-18T07:00:38+02:00,"Trac 1.2.3 + XmlRpcPlugin 1.1.7dev0.

According to TracTickets:

> `default_owner`: Name of the default owner. If set to the text `< default >` (the default value), the component owner is used.

But it will set owner to `< default >` if owner is not set.",Gea-Suan Lin
11050,An invalid XML character (Unicode: 0x1b) was found in the element content of the document.,defect,1.0,osimons,reopened,2013-05-03T13:54:53+02:00,2015-06-25T11:15:02+02:00,"There is a ticket which contains some Escape characters and when we try to get that ticket using API, it gives us error ""An invalid XML character (Unicode: 0x1b) was found in the element content of the document"".

As there are some invalid XML characters which parser can't parse, we suggest you to remove those before sending XML.",sanket.modi@…
10738,XmlRpcPlugin does not respect ITicketManipulators,enhancement,1.0,osimons,reopened,2012-12-30T10:37:56+01:00,2019-11-13T08:47:09+01:00,I have an ITicketManipulator to restrict ticket creation for a specific component but the JSON RPC interface skips past the ITicketManipulator.,Rob Emanuele
13142,Checkbox values are not correct parsed,defect,1.0,osimons,new,2017-04-07T11:49:56+02:00,2020-05-01T06:51:13+02:00,"=== Used Software: ===
Trac 1.0.13
Trac RPC 1.1.7.dev0
Eclipse Neon.3 with Mylyn

=== Problem ===
We have some custom ticket fields with type checkbox.
Trac uses the values 0 and 1 while saving such a field. With this values the web interface displays the html checkbox as unmarked or marked.
But if we save the ticket with Eclipse Mylyn the value is saved as 'true' or 'false'. The trac web interface doesn't understand this values, but Eclipse Mylyn.

So we can either always use Mylyn or the Web interface from trac but not both together.
",Rochi
8644,Auth/privileges problems with XML-RPC,defect,0.12,osimons,new,2011-03-30T16:55:25+02:00,2018-03-05T06:51:45+01:00,"My user has the XML-RPC privilege set in TracAdmin, but it's unable to use the plugin.
I've tried using PHP (my original idea) and also followed the python example that is in the plugin page. No success, always the same error: ""XML_RPC privileges are required to perform this operation"".

My password is correct, but if I change the address to login/rpc or login/xmlrpc, or if I change the username/password to something wrong, it still gives me the privileges error.

How can I fix this problem? I'm somewhat lost =(",igorsantos07@…
6396,Method `ticket.getActions` in `1.0.6` does not display actions like in ticket UI,defect,0.12,osimons,new,2010-01-04T18:18:38+01:00,2022-08-18T08:35:38+02:00,"In a Trac environment the following tickets have been added :

{{{
#!python

>>> from xmlrpclib import ServerProxy as SP
>>> p = SP('http://localhost:8000/trac-dev/rpc')
>>> TICKET_ATTRS = ('summary', 'description', 'priority', \
...                 'milestone', 'type', 'owner', 'status', \
...                 'component', 'version')
>>> for tid in xrange(5, 14):
...     d = p.ticket.get(tid)[-1]
...     print tuple(d.get(attr) for attr in TICKET_ATTRS)
...
('Ticket 1', 'Description 1', 'major', 'milestone1', 'defect', 'murphy', 'accepted', 'component1', '1.0')
('Ticket 2', 'Description 2', 'major', 'milestone4', 'task', 'murphy', 'accepted', '', '')
('Ticket 3', 'Description 3', 'critical', 'milestone3', 'enhancement', 'tester', 'new', '', '2.0')
('Ticket 4', 'Description 4', 'minor', 'milestone3', 'task', 'murphy', 'closed', 'component1', '1.0')
('Ticket 5', 'Description 5', 'minor', 'milestone3', 'task', 'murphy', 'new', '', '2.0')
('Ticket 6', 'Description 6', 'minor', 'milestone1', 'task', 'tester', 'accepted', 'component2', '1.0')
('Ticket 7', 'Description 7', 'critical', '', 'enhancement', 'murphy', 'closed', '', '')
('Ticket 8', 'Description 8', 'minor', '', 'task', 'murphy', 'closed', 'component1', '')
('Ticket 9', 'Description 9', 'minor', '', 'enhancement', 'tester', 'closed', '', '2.0')
}}}

In this case the actions retrieved via RPC are 

{{{
#!python

>>> for tid in xrange(5, 14):
...     print p.ticket.getActions(tid)
...
[['leave', 'leave', '.', []]]
[['leave', 'leave', '.', []]]
[['leave', 'leave', '.', []]]
[['leave', 'leave', '.', []], ['reopen', 'reopen', u""El pr\xf3ximo estado ser\xe1 'reopened'."", []]]
[['leave', 'leave', '.', []]]
[['leave', 'leave', '.', []]]
[['leave', 'leave', '.', []], ['reopen', 'reopen', u""El pr\xf3ximo estado ser\xe1 'reopened'."", []]]
[['leave', 'leave', '.', []], ['reopen', 'reopen', u""El pr\xf3ximo estado ser\xe1 'reopened'."", []]]
[['leave', 'leave', '.', []], ['reopen', 'reopen', u""El pr\xf3ximo estado ser\xe1 'reopened'."", []]]
}}}

On the other hand, considering the actions in the ticket UI it should be 

{{{
#!python

>>> for tid in xrange(5, 14):
...     print p.ticket.getActions(tid)
...
[['leave', 'leave', '.', []], 
    ['resolve', 'resolve', ""Se cambiar\xe1  la resolución. El pr\xf3ximo estado ser\xe1  'closed'"", ['fixed', 'invalid', 'wontfix', 'duplicate', 'worksforme']], 
    ['reassign', 'reassign', ""El dueño cambiar\xe1 . El pr\xf3ximo estado ser\xe1  'assigned'."", []], 
    ['accept', 'accept', ""El dueño cambiar\xe1  a olemis. El pr\xf3ximo estado ser\xe1  'accepted'."", []]]
[['leave', 'leave', '.', []], 
    ['resolve', 'resolve', ""Se cambiar\xe1  la resolución. El pr\xf3ximo estado ser\xe1  'closed'"", ['fixed', 'invalid', 'wontfix', 'duplicate', 'worksforme']], 
    ['reassign', 'reassign', ""El dueño cambiar\xe1 . El pr\xf3ximo estado ser\xe1  'assigned'."", []], 
    ['accept', 'accept', ""El dueño cambiar\xe1  a olemis. El pr\xf3ximo estado ser\xe1  'accepted'."", []]]
[['leave', 'leave', '.', []], 
    ['resolve', 'resolve', ""Se cambiar\xe1  la resolución. El pr\xf3ximo estado ser\xe1  'closed'"", ['fixed', 'invalid', 'wontfix', 'duplicate', 'worksforme']], 
    ['reassign', 'reassign', ""El dueño cambiar\xe1 . El pr\xf3ximo estado ser\xe1  'assigned'."", []], 
    ['accept', 'accept', ""El dueño cambiar\xe1  a olemis. El pr\xf3ximo estado ser\xe1  'accepted'."", []]]
[['leave', 'leave', '.', []], ['reopen', 'reopen', u""El pr\xf3ximo estado ser\xe1 'reopened'."", []]]
[['leave', 'leave', '.', []], 
    ['resolve', 'resolve', ""Se cambiar\xe1  la resolución. El pr\xf3ximo estado ser\xe1  'closed'"", ['fixed', 'invalid', 'wontfix', 'duplicate', 'worksforme']], 
    ['reassign', 'reassign', ""El dueño cambiar\xe1 . El pr\xf3ximo estado ser\xe1  'assigned'."", []], 
    ['accept', 'accept', ""El dueño cambiar\xe1  a olemis. El pr\xf3ximo estado ser\xe1  'accepted'."", []]]
[['leave', 'leave', '.', []], 
    ['resolve', 'resolve', ""Se cambiar\xe1  la resolución. El pr\xf3ximo estado ser\xe1  'closed'"", ['fixed', 'invalid', 'wontfix', 'duplicate', 'worksforme']], 
    ['reassign', 'reassign', ""El dueño cambiar\xe1 . El pr\xf3ximo estado ser\xe1  'assigned'."", []], 
    ['accept', 'accept', ""El dueño cambiar\xe1  a olemis. El pr\xf3ximo estado ser\xe1  'accepted'."", []]]
[['leave', 'leave', '.', []], ['reopen', 'reopen', u""El pr\xf3ximo estado ser\xe1 'reopened'."", []]]
[['leave', 'leave', '.', []], ['reopen', 'reopen', u""El pr\xf3ximo estado ser\xe1 'reopened'."", []]]
[['leave', 'leave', '.', []], ['reopen', 'reopen', u""El pr\xf3ximo estado ser\xe1 'reopened'."", []]]
}}}

The same happens if an authenticated call is performed, even if the user has 
been granted with `TRAC_ADMIN` permission. Besides, an error is raised when 
using `ticket.update` with a comment to activate ticket workflow.

{{{
#!python

>>> p.ticket.update(13, ""Via RPC with workflow !"", {'action': 'reopen'})
Traceback (most recent call last):
  File ""<stdin>"", line 1, in <module>
  File ""C:\Program Files\Python\2.5\lib\xmlrpclib.py"", line 1147, in __call__
    return self.__send(self.__name, args)
  File ""C:\Program Files\Python\2.5\lib\xmlrpclib.py"", line 1437, in __request
    verbose=self.__verbose
  File ""C:\Program Files\Python\2.5\lib\xmlrpclib.py"", line 1201, in request
    return self._parse_response(h.getfile(), sock)
  File ""C:\Program Files\Python\2.5\lib\xmlrpclib.py"", line 1340, in _parse_response
    return u.close()
  File ""C:\Program Files\Python\2.5\lib\xmlrpclib.py"", line 787, in close
    raise Fault(**self._stack[0])
xmlrpclib.Fault: <Fault 2: ""'No permissions to add a comment.' while executing 'ticket.update()'"">
}}}

BTW, nothing happens if comment is empty.

{{{
#!python

>>> p.ticket.update(13, """", {'action': 'reopen'})
[13, <DateTime '20090825T10:30:58' at b31440>, <DateTime '20100101T20:09:19' at
b31418>, {'status': 'reopened', 'description': 'Description 9', 'reporter': 
'anonymous', 'cc': '', 'type': 'enhancement', 'component': '', 
'summary': 'Ticket 9', 'priority': 'minor', 'owner': 'tester', 
'version': '2.0', 'milestone': '', 'keywords': '', 'resolution': ''}]

}}}

'''PS: ''' /me using es_ES transalation ''';o)'''",Olemis Lang
6826,Add support for further datetime formats in JSON-RPC (et al. ?),enhancement,0.12,Olemis Lang,new,2010-03-18T21:28:09+01:00,2010-03-18T23:51:51+01:00,"
It would be nice to add support for (at least) the following time formats :

  - [http://www.nikhilk.net/DateSyntaxForJSON2.aspx @ticks@ ] string format 
  - ''ASP.NET AJAX '' [http://msdn2.microsoft.com/en-us/library/bb299886.aspx \/Date(ticks)\/ ] string format
",Olemis Lang
8666,Need a method to get the references (or called links) of  a ticket,enhancement,0.12,osimons,new,2011-04-04T03:32:14+02:00,2011-04-09T20:38:29+02:00,"Tickets are usually organized in a hierarchy in software development, such as Requirement->Feature Story->Task. For a task ticket, I want to retrieve its parent feature story ticket. Currently there is no way to achieve this via XMLRPC API. ",sean
8882,add support for comment management in xmlrpc plugin,enhancement,0.12,osimons,new,2011-06-10T18:14:18+02:00,2012-11-08T00:17:38+01:00,"functions to create, update, get , delete comments for a given ticket ",anonymous
10052,Exception logging in XML-RPC and JSON-RPC is different,defect,0.12,osimons,new,2012-05-23T15:37:34+02:00,2012-05-24T10:24:15+02:00,"Exceptions raised in the XML-RPC component are logged in the send_rpc_error() method.
The corresponding method in the JSON-RPC method does not include any logging.

This means that tracebacks are shown to the user, but don't exist in the logs, which is an issue for debugging.

I've attached a patch which simply adds a log.exception call to the JSON-RPC send_rpc_error method.",Karl
5447,Ability to specify the author and creation time for ticket attachments,defect,0.11,osimons,new,2009-06-28T20:08:58+02:00,2022-08-20T21:12:48+02:00,It's currently not possible to specify the creation time or author for a ticket attachment. The attached patch should fix this problem.,Thijs Triemstra
6308,"Always getting ""Server returned HTTP response code: 503 for URL: http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"" in client",defect,0.11,osimons,new,2009-12-09T18:25:24+01:00,2012-08-01T05:54:23+02:00,"We always get the following exception in our Java XmlRpcClient.

Could it be that you download the DTD in the server implementation? Could you disable this?

(because of spam control I had to change the url to <SAMVE URL>)

{{{
ERROR  xxx.cms.infoportal.service.TracSyncServlet ?(sync:?) 08.12.2009 12:17:35  org.apache.xmlrpc.client.XmlRpcClientException: Failed to read servers
 response: Server returned HTTP response code: 503 for URL: <SAME URL>
org.apache.xmlrpc.client.XmlRpcClientException: Failed to read servers response: Server returned HTTP response code: 503 for URL: http://www.w3.org/TR/xhtml
1/DTD/xhtml1-strict.dtd
        at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:179)
        at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:145)
        at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:94)
        at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:44)
        at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:53)
        at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:166)
        at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:136)
        at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:125)
        at xxx.cms.infoportal.service.TracSyncServlet.getTracTickets(Unknown Source)
        at xxx.cms.infoportal.service.TracSyncServlet.sync(Unknown Source)
        at xxx.cms.infoportal.service.TracSyncServlet$1.run(Unknown Source)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)
Caused by: java.io.IOException: Server returned HTTP response code: 503 for URL: <SAME URL>
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1313)
        at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
        at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown Source)
        at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown Source)
        at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:175)
        ... 12 more
}}}

",anonymous
5446,Ability to specify the comment index when updating a ticket,defect,0.11,osimons,new,2009-06-28T19:57:15+02:00,2009-07-01T02:04:05+02:00,Currently it's not possible to update/replace a specific comment in a ticket. The attached patch should solve this problem.,Thijs Triemstra
808,Add Changesets to TracXmlRpc plugin,enhancement,0.11,Olemis Lang,assigned,2006-10-14T15:33:18+02:00,2009-12-22T16:49:35+01:00,Here is a patch adding changeset interface into Trac XmlRpc API. It's not perfect but it works really well.,iXce
1805,Access to Trac reports via XmlRpc,enhancement,0.11,Olemis Lang,assigned,2007-07-17T15:20:18+02:00,2018-06-28T10:21:36+02:00,"As of yet, there does not seem to be a way to access the reports in a Trac repository via XML-RPC. Since the reporting engine in Trac is fairly powerful, this would be nice to have. I'm thinking of a simple method like tickets.report(int reportid) returning either a list of IDs of the relevant tickets (which the client can then individually query or process) or returning the whole table as seen in the actual report.",moritz.schallaboeck@…
5527,Include RPC handler to retrieve timed events managed by Timeline module,enhancement,0.11,Olemis Lang,assigned,2009-07-17T17:40:38+02:00,2012-07-10T19:48:30+02:00,"
[https://opensvn.csie.org/traccgi/swlcu/wiki/En/Devel/TracGViz TracGViz plugin] includes an some XML-RPC handlers. TimelineRPC class's been included since [http://pypi.python.org/pypi/TracGViz/1.3.3 version 1.3.3] (can't provide a link to browse the source code due to the fact that my SVN client is failing and I can't (commit | check) out anything ... sorry ''':(''' ). 

It returns all timed events offered by instances of ITimelineEventProvider. 

Please see below a code snippet illustrating public methods :

{{{
#!python

class TimelineRPC(Component):
    r"""""" An interface to Trac's timeline module.
    """"""
    implements(IXMLRPCHandler)
    sources = ExtensionPoint(ITimelineEventProvider)

    def __init__(self):
        self._event_data = TimelineModule(self.env)._event_data

    # IXMLRPCHandler methods
    def xmlrpc_namespace(self):
        return 'timeline'

    def xmlrpc_methods(self):
        yield ('TIMELINE_VIEW',
                ((list, xmlrpclib.DateTime, xmlrpclib.DateTime, list),
                 (list, xmlrpclib.DateTime, xmlrpclib.DateTime),
                 (list, xmlrpclib.DateTime),
                 (list, )),
                 self.getEvents)
        yield ('TIMELINE_VIEW', ((list,),), self.getEventFilters)

}}}

There are still a few open issues and further methods may be needed (e.g. to create, update, delete reports). Besides in order to retrieve all events related to ticket changes (e.g. attachments) `timeline.ticket_show_details` option in `trac.ini` needs to be set to `true`. 

It is possible to move it onto XmlRpcPlugin. Feel free to do it !

PS: I tested it using 0.11, that's why I specify that value in `Trac Release` field . Hope you don't mind.


",Olemis Lang
6518,Ticket creation error w/ TracBacklog 0.2.1,defect,0.11,osimons,new,2010-02-01T20:31:55+01:00,2010-02-01T20:31:55+01:00,"Currently installed: Trac 0.11.6, TracBacklog 0.2.1 and TracXMLRPC 1.0.6

Whenever I create a ticket via XML-RPC, I receive the following error:
{{{
2010-02-01 14:04:21,735 Trac[web_ui] ERROR: column ticket_id is not unique
2010-02-01 14:04:21,737 Trac[web_ui] ERROR: Traceback (most recent call last):

    File ""/usr/lib/python2.6/site-packages/TracXMLRPC-1.0.6-py2.6.egg/tracrpc/web_ui.py"", line 182, in process_xml_request

        result = XMLRPCSystem(self.env).get_method(method)(req, args)

    File ""/usr/lib/python2.6/site-packages/TracXMLRPC-1.0.6-py2.6.egg/tracrpc/api.py"", line 94, in call

        result = self.callable(req, *args)

    File ""/usr/lib/python2.6/site-packages/TracXMLRPC-1.0.6-py2.6.egg/tracrpc/ticket.py"", line 150, in create

        listener.ticket_created(t)

    File ""build/bdist.linux-i686/egg/backlog/web_ui.py"", line 136, in ticket_created

        (ticket.id, ticket.id))

    File ""/usr/lib/python2.6/site-packages/trac/db/util.py"", line 64, in execute

        return self.cursor.execute(sql_escape_percent(sql), args)

    File ""/usr/lib/python2.6/site-packages/trac/db/sqlite_backend.py"", line 80, in execute

        PyFormatCursor.execute(self, *args)

    File ""/usr/lib/python2.6/site-packages/trac/db/sqlite_backend.py"", line 59, in execute

        args or [])

    File ""/usr/lib/python2.6/site-packages/trac/db/sqlite_backend.py"", line 51, in _rollback_on_error

        return function(self, *args, **kwargs)

IntegrityError: column ticket_id is not unique
}}}
I checked and the ""backlog"" table is the only table in the database with a ticket_id column and it currently is a primary key. I verified this is a problem that only arises when TracBacklog is installed by removing that plugin.",jcampbell@…
6827,Implement some JSON-RPC (et al.?) extensions,enhancement,0.11,Olemis Lang,new,2010-03-18T21:38:24+01:00,2013-10-12T05:58:08+02:00,"
Implement the following useful JSON-RPC extensions :

  - Allow for cross-site requests in JSON-RPC by means of the 
    [http://tech.groups.yahoo.com/group/json-rpc/message/584 JSON-response-callback] 
    extension. 
  - Add support for the 
    [http://tech.groups.yahoo.com/group/json-rpc/message/585 JSON-omit-response-wrapper] 
    server extension to allow for the ''Procedure Return object wrapper'' to be omitted so 
    that the JSON result data alone is returned
",Olemis Lang
1055,listLinks() should be implemented,enhancement,0.10,Olemis Lang,assigned,2006-12-28T14:51:52+01:00,2009-12-22T16:47:18+01:00,The listLinks function of the Wiki XML-RPC API should be implemented.,martin@…
1650,extend ticket.query() to return any field,enhancement,0.10,Alec Thomas,reopened,2007-06-10T17:57:52+02:00,2014-04-16T03:59:53+02:00,"Currently ticket.query() returns an array with the id of matching tickets only. Having an additional parameter that takes a list of field names that are also returned would be a very useful addition to avoid multiple server round trips to retrieve the actual ticket information:

 ticket.query('status!=closed', [ 'id', 'summary' ])
 
That would return: [[id => 'id', summary => '...' ], ...]

Since this breaks backwards compatibility adding an API call queryFields() instead modifying query() might be prefereable.
",Steffen Pingel
2604,Site information via XMLRPC,enhancement,0.10,osimons,new,2008-02-19T12:28:40+01:00,2023-03-01T15:55:36+01:00,"We need to gather simple site information via XMLRPC, like name, description, etc. This is fairly core, so I offer this patch instead of releasing a separate product. Future versions could also gather plugin information, which is useful when running many Trac instances.",nigelsim
2794,wiki.putPage() provides no version check.,enhancement,0.10,osimons,new,2008-03-24T22:09:10+01:00,2009-06-21T16:03:42+02:00,"There's mention of the potential for lost updates on [http://www.jspwiki.org/Wiki.jsp?page=WikiRPCInterface2 the Wiki RPC Interface page] but the plugin doesn't deal with the problem.

What would be great was if wiki.WikiRPC.putPage() did a check  on the page using the 'version' attribute and failed the update if it existed and didn't match page.version.",anonymous
11311,Consistent XML and JSON RPC error codes,enhancement,,osimons,new,2013-09-09T07:30:08+02:00,2013-09-11T08:56:14+02:00,"
Handling of (XML|JSON)-RPC error codes does not seem to be consistent. Everything is explained in [http://rpc.blood-hound.net/ticket/210 this ticket] . IMHO both protocols should be returning the same error codes , but I do not know whether this will cause any trouble regarding interoperability with external tools e.g. Mylyn .",Olemis Lang
11799,Log messages when permission checks fail rather than traceback,enhancement,,osimons,new,2014-05-29T15:57:17+02:00,2017-03-21T21:59:14+01:00,"Looking in the log files I see many entries like the following:
{{{
2014-05-28 12:13:22,695 Trac[web_ui] ERROR: RPC(XML-RPC) Error
Traceback (most recent call last):
  File ""build/bdist.linux-x86_64/egg/tracrpc/web_ui.py"", line 149, in _rpc_process
    req.perm.require('XML_RPC') # Need at least XML_RPC
  File ""/usr/local/python26_trac10/lib/python2.6/site-packages/Trac-1.0.1-py2.6.egg/trac/perm.py"", line 579, in require
    raise PermissionError(action, resource, self.env)
PermissionError
}}}

Web requests on the other hand are [t:browser:/tags/trac-1.0.1/trac/web/main.py@:251-252#L239 trapped] and [t:browser:/tags/trac-1.0.1/trac/web/main.py@:511#L508 logged]:
{{{
2014-05-28 17:01:26,569 Trac[main] WARNING: [12.234.78.2] HTTPForbidden: 403 Forbidden (WIKI_VIEW privileges are required to perform this operation on WikiStart. You don't have the required permissions.)
}}}

I'm wondering if we could trap and log !XmlRpc requests as warnings. I haven't done more than look at the code yet, but I could probably propose a patch.

See also #12408.",Ryan J Ollos
