123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # **************************************************************************
- # Copyright © 2017 jianglin
- # File Name: views.py
- # Author: jianglin
- # Email: xiyang0807@gmail.com
- # Created: 2017-03-13 13:29:37 (CST)
- # Last Update: Sunday 2018-03-04 22:37:00 (CST)
- # By:
- # Description:
- # **************************************************************************
- from flask import (request, flash, redirect, url_for, render_template)
- from flask_login import login_required, current_user
- from flask_maple.views import MethodView
- from forums.permission import confirm_permission
- from forums.extension import cache
- def cache_key():
- if current_user.is_authenticated:
- return 'view:{}:{}'.format(current_user.id, request.url)
- return 'view:{}'.format(request.url)
- def is_confirmed(func):
- def _is_confirmed(*args, **kwargs):
- if confirm_permission.can():
- ret = func(*args, **kwargs)
- return ret
- flash('请验证你的帐号', 'warning')
- return redirect(url_for('user.user', username=current_user.username))
- return _is_confirmed
- class BaseMethodView(MethodView):
- @cache.cached(timeout=180, key_prefix=cache_key)
- def dispatch_request(self, *args, **kwargs):
- return super(BaseMethodView, self).dispatch_request(*args, **kwargs)
- def render_template(self, template, **kwargs):
- return render_template(template, **kwargs)
- class IsAuthMethodView(BaseMethodView):
- decorators = [login_required]
- class IsConfirmedMethodView(BaseMethodView):
- decorators = [is_confirmed, login_required]
|