system is debian etch, trac via easy_install, run in lighttpd (fcgi) with accountmanager, tractags, simpletickets plugins.
debug output:
2008-11-25 02:52:22,238 Trac[__init__] ERROR: 'NoneType' object has no attribute 'split'
Traceback (most recent call last):
File "/usr/local/lib/python2.4/site-packages/Trac-0.11.2.1-py2.4.egg/trac/web/main.py", line 432, in _dispatch_request
dispatcher.dispatch(req)
File "/usr/local/lib/python2.4/site-packages/Trac-0.11.2.1-py2.4.egg/trac/web/main.py", line 204, in dispatch
resp = chosen_handler.process_request(req)
File "/usr/local/lib/python2.4/site-packages/Trac-0.11.2.1-py2.4.egg/trac/ticket/report.py", line 105, in process_request
template, data, content_type = self._render_view(req, db, id)
File "/usr/local/lib/python2.4/site-packages/Trac-0.11.2.1-py2.4.egg/trac/ticket/report.py", line 436, in _render_view
if resource.realm.upper()+'_VIEW' not in req.perm(resource):
File "/usr/local/lib/python2.4/site-packages/Trac-0.11.2.1-py2.4.egg/trac/perm.py", line 523, in has_permission
return self._has_permission(action, resource)
File "/usr/local/lib/python2.4/site-packages/Trac-0.11.2.1-py2.4.egg/trac/perm.py", line 536, in _has_permission
decision = PermissionSystem(self.env). \
File "/usr/local/lib/python2.4/site-packages/Trac-0.11.2.1-py2.4.egg/trac/perm.py", line 424, in check_permission
perm)
File "build/bdist.linux-i686/egg/privatetickets/policy.py", line 44, in check_permission
File "build/bdist.linux-i686/egg/privatetickets/policy.py", line 71, in check_ticket_access
AttributeError: 'NoneType' object has no attribute 'split'
i am not totally sure this is the correct fix, but it works for me as a hotfix
Index: privatetickets/policy.py
===================================================================
--- privatetickets/policy.py (revision 4870)
+++ privatetickets/policy.py (working copy)
@@ -68,8 +68,10 @@
if perm.has_permission('TICKET_VIEW_CC'):
had_any = True
- if perm.username in [x.strip() for x in tkt['cc'].split(',')]:
- return None
+# self.log.debug('Private: TICKET_VIEW_CC "%s", "%s"', perm.username, tkt['cc'])
+ if tkt['cc'] is not None:
+ if perm.username in [x.strip() for x in tkt['cc'].split(',')]:
+ return None
if perm.has_permission('TICKET_VIEW_OWNER'):
had_any = True