--- ./wiki/web_ui.py.orig-maxb	2006-01-31 17:42:18.000000000 -0600
+++ ./wiki/web_ui.py	2006-01-31 18:50:53.000000000 -0600
@@ -25,7 +25,7 @@
 from trac.perm import IPermissionRequestor
 from trac.Search import ISearchSource, query_to_sql, shorten_result
 from trac.Timeline import ITimelineEventProvider
-from trac.util import enum, format_datetime, get_reporter_id, \
+from trac.util import enum, format_datetime, get_reporter_id, get_authentic_id, \
                       pretty_timedelta, shorten_line, Markup
 from trac.versioncontrol.diff import get_diff_options, hdf_diff
 from trac.web.chrome import add_link, add_stylesheet, INavigationContributor
@@ -183,7 +183,7 @@
             # WIKI_ADMIN
             page.readonly = int(req.args.has_key('readonly'))
 
-        page.save(req.args.get('author'), req.args.get('comment'),
+        page.save(get_authentic_id(req, 'author'), req.args.get('comment'),
                   req.remote_addr)
         req.redirect(self.env.href.wiki(page.name))
 
@@ -283,7 +283,7 @@
         if preview:
             page.readonly = req.args.has_key('readonly')
 
-        author = req.args.get('author', get_reporter_id(req))
+        author = get_reporter_id(req, 'author')
         comment = req.args.get('comment', '')
         editrows = req.args.get('editrows')
         if editrows:
--- ./ticket/web_ui.py.orig-maxb	2006-01-31 17:38:04.000000000 -0600
+++ ./ticket/web_ui.py	2006-01-31 18:43:08.000000000 -0600
@@ -84,7 +84,7 @@
 
         ticket = Ticket(self.env, db=db)
         ticket.populate(req.args)
-        ticket.values.setdefault('reporter', util.get_reporter_id(req))
+        ticket.values['reporter'] = util.get_reporter_id(req, 'reporter')
 
         if ticket.values.has_key('description'):
             description = wiki_to_html(ticket['description'], self.env, req, db)
@@ -133,8 +133,8 @@
             raise TracError('Tickets must contain a summary.')
 
         ticket = Ticket(self.env, db=db)
-        ticket.values.setdefault('reporter', util.get_reporter_id(req))
         ticket.populate(req.args)
+        ticket.values['reporter'] = util.get_authentic_id(req, 'reporter')
         ticket.insert(db=db)
         db.commit()
 
@@ -182,7 +182,7 @@
         id = int(req.args.get('id'))
 
         ticket = Ticket(self.env, id, db=db)
-        reporter_id = util.get_reporter_id(req)
+        reporter_id = util.get_reporter_id(req, 'author')
 
         if req.method == 'POST':
             if not req.args.has_key('preview'):
@@ -195,7 +195,6 @@
                 req.hdf['ticket.reassign_owner'] = req.args.get('reassign_owner') \
                                                    or req.authname
                 req.hdf['ticket.resolve_resolution'] = req.args.get('resolve_resolution')
-                reporter_id = req.args.get('author')
                 comment = req.args.get('comment')
                 if comment:
                     req.hdf['ticket.comment'] = comment
@@ -343,7 +342,7 @@
             ticket['resolution'] = ''
 
         now = int(time.time())
-        ticket.save_changes(req.args.get('author', req.authname),
+        ticket.save_changes(util.get_authentic_id(req, 'author'),
                             req.args.get('comment'), when=now, db=db)
         db.commit()
 
--- ./attachment.py.orig-maxb	2006-01-31 17:36:31.000000000 -0600
+++ ./attachment.py	2006-01-31 18:41:17.000000000 -0600
@@ -318,7 +318,7 @@
                                                     'utf-8')).encode('utf-8')
 
         attachment.description = req.args.get('description', '')
-        attachment.author = req.args.get('author', '')
+        attachment.author = util.get_authentic_id(req, 'author')
         attachment.ipnr = req.remote_addr
         if req.args.get('replace'):
             try:
@@ -376,7 +376,7 @@
         text, link = self._get_parent_link(attachment)
         req.hdf['attachment'] = {
             'mode': 'new',
-            'author': util.get_reporter_id(req),
+            'author': util.get_reporter_id(req, 'author'),
             'parent': {'type': attachment.parent_type,
                        'id': attachment.parent_id, 'name': text, 'href': link}
         }
--- ./util.py.orig-maxb	2006-01-31 17:43:18.000000000 -0600
+++ ./util.py	2006-01-31 18:45:56.000000000 -0600
@@ -334,10 +334,15 @@
                 raise Exception('Failed to create unique name: ' + path)
             path = '%s.%d%s' % (parts[0], idx, parts[1])
 
-def get_reporter_id(req):
+def get_reporter_id(req, argname=None):
     name = req.session.get('name', None)
     email = req.session.get('email', None)
     
+    if argname:
+        r = req.args.get(argname)
+        if r:
+            return r
+    
     if req.authname != 'anonymous':
         return req.authname
     elif name and email:
@@ -347,6 +352,16 @@
     else:
         return req.authname
 
+def get_authentic_id(req, argname):
+    r = get_reporter_id(req, argname)
+    if req.authname == 'anonymous':
+        return r + ' [unauthenticated]'
+    else:
+        if r == req.authname:
+            return r
+        else:
+            return '%s (%s)' % (req.authname, r)
+
 # Date/time utilities
 
 def format_datetime(t=None, format='%x %X', gmt=False):
