wraps.py 978 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # -*- coding:utf-8 -*-
  2. from functools import wraps
  3. from flask import current_app, abort
  4. from flask_login import current_user
  5. from controllers.console.workspace.error import AccountNotInitializedError
  6. def account_initialization_required(view):
  7. @wraps(view)
  8. def decorated(*args, **kwargs):
  9. # check account initialization
  10. account = current_user
  11. if account.status == 'uninitialized':
  12. raise AccountNotInitializedError()
  13. return view(*args, **kwargs)
  14. return decorated
  15. def only_edition_cloud(view):
  16. @wraps(view)
  17. def decorated(*args, **kwargs):
  18. if current_app.config['EDITION'] != 'CLOUD':
  19. abort(404)
  20. return view(*args, **kwargs)
  21. return decorated
  22. def only_edition_self_hosted(view):
  23. @wraps(view)
  24. def decorated(*args, **kwargs):
  25. if current_app.config['EDITION'] != 'SELF_HOSTED':
  26. abort(404)
  27. return view(*args, **kwargs)
  28. return decorated