text: # -*- coding: utf-8 -*-
  """
      flaskbb.forum.utils
      ~~~~~~~~~~~~~~~~~~~
  
      Utilities specific to the FlaskBB forums module
  
      :copyright: (c) 2018 the FlaskBB Team
      :license: BSD, see LICENSE for more details
  """
  
  from flask import current_app
  from flask_login import current_user
  
  from .locals import current_forum
  
  
  def force_login_if_needed():
      """
      Forces a login if the current user is unauthed and the current forum
      doesn't allow guest users.
      """
  
      if current_forum and should_force_login(current_user, current_forum):
          return current_app.login_manager.unauthorized()
  
  
  def should_force_login(user, forum):
      return not user.is_authenticated and not (
          {g.id for g in forum.groups} & {g.id for g in user.groups}
      )
  