Exemple #1
0
    def f(request):
        log('comment_owner_required')
        u = current_user(request)
        # 查询评论id,识别用户
        id_key = 'comment_id'
        if id_key in request.query:
            comment_id = request.query[id_key]
        else:
            comment_id = request.form()[id_key]
        c = Comment.one(id=int(comment_id))
        w_id = c.weibo_id
        w = Weibo.one(id=int(w_id))
        # 判断评论用户
        if c.user_id == u.id:
            comment_owner = True
        else:
            comment_owner = False
        # 判断微博用户
        if w.user_id == u.id:
            weibo_owner = True
        else:
            weibo_owner = False

        if comment_owner or weibo_owner:
            return route_function(request)
        else:
            return redirect('/weibo/index')
Exemple #2
0
 def f(request):
     u = current_user(request)
     # 拿到修改数据对应的 id
     if 'id' in request.query:
         id = request.query['id']
     else:
         form = request.dejson()
         id = form['id']
     # 判断修改数据的类型
     log('id', id)
     if 'todo' in request.path:
         m = Todo.one(id=int(id))
     elif 'weibo' in request.path:
         m = Weibo.one(id=int(id))
     elif 'comment' in request.path:
         m = Comment.one(id=int(id))
     # 判断当前用户与被修改数据的用户是否是同一用户
     log('path', request.path)
     log('member', m)
     if m.user_id == u.id:
         return route_function(request)
     else:
         d = dict(
             deny="yes",
             message="owner required",
         )
         return json_response(d)
Exemple #3
0
    def f(request):
        log('comment_or_weibo_owner_required')
        if request.method == 'GET':
            data = request.query
        elif request.method == 'POST':
            data = request.form()
        else:
            raise ValueError('不支持的方法', request.method)

        comment_key = 'comment_id'
        weibo_key = 'weibo_id'
        if comment_key in data:
            c = Comment.one(id=int(data[comment_key]))
            if c is None:
                return redirect('/weibo/index')
            else:
                user_id = c.user_id
        elif weibo_key in data:
            w = Weibo.one(id=int(data[weibo_key]))
            if w is None:
                return redirect('/weibo/index')
            else:
                user_id = w.user_id
        else:
            raise ValueError('不支持的参数', data)

        u = current_user(request)
        if user_id == u.id:
            log('不是评论或者微博的作者', user_id, u.id)
            return route_function(request)
        else:
            return redirect('/weibo/index')
Exemple #4
0
def test_weibo():
    # add
    form = dict(
        content='hello',
    )
    user_id = 1
    Weibo.add(form, user_id)

    # update
    form = dict(
        id=1,
        content='well done',
        user_id=1,
    )
    weibo_id = 1
    Weibo.update(weibo_id, **form)

    # comments
    w = Weibo.one(id=1)
    form = dict(
        content='hello',
        weibo_id=1,
    )
    c = Comment(form)
    c.add(1)
    form = dict(
        content='hello233',
        weibo_id=1,
    )
    c = Comment(form)
    c.add(1)

    cs = w.comments()
    log('test comments cs', cs)
def weibo_owner(request, u, weibo_id, route_function):
    log('<F weibo_owner route_function', route_function)
    w = Weibo.one(id=weibo_id)
    if w.user_id == u.id:

        return route_function(request)
    else:
        return json_response({'authority': 'f'})
Exemple #6
0
def edit(request):
    weibo_id = int(request.query['weibo_id'])
    w = Weibo.one(id=weibo_id)
    return html_response(
        'weibo_edit.html',
        weibo_id=str(weibo_id),
        weibo_content=w.content,
    )
Exemple #7
0
def comment_update(request):
    form = request.form()
    comment_id = int(form['c_id'])
    c = Comment.one(id=comment_id)
    weibo_id = int(c.weibo_id)
    w = Weibo.one(id=weibo_id)
    user_id = int(w.user_id)
    Comment.update(comment_id, content=form['content'])

    return redirect('/weibo/index?user_id={}'.format(user_id))
Exemple #8
0
def index():
    """
    weibo 首页的路由函数
    """
    valid = login_required()
    if valid is not None:
        return valid
    u = current_user()
    weibos = Weibo.one(user_id=u.id)
    # 替换模板文件中的标记字符串
    return render_template('index.html', weibos=weibos, user=u)
Exemple #9
0
    def f(request):
        u = current_user(request)
        if request.method == 'GET':
            weibo_id = int(request.query.get('weibo_id'))
        else:
            weibo_id = int(request.form['weibo_id'])

        weibo = Weibo.one(id=weibo_id)
        if u.id == weibo.user_id:
            return route_function(request)
        else:
            return redirect('/weibo')
    def wrapper(request):
        u = current_user(request)
        if 'weibo_id' in request.query:
            weibo_id = request.query['weibo_id']
        else:
            weibo_id = request.form()['weibo_id']
        w = Weibo.one(id=int(weibo_id))

        if w.user_id == u.id:
            return route_function(request)
        else:
            return redirect('/weibo/index')
Exemple #11
0
    def f(request):
        log('weibo_owner_required')
        u = current_user(request)
        if 'id' in request.query:
            weibo_id = request.query['id']
        else:
            weibo_id = request.form()['id']
        w = Weibo.one(id=int(weibo_id))

        if w.user_id == u.id:
            return route_function(request)
        else:
            return redirect('/weibo/index')
    def f():
        log('weibo_owner_required')
        u = current_user()
        if 'id' in request.args:
            weibo_id = request.args['id']
        else:
            weibo_id = request.args['id']
        w = Weibo.one(id=int(weibo_id))

        if w.user_id == u.id:
            return route_function()
        else:
            return redirect(url_for('weibo.index'))
Exemple #13
0
 def f(request):
     u = current_user(request)
     if request.method == 'GET':
         user_id = u.id
         comment_id = int(request.query.get('comment_id', ''))
     else:
         user_id = u.id
         comment_id = int(request.form.get('comment_id', ''))
     comment = Comment.one(id=comment_id)
     weibo = Weibo.one(id=comment.weibo_id)
     if comment.user_id == user_id or weibo.user_id == u.id:
         return route_function(request)
     else:
         return redirect('/weibo')
    def f():
        log('comment_owner_or_weibo_owner_reuired')
        u = current_user()
        if 'id' in request.args:
            comment_id = request.args['id']
        else:
            comment_id = request.args['id']
        c = Comment.one(id=int(comment_id))
        w = Weibo.one(id=c.weibo_id)

        if u.id == c.user_id or u.id == w.user_id:
            return route_function()
        else:
            return redirect(url_for('user.login_view'))
Exemple #15
0
    def f(request):
        log('comment_owner_or_weibo_owner_required')
        u = current_user(request)
        if 'id' in request.query:
            comment_id = request.query['id']
        else:
            comment_id = request.form()['id']
        c = Comment.one(id=int(comment_id))
        w = Weibo.one(id=c.weibo_id)

        if u.id == c.user_id or u.id == w.user_id:
            return route_function(request)
        else:
            return redirect('/weibo/index')
Exemple #16
0
    def f(request):
        log('comment_owner_or_weibo_owner_required')
        u = current_user(request)
        if request.method == 'GET':
            cid = int(request.query.get('id'))
        else:
            cid = int(request.form().get('id'))
        c = Comment.one(id=cid)
        w = Weibo.one(id=c.weibo_id)

        if u.id == c.user_id or u.id == w.user_id:
            return route_function(request)
        else:
            return redirect('/weibo/index')
 def f(request):
     log('comment_owner_required')
     u = current_user(request)
     data_from_method = {
         'GET': request.query,
         'POST': request.json(),
     }
     comment_id = int(data_from_method[request.method]['comment_id'])
     # log('<F comment_owner_required weibo_id', comment_id)
     c = Comment.one(id=comment_id)
     w = Weibo.one(id=c.weibo_id)
     if w.user_id == u.id or c.user_id == u.id:
         return route_function(request)
     else:
         return json_response({'authority': 'f'})
Exemple #18
0
    def f(request):
        log('weibo_owner_required')
        u = current_user(request)
        method = request.method
        if method == 'POST':
            weibo_id = request.form()['id']
        else:
            weibo_id = request.query['id']
        log('*** weibo_owner_required *** weibo_id <{}>'.format(weibo_id))
        w = Weibo.one(id=int(weibo_id))

        if w.user_id == u.id:
            return route_function(request)
        else:
            return redirect('/weibo/index')
Exemple #19
0
 def f(request):
     log('same_user_required')
     u = current_user(request)
     if 'id' in request.query:
         comment_id = request.query['id']
     else:
         form = request.json()
         comment_id = int(form['id'])
     w = Comment.one(id=int(comment_id))
     z = Weibo.one(id=w.weibo_id)
     if w.user_id == u.id or u.id == z.user_id:
         return route_function(request)
     else:
         d = dict(message="权限不足")
         return json_response(d)
Exemple #20
0
    def f(request):
        log('weibo_owner_required')
        u = current_user(request)
        id_key = 'weibo_id'
        if id_key in request.query:
            weibo_id = request.query[id_key]
        else:
            weibo_id = request.form()[id_key]
        w = Weibo.one(id=int(weibo_id))

        if w.user_id == u.id:
            log('不是微博作者', w)
            return route_function(request)
        else:
            return redirect('/weibo/index')
 def f(request):
     log('weibo_owner_required')
     u = current_user(request)
     if 'id' in request.query:
         weibo_id = request.query['id']
     else:
         form = request.json()
         weibo_id = form['id']
     w = Weibo.one(id=int(weibo_id))
     if w.user_id == u.id:
         return route_function(request)
     else:
         d = dict(
             deny="yes",
             message="weibo owner required",
         )
         return json_response(d)
 def f(request):
     log('comment_owner_required')
     u = current_user(request)
     if 'id' in request.query:
         comment_id = request.query['id']
     else:
         form = request.json()
         comment_id = form['id']
     c = Comment.one(id=int(comment_id))
     weibo_id = c.weibo_id
     w = Weibo.one(id=int(weibo_id))
     if c.user_id == u.id or w.user_id == u.id:
         return route_function(request)
     else:
         d = dict(
             deny="yes",
             message="comment owner required",
         )
         return json_response(d)
def comment_delete(request):
    # 请求数据
    u = current_user(request)
    comment_id = int(request.query['id'])

    # 评论及对应微博
    c = Comment.one(id=comment_id)
    w = Weibo.one(id=c.weibo_id)

    # 是否为评论者或博主
    comment_owner = u.id == c.user_id
    weibo_owner = u.id == w.user_id

    if comment_owner or weibo_owner:
        # 删除
        Comment.delete(comment_id)
        return redirect('/weibo/index')
    else:
        return redirect('/weibo/index')
Exemple #24
0
def update(request):
    form: dict = request.json()
    weibo_id = int(form.pop('id'))
    Weibo.update(weibo_id, **form)
    w = Weibo.one(id=int(weibo_id))
    return json_response(w.json())
Exemple #25
0
def edit(request):
    weibo_id = int(request.query['id'])
    w = Weibo.one(id=weibo_id)
    return html_response('weibo_edit.html', weibo=w)
def weibo_edit(request):
    weibo_id = int(request.query['weibo_id'])
    w = Weibo.one(id=weibo_id)
    body = JinjaTemplate.render('weibo_edit.html', weibo=w)
    return html_response(body)
def edit():
    weibo_id = int(request.args['id'])
    log('request_args',request.args)
    w = Weibo.one(id=weibo_id)
    log('w:',w)
    return render_template('weibo_edit.html', weibo=w)
def edit():
    weibo_id = int(request.query['id'])
    w = Weibo.one(id=weibo_id)
    return render_template('weibo_edit.html', weibo=w)