I want to apply this to all closed tickets (no special resolution) and I am not having much luck. I tried to change the line if t['resolution'] == 'fixed', if t['resolution'] == 'closed' but nothing happened. any idea how I can debug\fix this?
Thanks, On Monday, July 28, 2014 at 2:31:56 PM UTC-4, RjOllos wrote: > > On Mon, Jul 28, 2014 at 10:55 AM, Jared Bownds <[email protected] > <javascript:>> wrote: > >> You nailed it! The code below works. However, users are still able to >> 'edit' their own comments once a ticket is resolved as signed. >> >> {{{ >> from trac.core import * >> from trac.perm import IPermissionPolicy >> from trac.ticket.model import Ticket >> >> class ReadonlySignedTickets(Component): >> implements(IPermissionPolicy) >> >> def check_permission(self, action, username, resource, perm): >> if resource is None or resource.realm != 'ticket' or \ >> resource.id is None or action == 'TICKET_VIEW' or \ >> action == 'TRAC_ADMIN' or 'TRAC_ADMIN' in perm: >> >> return None >> >> t = Ticket(self.env, resource.id) >> if t['resolution'] == 'signed': >> return False >> }}} >> > > Peter's plugin shown above work for me on 1.0-stable, and users aren't > able to edit comments even if they have been granted TICKET_ADMIN. I used > resolution //signed// rather than //Signed// since all of Trac's predefined > resolutions are in lowercase. > > Which Trac version are you running? > > In order to implement your other requirements, it sounds like you'll want > to: > * Enable ExtraPermissionsProvider > [components] > tracopt.perm.config_perm_provider.extrapermissionsprovider = enabled > > * Add the signed permission: > [extra-permissions] > _perms = TICKET_SIGNED > > * Grant TICKET_SIGNED to the appropriate user. > > * Modify your workflow to only allow users with TICKET_SIGNED to resolve > a ticket as signed. This is where things seem to get a bit tricky. You may > need to have a workflow state signed rather than using a resolution, but > that might not work since you probably want tickets to end in the closed > state. You might need to implement a workflow action to replace > set_resolution, which does permission checking to decide who can resolve a > ticket as signed ... or perhaps the permission checking can be done in the > ReadonlySignedTickets policy as well. I'll have to give that more thought. > > > > -- 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 http://groups.google.com/group/trac-users. For more options, visit https://groups.google.com/d/optout.
