Am Mittwoch, 21. September 2016 20:12:43 UTC+2 schrieb Peter Suter: > > Detailed step-by-step description of events: > 1. The initial question is from web_ui.py about TICKET_VIEW. > 2. The Permission System asks each policy about this in turn. > 3. First it asks the privatetickets policy, which interjects (recursively > calls): > "To answer that, I first need to know if TICKET_VIEW_REPORTER is > available." > 4. The Permission System again poses this new question to each policy in > turn. > 5. First it asks the privatetickets policy, which expected this and > replies "None". > (This is not visible in the stack trace.) > 6. Then it asks ReadonlyTicketsPlugin, which interjects: > "To answer that, I first need to know if TICKET_ADMIN is available." > 7. The Permission System again poses this new question to each policy in > turn. > 8. First it asks the privatetickets policy, which interjects (recursively > calls): > "To answer that I first need to know if TICKET_VIEW_REPORTER is > available". > > And since 8. is exactly the same situation as 3. it continues in the same > way forever. >
So I am wondering if "patching" PrivateTicketsPolicy/check_permission would do the trick: By adding "TICKET_ADMIN" to the list of "ignore permissions / actions" the "mutual recursion" would stop, wouldn't it? For me such a "patch fix" is absolutely ok; dropping the PrivateTicketsPlugin is not. And I fear I am not of any help in tackling "inherent problem with the design that was not foreseen." (But I have the test system around for any tests you might want me to try out, though. We are using Trac extensively here, so there is a strong will to give back!) regards, Florian -- 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.
