Ticket #153: privacy.diff
| File privacy.diff, 11.2 KB (added by Waldemar Kornewald <wkornewald>, 5 years ago) |
|---|
-
trac/ticket/api.py
102 102 field = {'name': 'owner', 'label': 'Owner'} 103 103 if self.restrict_owner: 104 104 field['type'] = 'select' 105 users = [''] # for clearing assignment106 105 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)] 111 111 field['optional'] = True 112 112 else: 113 113 field['type'] = 'text' -
trac/ticket/web_ui.py
69 69 """Enable the display of all ticket changes in the timeline 70 70 (''since 0.9'').""") 71 71 72 show_email_addresses = BoolOption('ticket', 'show_email_addresses', 'false', 73 """Show email addresses instead of usernames in RSS feeds 74 (''since 0.11'').""") 75 72 76 # IContentConverter methods 73 77 74 78 def get_supported_conversions(self): … … 603 607 'ticket': ticket, 604 608 'context': Context(self.env, req, 'ticket', ticket.id, db=db), 605 609 'changes': changes, 610 'show_email_addresses': self.show_email_addresses 606 611 } 607 612 608 613 output = Chrome(self.env).render_template(req, 'ticket.rss', data, -
trac/ticket/report.py
278 278 279 279 # Get the email addresses of all known users 280 280 email_map = {} 281 for username, name, email in self.env.get_known_users(): 282 if email: 283 email_map[username] = email 281 show_email_addresses = self.config.getbool('ticket', 'show_email_addresses') 282 data['show_email_addresses'] = show_email_addresses 283 if show_email_addresses: 284 for username, name, email in self.env.get_known_users(): 285 if email: 286 email_map[username] = email 284 287 285 288 # Structure the rows and cells: 286 289 # - group rows according to __group__ value, if defined … … 313 316 # Special casing based on column name 314 317 col = col.strip('_') 315 318 if col == 'reporter': 316 if '@' in value: 319 if show_email_addresses: 320 if '@' in value: 321 cell['author'] = value 322 elif value in email_map: 323 cell['author'] = email_map[value] 324 else: 317 325 cell['author'] = value 318 elif value in email_map:319 cell['author'] = email_map[value]320 326 elif col == 'resource': 321 327 resource = value 322 328 cell_group.append(cell) -
trac/ticket/query.py
684 684 query.verbose = True 685 685 db = self.env.get_db_cnx() 686 686 results = query.execute(req, db) 687 for result in results: 688 if result['reporter'].find('@') == -1: 689 result['reporter'] = '' 687 show_email_addresses = self.config.getbool('ticket', 'show_email_addresses') 688 if show_email_addresses: 689 for result in results: 690 if result['reporter'].find('@') == -1: 691 result['reporter'] = '' 690 692 query_href = req.abs_href.query(group=query.group, 691 693 groupdesc=query.groupdesc and 1 or None, 692 694 verbose=query.verbose and 1 or None, … … 695 697 data = { 696 698 'context': Context(self.env, req), 697 699 'results': results, 700 'show_email_addresses': show_email_addresses, 698 701 'query_href': query_href 699 702 } 700 703 output = Chrome(self.env).render_template(req, 'query.rss', data, -
trac/versioncontrol/web_ui/log.py
179 179 changes = get_changes(repos, revs) 180 180 extra_changes = {} 181 181 email_map = {} 182 show_email_addresses = self.config.getbool('ticket', 183 'show_email_addresses') 182 184 if format == 'rss': 183 185 # 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] = email186 if show_email_addresses: 187 for username,name,email in self.env.get_known_users(): 188 if email: 189 email_map[username] = email 188 190 elif format == 'changelog': 189 191 for rev in revs: 190 192 changeset = changes[rev] … … 207 209 'path_links': path_links, 208 210 'items': info, 'changes': changes, 209 211 'email_map': email_map, 'extra_changes': extra_changes, 212 'show_email_addresses': show_email_addresses, 210 213 'wiki_format_messages': 211 214 self.config['changeset'].getbool('wiki_format_messages') 212 215 } -
trac/timeline/web_ui.py
138 138 139 139 if format == 'rss': 140 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 141 show_email_addresses = self.config.getbool('ticket', 'show_email_addresses') 142 if show_email_addresses: 143 email_map = {} 144 for username, name, email in self.env.get_known_users(): 145 if email: 146 email_map[username] = email 147 data['email_map'] = email_map 148 data['show_email_addresses'] = show_email_addresses 146 149 return 'timeline.rss', data, 'application/rss+xml' 147 150 148 151 add_stylesheet(req, 'common/css/timeline.css') -
templates/report.rss
17 17 <py:with vars="col = cell.header.col.strip('_')"> 18 18 <py:choose> 19 19 <py:when test="col == 'reporter'"> 20 <author py:if="cell.author">$cell.author</author> 20 <author py:if="cell.author and show_email_addresses">$cell.author</author> 21 <dc:creator py:if="cell.author and not show_email_addresses">$cell.author</cd:creator> 21 22 </py:when> 22 23 <py:when test="col in ('time', 'changetime', 'created', 'modified')"> 23 24 <!-- FIXME: we end up with multiple pubDate --> -
templates/revisionlog.rss
13 13 </image> 14 14 15 15 <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 <author py:if="change.author and show_email_addresses" py:with="a = change.author">${a and '@' in a and a or email_map.get(a)}</author> 17 <dc:creator py:if="change.author and not show_email_addresses">${change.author}</dc:creator> 17 18 <pubDate>${http_date(change.date)}</pubDate> 18 19 <title>Revision $item.rev: ${shorten_line(change.message)}</title> 19 20 <link>${abs_href.changeset(rev, path)}</link> -
templates/timeline.rss
14 14 15 15 <item py:for="event in events"> 16 16 <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)">17 <py:if test="show_email_addresses" py:with vars="author=event.author; author = author and '@' in author and author or email_map.get(author)"> 18 18 <author py:if="author">$author</author> 19 </py:with> 19 </py:if> 20 <dc:creator py:if="event.author and not show_email_addresses">${event.author}</dc:creator> 20 21 <pubDate>${http_date(event.date)}</pubDate> 21 22 <link>${event.abs_href}</link> 22 23 <guid isPermaLink="false">${event.abs_href}/${event.dateuid()}</guid> -
templates/ticket.rss
13 13 <generator>Trac $trac.version</generator> 14 14 15 15 <item py:for="change in changes"> 16 <author py:if="change.author">$change.author</author> 16 <author py:if="change.author and show_email_addresses">$change.author</author> 17 <dc:creator py:if="change.author and not show_email_addresses">$change.author</dc:creator> 17 18 <pubDate>${http_date(change.date)}</pubDate> 18 19 <title>$change.title</title> 19 20 <link>${abs_href.ticket(ticket.id)}<py:if test="change.cnum">#comment:$change.cnum</py:if></link> -
templates/query.rss
16 16 <guid isPermaLink="false">$href</guid> 17 17 <title>#$result.id: $result.summary</title> 18 18 <pubDate py:if="result.time">${http_date(result.time)}</pubDate> 19 <author py:if="result.reporter">$result.reporter</author> 19 <author py:if="result.reporter and show_email_addresses">$result.reporter</author> 20 <dc:creator py:if="result.reporter and not show_email_addresses">$result.reporter</dc:creator> 20 21 <description>${unicode(context('ticket', result.id, abs_urls=True).wiki_to_html(result.description))}</description> 21 22 <category>Results</category> 22 23 <comments>$href#changelog</comments>
