docs: def login_required(func):
      """
      A wrapper around the flask_login.login_required.
      But it also checks the presence of the decorator: @no_login_required
      On a "@login_required" class, method containing "@no_login_required" will
      still be able to access without authentication
      :param func:
      :return:
      """
      @functools.wraps(func)
      def decorated_view(*args, **kwargs):
          if "no_login_required" not in ext.utils.get_decorators_list(func) \
                  and ext.user_not_authenticated():
              return current_app.login_manager.unauthorized()
          return func(*args, **kwargs)
      return decorated_view