Edgewall Software

Ticket #4413: privacy.diff

File privacy.diff, 8.0 KB (added by Waldemar Kornewald <wkornewald>, 5 years ago)

patch against trunk (r4456)

  • trac/ticket/api.py

     
    102102        field = {'name': 'owner', 'label': 'Owner'} 
    103103        if self.restrict_owner: 
    104104            field['type'] = 'select' 
    105             users = [''] # for clearing assignment 
    106105            perm = PermissionSystem(self.env) 
    107             for username, name, email in self.env.get_known_users(db): 
    108                 if perm.get_user_permissions(username).get('TICKET_MODIFY'): 
    109                     users.append(username) 
    110             field['options'] = users 
     106            def valid_owner(username): 
     107                return perm.get_user_permissions(username).get('TICKET_MODIFY') 
     108            field['options'] = [username for username, name, email 
     109                                in self.env.get_known_users(db) 
     110                                if valid_owner(username)] 
    111111            field['optional'] = True 
    112112        else: 
    113113            field['type'] = 'text' 
  • trac/ticket/report.py

     
    276276                header_groups.append([]) 
    277277            header_group.append(header) 
    278278 
    279         # Get the email addresses of all known users 
    280         email_map = {} 
    281         for username, name, email in self.env.get_known_users(): 
    282             if email: 
    283                 email_map[username] = email 
    284  
    285279        # Structure the rows and cells: 
    286280        #  - group rows according to __group__ value, if defined 
    287281        #  - group cells the same way headers are grouped 
     
    313307                    # Special casing based on column name 
    314308                    col = col.strip('_') 
    315309                    if col == 'reporter': 
    316                         if '@' in value: 
    317                             cell['author'] = value 
    318                         elif value in email_map: 
    319                             cell['author'] = email_map[value] 
     310                        cell['author'] = value 
    320311                    elif col == 'resource': 
    321312                        resource = value 
    322313                    cell_group.append(cell) 
  • trac/ticket/query.py

     
    690690        query.verbose = True 
    691691        db = self.env.get_db_cnx() 
    692692        results = query.execute(req, db) 
    693         for result in results: 
    694             if result['reporter'].find('@') == -1: 
    695                 result['reporter'] = '' 
    696693        query_href = req.abs_href.query(group=query.group, 
    697694                                        groupdesc=query.groupdesc and 1 or None, 
    698695                                        verbose=query.verbose and 1 or None, 
  • trac/versioncontrol/web_ui/log.py

     
    178178        revs = [i['rev'] for i in info] 
    179179        changes = get_changes(repos, revs) 
    180180        extra_changes = {} 
    181         email_map = {} 
    182         if format == 'rss': 
    183             # Get the email addresses of all known users 
    184             email_map = {} 
    185             for username,name,email in self.env.get_known_users(): 
    186                 if email: 
    187                     email_map[username] = email 
    188         elif format == 'changelog': 
     181        if format == 'changelog': 
    189182            for rev in revs: 
    190183                changeset = changes[rev] 
    191184                cs = {} 
     
    206199            'mode': mode, 'verbose': verbose, 
    207200            'path_links': path_links, 
    208201            'items': info, 'changes': changes, 
    209             'email_map': email_map, 'extra_changes': extra_changes, 
     202            'extra_changes': extra_changes, 
    210203            'wiki_format_messages': 
    211204            self.config['changeset'].getbool('wiki_format_messages') 
    212205            } 
  • trac/timeline/web_ui.py

     
    137137                break 
    138138 
    139139        if format == 'rss': 
    140             # Get the email addresses of all known users 
    141             email_map = {} 
    142             for username, name, email in self.env.get_known_users(): 
    143                 if email: 
    144                     email_map[username] = email 
    145             data['email_map'] = email_map 
    146140            return 'timeline.rss', data, 'application/rss+xml' 
    147141 
    148142        add_stylesheet(req, 'common/css/timeline.css') 
  • templates/report.rss

     
    1717        <py:with vars="col = cell.header.col.strip('_')"> 
    1818          <py:choose> 
    1919            <py:when test="col == 'reporter'"> 
    20               <author py:if="cell.author">$cell.author</author> 
     20              <dc:creator py:if="cell.author">$cell.author</cd:creator> 
    2121            </py:when> 
    2222            <py:when test="col in ('time', 'changetime', 'created', 'modified')"> 
    2323              <!-- FIXME: we end up with multiple pubDate --> 
  • templates/revisionlog.rss

     
    1313    </image> 
    1414 
    1515    <item py:for="item in items" py:with="change = changes[item.rev]; item_context = context('changeset', change.rev, abs_urls=True)"> 
    16       <author py:if="change.author" py:with="a = change.author">${a and '@' in a and a or email_map.get(a)}</author> 
     16      <dc:creator py:if="change.author">${change.author}</dc:creator> 
    1717      <pubDate>${http_date(change.date)}</pubDate> 
    1818      <title>Revision $item.rev: ${shorten_line(change.message)}</title> 
    1919      <link>${abs_href.changeset(rev, path)}</link> 
  • templates/timeline.rss

     
    1414 
    1515    <item py:for="event in events"> 
    1616      <title>${plaintext(event.title, keeplinebreaks=False)}</title> 
    17       <py:with vars="author=event.author; author = author and '@' in author and author or email_map.get(author)"> 
    18         <author py:if="author">$author</author> 
    19       </py:with> 
     17      <dc:creator py:if="event.author">${event.author}</dc:creator> 
    2018      <pubDate>${http_date(event.date)}</pubDate> 
    2119      <link>${event.abs_href}</link> 
    2220      <guid isPermaLink="false">${event.abs_href}/${event.dateuid()}</guid> 
  • templates/ticket.rss

     
    1313    <generator>Trac $trac.version</generator> 
    1414 
    1515    <item py:for="change in changes"> 
    16       <author py:if="change.author">$change.author</author> 
     16      <dc:creator py:if="change.author">$change.author</dc:creator> 
    1717      <pubDate>${http_date(change.date)}</pubDate> 
    1818      <title>$change.title</title> 
    1919      <link>${abs_href.ticket(ticket.id)}<py:if test="change.cnum">#comment:$change.cnum</py:if></link> 
  • templates/query.rss

     
    1616      <guid isPermaLink="false">$href</guid> 
    1717      <title>#$result.id: $result.summary</title> 
    1818      <pubDate py:if="result.time">${http_date(result.time)}</pubDate> 
    19       <author py:if="result.reporter">$result.reporter</author> 
     19      <dc:creator py:if="result.reporter">$result.reporter</dc:creator> 
    2020      <description>${unicode(context('ticket', result.id, abs_urls=True).wiki_to_html(result.description))}</description> 
    2121      <category>Results</category> 
    2222      <comments>$href#changelog</comments>