Ticket #1075: ticket-validate.diff
| File ticket-validate.diff, 2.2 KB (added by , 16 years ago) |
|---|
-
tracrpc/ticket.py
5 5 from tracrpc.util import to_timestamp, to_datetime 6 6 import trac.ticket.model as model 7 7 import trac.ticket.query as query 8 from trac.ticket.web_ui import TicketModule 8 9 from trac.ticket.api import TicketSystem 9 10 from trac.ticket.notification import TicketNotifyEmail 10 11 … … 28 29 yield ('TICKET_VIEW', ((list, int),), self.getAvailableActions) 29 30 yield ('TICKET_VIEW', ((list, int),), self.get) 30 31 yield ('TICKET_CREATE', ((int, str, str), (int, str, str, dict), (int, str, str, dict, bool)), self.create) 31 yield ('TICKET_ ADMIN', ((list, int, str), (list, int, str, dict), (list, int, str, dict, bool)), self.update)32 yield ('TICKET_VIEW', ((list, int, str), (list, int, str, dict), (list, int, str, dict, bool)), self.update) 32 33 yield ('TICKET_ADMIN', ((None, int),), self.delete) 33 34 yield ('TICKET_VIEW', ((dict, int), (dict, int, int)), self.changeLog) 34 35 yield ('TICKET_VIEW', ((list, int),), self.listAttachments) … … 82 83 t['reporter'] = req.authname or 'anonymous' 83 84 for k, v in attributes.iteritems(): 84 85 t[k] = v 86 self._validate_ticket(req, t) 85 87 t.insert() 86 88 87 89 if notify: … … 101 103 t = model.Ticket(self.env, id) 102 104 for k, v in attributes.iteritems(): 103 105 t[k] = v 106 self._validate_ticket(req, t) 104 107 t.save_changes(req.authname or 'anonymous', comment) 105 108 106 109 if notify: … … 166 169 """ Return a list of all ticket fields fields. """ 167 170 return TicketSystem(self.env).get_ticket_fields() 168 171 172 def _validate_ticket(self, req, ticket): 173 ticket_module = TicketModule(self.env) 174 req.args['ts'] = str(ticket.time_changed) 175 if not ticket_module._validate_ticket(req, ticket): 176 raise TracError(' '.join(req.warnings) or 'Invalid ticket data or permissions') 177 169 178 170 179 def ticketModelFactory(cls, cls_attributes): 171 180 """ Return a class which exports an interface to trac.ticket.model.<cls>. """
