Example #1
0
def admin_redirects_add_update(req, id=None):
    check_login(req)
    check_right(req, module_right)
    check_token(req, req.form.get('token'), uri='/admin/redirects')

    item = Redirect(id)
    item.bind(req.form)
    rv = item.mod(req) if id else item.add(req)

    if isinstance(rv, Redirect):
        return send_json(req, {})

    req.status = state.HTTP_BAD_REQUEST
    if isinstance(rv, ErrorValue):
        return send_json(req, rv, cls=ObjectEncoder)

    return send_json(req, {'reason': 'src_exist'})
Example #2
0
def articles_comment_xhr(req, arg):
    id = arg if isinstance(arg, int) else None
    uri = arg if isinstance(arg, unicode) else None

    article, rv = articles_comment_internal(req, uri, id)
    # XXX: at now, isinstance not work, becouase, have another namespace
    # that rv....
    # if hasattr(rv, 'reason'):
    if isinstance(rv, ErrorValue):
        req.status = state.HTTP_BAD_REQUEST
        return send_json(req, rv, cls=ObjectEncoder)
    elif rv is None:
        req.status = state.HTTP_INTERNAL_SERVER_ERROR
        return send_json(req, {'reason': 'integrity_error'})

    return send_json(req, {'discussion': ArticleComment.list(req,
                           article.id, Pager(limit=-1)), 'last': rv.id},
                     cls=ObjectEncoder)
Example #3
0
def admin_redirects_delete(req, id):
    check_login(req)
    check_right(req, module_right)
    check_token(req, req.args.get('token'), uri='/admin/redirects')

    item = Redirect(id)
    if not item.delete(req):
        req.status = state.HTTP_NOT_FOUND

    return send_json(req, {})
Example #4
0
def articles_stats(req, arg):
    id = arg if isinstance(arg, int) else None
    uri = arg if isinstance(arg, unicode) else None

    article = Article(id)
    article.uri = uri
    if uri and not article.inc_data_key(req, key='uri', visits=1):
        raise SERVER_RETURN(state.HTTP_NOT_FOUND)
    if id and not article.inc_data_key(req, visits=1):
        raise SERVER_RETURN(state.HTTP_NOT_FOUND)
    return send_json(req, {'Ok': True})
Example #5
0
def articles_append_tag(req, id, tag_id):
    check_login(req)
    match_right(req, module_rights)
    check_token(req, req.form.get('token'), uri='/admin/articles/%d' % id)

    article = Article(id)

    if not article.append_tag(req, tag_id):
        return send_json(req, {'reason': 'integrity_error'})
    req.content_type = 'application/json'
    return '{}'
Example #6
0
def articles_tags(req, id):
    check_login(req)
    match_right(req, module_rights)
    return send_json(req, {'tags': Article.tags(req, id)}, cls=ObjectEncoder)