Switch to unified view

a/Allura/allura/controllers/discuss.py b/Allura/allura/controllers/discuss.py
1
import logging
1
from urllib import unquote
2
from urllib import unquote
2
from datetime import datetime
3
from datetime import datetime
3
4
4
from tg import expose, redirect, validate, request, response, flash
5
from tg import expose, redirect, validate, request, response, flash
5
from tg.decorators import before_validate, with_trailing_slash, without_trailing_slash
6
from tg.decorators import before_validate, with_trailing_slash, without_trailing_slash
...
...
18
from allura.lib.security import require, has_access, require_access
19
from allura.lib.security import require, has_access, require_access
19
from allura.lib.helpers import DateTimeConverter
20
from allura.lib.helpers import DateTimeConverter
20
21
21
from allura.lib.widgets import discuss as DW
22
from allura.lib.widgets import discuss as DW
22
from .attachments import AttachmentsController, AttachmentController
23
from .attachments import AttachmentsController, AttachmentController
24
25
log = logging.getLogger(__name__)
23
26
24
class pass_validator(object):
27
class pass_validator(object):
25
    def validate(self, v, s):
28
    def validate(self, v, s):
26
        return v
29
        return v
27
pass_validator=pass_validator()
30
pass_validator=pass_validator()
...
...
326
    @h.vardec
329
    @h.vardec
327
    @expose()
330
    @expose()
328
    @require_post()
331
    @require_post()
329
    @validate(pass_validator, error_handler=index)
332
    @validate(pass_validator, error_handler=index)
330
    def moderate(self, **kw):
333
    def moderate(self, **kw):
334
        log.debug('Moderating post on project "%s"', c.project.shortname)
335
        log.debug('... requiring access on %r', self.post.thread)
331
        require_access(self.post.thread, 'moderate')
336
        require_access(self.post.thread, 'moderate')
332
        if kw.pop('delete', None):
337
        if kw.pop('delete', None):
338
            log.debug('... deleting post')
333
            self.post.delete()
339
            self.post.delete()
340
            log.debug('... updating thread stats')
334
            self.thread.update_stats()
341
            self.thread.update_stats()
335
        elif kw.pop('spam', None):
342
        elif kw.pop('spam', None):
343
            log.debug('... marking post as spam')
336
            self.post.status = 'spam'
344
            self.post.status = 'spam'
345
            log.debug('... updating thread stats')
337
            self.thread.update_stats()
346
            self.thread.update_stats()
347
        log.debug('... redirecting to referrer: %s', request.referer)
338
        redirect(request.referer)
348
        redirect(request.referer)
339
349
340
    @h.vardec
350
    @h.vardec
341
    @expose()
351
    @expose()
342
    @require_post()
352
    @require_post()