extensions.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. # -*- coding: utf-8 -*-
  2. """
  3. flaskbb.extensions
  4. ~~~~~~~~~~~~~~~~~~
  5. The extensions that are used by FlaskBB.
  6. :copyright: (c) 2014 by the FlaskBB Team.
  7. :license: BSD, see LICENSE for more details.
  8. """
  9. from flask_allows import Allows
  10. from flask_sqlalchemy import SQLAlchemy
  11. from flask_login import LoginManager
  12. from flask_mail import Mail
  13. from flask_cache import Cache
  14. from flask_debugtoolbar import DebugToolbarExtension
  15. from flask_redis import Redis
  16. from flask_migrate import Migrate
  17. from flask_themes2 import Themes
  18. from flask_plugins import PluginManager
  19. from flask_babelplus import Babel
  20. from flask_wtf.csrf import CsrfProtect
  21. from flask_limiter import Limiter
  22. from flask_limiter.util import get_remote_address
  23. from flaskbb.exceptions import AuthorizationRequired
  24. # Permissions Manager
  25. allows = Allows(throws=AuthorizationRequired)
  26. # Database
  27. db = SQLAlchemy()
  28. # Login
  29. login_manager = LoginManager()
  30. # Mail
  31. mail = Mail()
  32. # Caching
  33. cache = Cache()
  34. # Redis
  35. redis_store = Redis()
  36. # Debugtoolbar
  37. debugtoolbar = DebugToolbarExtension()
  38. # Migrations
  39. migrate = Migrate()
  40. # Themes
  41. themes = Themes()
  42. # PluginManager
  43. plugin_manager = PluginManager()
  44. # Babel
  45. babel = Babel()
  46. # CSRF
  47. csrf = CsrfProtect()
  48. # Rate Limiting
  49. limiter = Limiter(auto_check=False, key_func=get_remote_address)