# 装饰action @bp.route('/reply//ban') @admin_permission def ban_reply(reply_id): """Proc: ban reply""" reply = Reply.query.get_or_404(reply_id) reply.ban = True reply.baned = datetime.datetime.now() db.session.add(reply) db.session.commit() flash('已将此回复移入回收站') return redirect(url_for('.topic', topic_id=reply.topic_id)) # 在action中使用 @bp.route('/attachment/delete', methods=['POST']) def delete_attachment(): attachment_id = request.form.get('attachment_id') permission = AttachmentOwnerPermission(attachment_id) if not permission.check(): return permission.deny() attachment = Attachment.query.get_or_404(attachment_id) db.session.delete(attachment) db.session.commit() return json.dumps({'result': 'ok'}) # 用于jinja模板 @app.context_processor def inject_vars(): from . import roles, permissions return dict( roles=roles, permissions=permissions ) """ {% if permissions.TopicOwnerPermission(topic.id).check() %}
{% endif %} """