|
a/Allura/allura/controllers/discuss.py |
|
b/Allura/allura/controllers/discuss.py |
|
... |
|
... |
174 |
|
174 |
|
175 |
@h.vardec
|
175 |
@h.vardec
|
176 |
@expose()
|
176 |
@expose()
|
177 |
@require_post()
|
177 |
@require_post()
|
178 |
@validate(pass_validator, error_handler=index)
|
178 |
@validate(pass_validator, error_handler=index)
|
|
|
179 |
@utils.AntiSpam.validate('Spambot protection engaged')
|
179 |
def post(self, **kw):
|
180 |
def post(self, **kw):
|
180 |
require_access(self.thread, 'post')
|
181 |
require_access(self.thread, 'post')
|
181 |
kw = self.W.edit_post.to_python(kw, None)
|
182 |
kw = self.W.edit_post.to_python(kw, None)
|
182 |
if not kw['text']:
|
183 |
if not kw['text']:
|
183 |
flash('Your post was not saved. You must provide content.', 'error')
|
184 |
flash('Your post was not saved. You must provide content.', 'error')
|
|
... |
|
... |
261 |
redirect('..')
|
262 |
redirect('..')
|
262 |
|
263 |
|
263 |
@h.vardec
|
264 |
@h.vardec
|
264 |
@expose('jinja:allura:templates/discussion/post.html')
|
265 |
@expose('jinja:allura:templates/discussion/post.html')
|
265 |
@validate(pass_validator)
|
266 |
@validate(pass_validator)
|
|
|
267 |
@utils.AntiSpam.validate('Spambot protection engaged')
|
266 |
def index(self, version=None, **kw):
|
268 |
def index(self, version=None, **kw):
|
267 |
c.post = self.W.post
|
269 |
c.post = self.W.post
|
268 |
if request.method == 'POST':
|
270 |
if request.method == 'POST':
|
269 |
require_access(self.post, 'moderate')
|
271 |
require_access(self.post, 'moderate')
|
270 |
post_fields = self.W.edit_post.to_python(kw, None)
|
272 |
post_fields = self.W.edit_post.to_python(kw, None)
|
|
... |
|
... |
306 |
|
308 |
|
307 |
@h.vardec
|
309 |
@h.vardec
|
308 |
@expose()
|
310 |
@expose()
|
309 |
@require_post()
|
311 |
@require_post()
|
310 |
@validate(pass_validator, error_handler=index)
|
312 |
@validate(pass_validator, error_handler=index)
|
|
|
313 |
@utils.AntiSpam.validate('Spambot protection engaged')
|
311 |
@require_post(redir='.')
|
314 |
@require_post(redir='.')
|
312 |
def reply(self, **kw):
|
315 |
def reply(self, **kw):
|
313 |
require_access(self.thread, 'post')
|
316 |
require_access(self.thread, 'post')
|
314 |
kw = self.W.edit_post.to_python(kw, None)
|
317 |
kw = self.W.edit_post.to_python(kw, None)
|
315 |
self.thread.post(parent_id=self.post._id, **kw)
|
318 |
self.thread.post(parent_id=self.post._id, **kw)
|
|
... |
|
... |
452 |
|
455 |
|
453 |
@h.vardec
|
456 |
@h.vardec
|
454 |
@expose()
|
457 |
@expose()
|
455 |
@require_post()
|
458 |
@require_post()
|
456 |
@validate(pass_validator, error_handler=h.json_validation_error)
|
459 |
@validate(pass_validator, error_handler=h.json_validation_error)
|
|
|
460 |
@utils.AntiSpam.validate('Spambot protection engaged')
|
457 |
def reply(self, **kw):
|
461 |
def reply(self, **kw):
|
458 |
require_access(self.thread, 'post')
|
462 |
require_access(self.thread, 'post')
|
459 |
kw = self.W.edit_post.to_python(kw, None)
|
463 |
kw = self.W.edit_post.to_python(kw, None)
|
460 |
post = self.thread.post(parent_id=self.post._id, **kw)
|
464 |
post = self.thread.post(parent_id=self.post._id, **kw)
|
461 |
self.thread.num_replies += 1
|
465 |
self.thread.num_replies += 1
|
|
... |
|
... |
469 |
|
473 |
|
470 |
@h.vardec
|
474 |
@h.vardec
|
471 |
@expose()
|
475 |
@expose()
|
472 |
@require_post()
|
476 |
@require_post()
|
473 |
@validate(pass_validator, error_handler=h.json_validation_error)
|
477 |
@validate(pass_validator, error_handler=h.json_validation_error)
|
|
|
478 |
@utils.AntiSpam.validate('Spambot protection engaged')
|
474 |
def new(self, **kw):
|
479 |
def new(self, **kw):
|
475 |
require_access(self.thread, 'post')
|
480 |
require_access(self.thread, 'post')
|
476 |
kw = self.W.edit_post.to_python(kw, None)
|
481 |
kw = self.W.edit_post.to_python(kw, None)
|
477 |
p = self.thread.add_post(**kw)
|
482 |
p = self.thread.add_post(**kw)
|
478 |
redirect(p.slug + '/')
|
483 |
redirect(p.slug + '/')
|