On Tuesday, May 9, 2017 at 1:24:55 AM UTC-7, toto200891 wrote: > > Thank you for the modification. But I see that, it is affecting the search > filters. With the permission ticket_view_reported, one cannot search for > his tickets. In other words, if the user have to search for a particular > ticket, he could not do it, as the ticket filter doesn't seem to be > enabled. > > Regards, > > SF >
Yes, good point. Revoking TICKET_VIEW prevents the search filter from displaying. Instead, we could keep TICKET_VIEW for all users, and deny the action if the users doesn't possess TICKET_VIEW_REPORTED and the user isn't the ticket reporter. I've also considered that the most common case would be to allow users with TICKET_ADMIN to view all tickets. Please try the following: # -*- coding: utf-8 -*- # # Copyright (C) 2017 Edgewall Software # All rights reserved. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at http://trac.edgewall.org/wiki/TracLicense. # # This software consists of voluntary contributions made by many # individuals. For the exact contribution history, see the revision # history and logs, available at http://trac.edgewall.org/log/. from trac.core import * from trac.perm import IPermissionPolicy, IPermissionRequestor from trac.resource import ResourceNotFound from trac.ticket.model import Ticket class SupportDeskPolicy(Component): """Provides a permission for restricting ticket actions to the ticket owner. """ implements(IPermissionPolicy, IPermissionRequestor) # IPermissionRequestor methods def get_permission_actions(self): return ['TICKET_VIEW_REPORTED'] # IPermissionPolicy methods def check_permission(self, action, username, resource, perm): if action == 'TICKET_VIEW' and \ resource is not None and \ resource.realm == 'ticket' and \ resource.id is not None and \ 'TICKET_ADMIN' not in perm: if 'TICKET_VIEW_REPORTED' in perm: try: ticket = Ticket(self.env, resource.id) except ResourceNotFound: pass else: return ticket['reporter'] == username else: return False [End of Message] -- You received this message because you are subscribed to the Google Groups "Trac Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/trac-users. For more options, visit https://groups.google.com/d/optout.
