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')
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)
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')
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'})
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, )
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))
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)
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')
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'))
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'))
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')
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'})
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')
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)
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')
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())
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)