|
a/Allura/allura/controllers/discuss.py |
|
b/Allura/allura/controllers/discuss.py |
|
... |
|
... |
198 |
flash('Your post was not saved. You must provide content.', 'error')
|
198 |
flash('Your post was not saved. You must provide content.', 'error')
|
199 |
redirect(request.referer)
|
199 |
redirect(request.referer)
|
200 |
|
200 |
|
201 |
file_info = kw.get('file_info', None)
|
201 |
file_info = kw.get('file_info', None)
|
202 |
p = self.thread.add_post(**kw)
|
202 |
p = self.thread.add_post(**kw)
|
203 |
is_spam = g.spam_checker.check(kw['text'], artifact=p, user=c.user)
|
|
|
204 |
p.add_attachment(file_info)
|
203 |
p.add_attachment(file_info)
|
205 |
if self.thread.artifact:
|
204 |
if self.thread.artifact:
|
206 |
self.thread.artifact.mod_date = datetime.utcnow()
|
205 |
self.thread.artifact.mod_date = datetime.utcnow()
|
207 |
flash('Message posted')
|
206 |
flash('Message posted')
|
208 |
redirect(request.referer)
|
207 |
redirect(request.referer)
|
|
... |
|
... |
315 |
@require_post(redir='.')
|
314 |
@require_post(redir='.')
|
316 |
def reply(self, file_info=None, **kw):
|
315 |
def reply(self, file_info=None, **kw):
|
317 |
require_access(self.thread, 'post')
|
316 |
require_access(self.thread, 'post')
|
318 |
kw = self.W.edit_post.to_python(kw, None)
|
317 |
kw = self.W.edit_post.to_python(kw, None)
|
319 |
p = self.thread.add_post(parent_id=self.post._id, **kw)
|
318 |
p = self.thread.add_post(parent_id=self.post._id, **kw)
|
320 |
is_spam = g.spam_checker.check(kw['text'], artifact=p, user=c.user)
|
|
|
321 |
p.add_attachment(file_info)
|
319 |
p.add_attachment(file_info)
|
322 |
redirect(request.referer)
|
320 |
redirect(request.referer)
|
323 |
|
321 |
|
324 |
@h.vardec
|
322 |
@h.vardec
|
325 |
@expose()
|
323 |
@expose()
|
|
... |
|
... |
329 |
require_access(self.post.thread, 'moderate')
|
327 |
require_access(self.post.thread, 'moderate')
|
330 |
if kw.pop('delete', None):
|
328 |
if kw.pop('delete', None):
|
331 |
self.post.delete()
|
329 |
self.post.delete()
|
332 |
elif kw.pop('spam', None):
|
330 |
elif kw.pop('spam', None):
|
333 |
self.post.status = 'spam'
|
331 |
self.post.status = 'spam'
|
|
|
332 |
g.spam_checker.submit_spam(self.post.text, artifact=self.post, user=c.user)
|
334 |
elif kw.pop('approve', None):
|
333 |
elif kw.pop('approve', None):
|
335 |
self.post.status = 'ok'
|
334 |
self.post.status = 'ok'
|
336 |
self.thread.update_stats()
|
335 |
self.thread.update_stats()
|
337 |
return dict(result ='success')
|
336 |
return dict(result ='success')
|
338 |
|
337 |
|
|
... |
|
... |
456 |
@validate(pass_validator, error_handler=h.json_validation_error)
|
455 |
@validate(pass_validator, error_handler=h.json_validation_error)
|
457 |
def reply(self, **kw):
|
456 |
def reply(self, **kw):
|
458 |
require_access(self.thread, 'post')
|
457 |
require_access(self.thread, 'post')
|
459 |
kw = self.W.edit_post.to_python(kw, None)
|
458 |
kw = self.W.edit_post.to_python(kw, None)
|
460 |
post = self.thread.post(parent_id=self.post._id, **kw)
|
459 |
post = self.thread.post(parent_id=self.post._id, **kw)
|
461 |
is_spam = g.spam_checker.check(kw['text'], artifact=post, user=c.user)
|
|
|
462 |
self.thread.num_replies += 1
|
460 |
self.thread.num_replies += 1
|
463 |
redirect(post.slug.split('/')[-1] + '/')
|
461 |
redirect(post.slug.split('/')[-1] + '/')
|
464 |
|
462 |
|
465 |
class ThreadRestController(ThreadController):
|
463 |
class ThreadRestController(ThreadController):
|
466 |
|
464 |
|