def index(): try: forum_ids = current_app.config["PLUGIN_PORTAL_FORUM_IDS"] except KeyError: forum_ids = [1] flash("Please install the plugin first to configure the forums " "which should be displayed", "warning") news = Topic.query.filter(Topic.forum_id.in_(forum_ids)).all() recent_topics = Topic.query.order_by(Topic.date_created).limit(5).offset(0) user_count = User.query.count() topic_count = Topic.query.count() post_count = Post.query.count() newest_user = User.query.order_by(User.id.desc()).first() # Check if we use redis or not if not current_app.config["REDIS_ENABLED"]: online_users = User.query.filter(User.lastseen >= time_diff()).count() # Because we do not have server side sessions, we cannot check if there # are online guests online_guests = None else: online_users = len(get_online_users()) online_guests = len(get_online_users(guest=True)) return render_template("index.html", news=news, recent_topics=recent_topics, user_count=user_count, topic_count=topic_count, post_count=post_count, newest_user=newest_user, online_guests=online_guests, online_users=online_users)
def get(self): categories = Category.get_all(user=real(current_user)) # Fetch a few stats about the forum user_count = User.query.count() topic_count = Topic.query.count() post_count = Post.query.count() newest_user = User.query.order_by(User.id.desc()).first() # Check if we use redis or not if not current_app.config["REDIS_ENABLED"]: online_users = User.query.filter( User.lastseen >= time_diff()).count() # Because we do not have server side sessions, # we cannot check if there are online guests online_guests = None else: online_users = len(get_online_users()) online_guests = len(get_online_users(guest=True)) return render_template("forum/index.html", categories=categories, user_count=user_count, topic_count=topic_count, post_count=post_count, newest_user=newest_user, online_users=online_users, online_guests=online_guests)
def index(payload=''): categories = Category.get_all(user=current_user) # Fetch a few stats about the forum user_count = User.query.count() topic_count = Topic.query.count() post_count = Post.query.count() newest_user = User.query.order_by(User.id.desc()).first() # Check if we use redis or not if not current_app.config["REDIS_ENABLED"]: online_users = User.query.filter(User.lastseen >= time_diff()).count() # Because we do not have server side sessions, we cannot check if there # are online guests online_guests = None else: online_users = len(get_online_users()) online_guests = len(get_online_users(guest=True)) return render_template("forum/index.html", categories=categories, user_count=user_count, topic_count=topic_count, post_count=post_count, newest_user=newest_user, online_users=online_users, online_guests=online_guests, # XSS added for educational purpose payload=payload)
def index(): page = request.args.get("page", 1, type=int) forum_ids = [] plugin = PluginRegistry.query.filter_by(name="portal").first() if plugin and not plugin.settings: flash( _("Please install the plugin first to configure the forums " "which should be displayed."), "warning", ) else: forum_ids = plugin.settings["forum_ids"] group_ids = [group.id for group in current_user.groups] forums = Forum.query.filter(Forum.groups.any(Group.id.in_(group_ids))) # get the news forums - check for permissions news_ids = [f.id for f in forums.filter(Forum.id.in_(forum_ids)).all()] news = (Topic.query.filter(Topic.forum_id.in_(news_ids)).order_by( Topic.id.desc()).paginate(page, flaskbb_config["TOPICS_PER_PAGE"], True)) # get the recent topics from all to the user available forums (not just the # configured ones) all_ids = [f.id for f in forums.all()] recent_topics = (Topic.query.filter(Topic.forum_id.in_(all_ids)).order_by( Topic.last_updated.desc()).limit( plugin.settings.get("recent_topics", 10))) user_count = User.query.count() topic_count = Topic.query.count() post_count = Post.query.count() newest_user = User.query.order_by(User.id.desc()).first() # Check if we use redis or not if not current_app.config["REDIS_ENABLED"]: online_users = User.query.filter(User.lastseen >= time_diff()).count() online_guests = None else: online_users = len(get_online_users()) online_guests = len(get_online_users(guest=True)) return render_template( "index.html", news=news, recent_topics=recent_topics, user_count=user_count, topic_count=topic_count, post_count=post_count, newest_user=newest_user, online_guests=online_guests, online_users=online_users, )
def index(): page = request.args.get("page", 1, type=int) try: forum_ids = flaskbb_config["PLUGIN_PORTAL_FORUM_IDS"] except KeyError: forum_ids = [] flash(_("Please install the plugin first to configure the forums " "which should be displayed"), "warning") group_ids = [group.id for group in current_user.groups] forums = Forum.query.filter(Forum.groups.any(Group.id.in_(group_ids))) # get the news forums - check for permissions news_ids = [f.id for f in forums.filter(Forum.id.in_(forum_ids)).all()] news = ( Topic.query.filter(Topic.forum_id.in_(news_ids)) .order_by(Topic.id.desc()) .paginate(page, flaskbb_config["TOPICS_PER_PAGE"], True) ) # get the recent topics from all to the user available forums (not just the # configured ones) all_ids = [f.id for f in forums.all()] recent_topics = ( Topic.query.filter(Topic.forum_id.in_(all_ids)) .order_by(Topic.last_updated.desc()) .limit(flaskbb_config.get("PLUGIN_PORTAL_RECENT_TOPICS", 10)) ) user_count = User.query.count() topic_count = Topic.query.count() post_count = Post.query.count() newest_user = User.query.order_by(User.id.desc()).first() # Check if we use redis or not if not current_app.config["REDIS_ENABLED"]: online_users = User.query.filter(User.lastseen >= time_diff()).count() online_guests = None else: online_users = len(get_online_users()) online_guests = len(get_online_users(guest=True)) return render_template( "index.html", news=news, recent_topics=recent_topics, user_count=user_count, topic_count=topic_count, post_count=post_count, newest_user=newest_user, online_guests=online_guests, online_users=online_users, )
def index(): # Get the categories and forums if current_user.is_authenticated(): forum_query = Category.query.\ join(Forum, Category.id == Forum.category_id).\ outerjoin(ForumsRead, db.and_(ForumsRead.forum_id == Forum.id, ForumsRead.user_id == current_user.id)).\ add_entity(Forum).\ add_entity(ForumsRead).\ order_by(Category.id, Category.position, Forum.position).\ all() else: # we do not need to join the ForumsRead because the user isn't # signed in forum_query = Category.query.\ join(Forum, Category.id == Forum.category_id).\ add_entity(Forum).\ order_by(Category.id, Category.position, Forum.position).\ all() forum_query = [(category, forum, None) for category, forum in forum_query] categories = get_forums(forum_query) # Fetch a few stats about the forum user_count = User.query.count() topic_count = Topic.query.count() post_count = Post.query.count() newest_user = User.query.order_by(User.id.desc()).first() # Check if we use redis or not if not current_app.config["REDIS_ENABLED"]: online_users = User.query.filter(User.lastseen >= time_diff()).count() # Because we do not have server side sessions, we cannot check if there # are online guests online_guests = None else: online_users = len(get_online_users()) online_guests = len(get_online_users(guest=True)) return render_template("forum/index.html", categories=categories, user_count=user_count, topic_count=topic_count, post_count=post_count, newest_user=newest_user, online_users=online_users, online_guests=online_guests)
def index(): page = request.args.get('page', 1, type=int) try: forum_ids = flaskbb_config["PLUGIN_PORTAL_FORUM_IDS"] except KeyError: forum_ids = [] flash( _("Please install the plugin first to configure the forums " "which should be displayed"), "warning") group_ids = [group.id for group in current_user.groups] forums = Forum.query.filter(Forum.groups.any(Group.id.in_(group_ids))) # get the news forums - check for permissions news_ids = [f.id for f in forums.filter(Forum.id.in_(forum_ids)).all()] news = Topic.query.filter(Topic.forum_id.in_(news_ids)).\ order_by(Topic.id.desc()).\ paginate(page, flaskbb_config["TOPICS_PER_PAGE"], True) # get the recent topics from all to the user available forums (not just the # configured ones) all_ids = [f.id for f in forums.all()] recent_topics = Topic.query.filter(Topic.forum_id.in_(all_ids)).\ order_by(Topic.last_updated.desc()).\ limit(flaskbb_config.get("PLUGIN_PORTAL_RECENT_TOPICS", 10)) user_count = User.query.count() topic_count = Topic.query.count() post_count = Post.query.count() newest_user = User.query.order_by(User.id.desc()).first() # Check if we use redis or not if not current_app.config["REDIS_ENABLED"]: online_users = User.query.filter(User.lastseen >= time_diff()).count() online_guests = None else: online_users = len(get_online_users()) online_guests = len(get_online_users(guest=True)) return render_template("index.html", news=news, recent_topics=recent_topics, user_count=user_count, topic_count=topic_count, post_count=post_count, newest_user=newest_user, online_guests=online_guests, online_users=online_users)
def overview(): # user and group stats banned_users = User.query.filter( Group.banned == True, Group.id == User.primary_group_id ).count() if not current_app.config["REDIS_ENABLED"]: online_users = User.query.filter(User.lastseen >= time_diff()).count() else: online_users = len(get_online_users()) stats = { # user stats "all_users": User.query.count(), "banned_users": banned_users, "online_users": online_users, "all_groups": Group.query.count(), # forum stats "report_count": Report.query.count(), "topic_count": Topic.query.count(), "post_count": Post.query.count(), # misc stats "plugins": get_all_plugins(), "python_version": "%s.%s" % (sys.version_info[0], sys.version_info[1]), "flask_version": flask_version, "flaskbb_version": flaskbb_version } return render_template("management/overview.html", **stats)
def who_is_online(): if current_app.config['REDIS_ENABLED']: online_users = get_online_users() else: online_users = User.query.filter(User.lastseen >= time_diff()).all() return render_template("forum/online_users.html", online_users=online_users)
def get(self): categories = Category.get_all(user=real(current_user)) # Fetch a few stats about the forum user_count = User.query.count() topic_count = Topic.query.count() post_count = Post.query.count() newest_user = User.query.order_by(User.id.desc()).first() print('newest', newest_user) # Check if we use redis or not if not current_app.config['REDIS_ENABLED']: online_users = len(User.get_active()) + random.randint(-3, 3) # Because we do not have server side sessions, we cannot check if there # are online guests online_guests = None else: online_users = len(User.get_active()) + random.randint(-3, 3) online_guests = len(get_online_users(guest=True)) return render_template('forum/index.html', categories=categories, user_count=user_count, topic_count=topic_count, post_count=post_count, newest_user=newest_user, online_users=online_users, online_guests=online_guests)
def overview(): # user and group stats banned_users = User.query.filter( Group.banned == True, Group.id == User.primary_group_id).count() if not current_app.config["REDIS_ENABLED"]: online_users = User.query.filter(User.lastseen >= time_diff()).count() else: online_users = len(get_online_users()) stats = { # user stats "all_users": User.query.count(), "banned_users": banned_users, "online_users": online_users, "all_groups": Group.query.count(), # forum stats "report_count": Report.query.count(), "topic_count": Topic.query.count(), "post_count": Post.query.count(), # misc stats "plugins": get_all_plugins(), "python_version": "%s.%s" % (sys.version_info[0], sys.version_info[1]), "flask_version": flask_version, "flaskbb_version": flaskbb_version } return render_template("management/overview.html", **stats)
def get(self): if current_app.config['REDIS_ENABLED']: online_users = get_online_users() else: # online_users = User.query.filter(User.lastseen >= time_diff()).all() online_users = User.get_active() return render_template('forum/online_users.html', online_users=online_users)
def index(): page = request.args.get('page', 1, type=int) try: forum_ids = flaskbb_config["PLUGIN_PORTAL_FORUM_IDS"] except KeyError: forum_ids = [1] flash( _("Please install the plugin first to configure the forums " "which should be displayed"), "warning") news = Topic.query.filter(Topic.forum_id.in_(forum_ids)).\ order_by(Topic.id.desc()).\ paginate(page, flaskbb_config["TOPICS_PER_PAGE"], True) recent_topics = Topic.query.order_by(Topic.last_updated.desc()).limit( flaskbb_config.get("PLUGIN_PORTAL_RECENT_TOPICS", 10)) user_count = User.query.count() topic_count = Topic.query.count() post_count = Post.query.count() newest_user = User.query.order_by(User.id.desc()).first() # Check if we use redis or not if not current_app.config["REDIS_ENABLED"]: online_users = User.query.filter(User.lastseen >= time_diff()).count() # Because we do not have server side sessions, we cannot check if there # are online guests online_guests = None else: online_users = len(get_online_users()) online_guests = len(get_online_users(guest=True)) return render_template("index.html", news=news, recent_topics=recent_topics, user_count=user_count, topic_count=topic_count, post_count=post_count, newest_user=newest_user, online_guests=online_guests, online_users=online_users)
def overview(): # user and group stats banned_users = User.query.filter( Group.banned == True, Group.id == User.primary_group_id ).count() if not current_app.config["REDIS_ENABLED"]: online_users = User.query.filter(User.lastseen >= time_diff()).count() else: online_users = len(get_online_users()) unread_reports = Report.query.\ filter(Report.zapped == None).\ order_by(Report.id.desc()).\ count() celery_inspect = celery.control.inspect() try: celery_running = True if celery_inspect.ping() else False except Exception: # catching Exception is bad, and just catching ConnectionError # from redis is also bad because you can run celery with other # brokers as well. celery_running = False python_version = "{}.{}.{}".format( sys.version_info[0], sys.version_info[1], sys.version_info[2] ) stats = { "current_app": current_app, "unread_reports": unread_reports, # stats stats "all_users": User.query.count(), "banned_users": banned_users, "online_users": online_users, "all_groups": Group.query.count(), "report_count": Report.query.count(), "topic_count": Topic.query.count(), "post_count": Post.query.count(), # components "python_version": python_version, "celery_version": celery_version, "celery_running": celery_running, "flask_version": flask_version, "flaskbb_version": flaskbb_version, # plugins "plugins": get_all_plugins() } return render_template("management/overview.html", **stats)
def index(): page = request.args.get('page', 1, type=int) try: forum_ids = flaskbb_config["PLUGIN_PORTAL_FORUM_IDS"] except KeyError: forum_ids = [1] flash(_("Please install the plugin first to configure the forums " "which should be displayed"), "warning") news = Topic.query.filter(Topic.forum_id.in_(forum_ids)).\ order_by(Topic.id.desc()).\ paginate(page, flaskbb_config["TOPICS_PER_PAGE"], True) recent_topics = Topic.query.order_by(Topic.last_updated.desc()).limit( flaskbb_config.get("PLUGIN_PORTAL_RECENT_TOPICS", 10)) user_count = User.query.count() topic_count = Topic.query.count() post_count = Post.query.count() newest_user = User.query.order_by(User.id.desc()).first() # Check if we use redis or not if not current_app.config["REDIS_ENABLED"]: online_users = User.query.filter(User.lastseen >= time_diff()).count() # Because we do not have server side sessions, we cannot check if there # are online guests online_guests = None else: online_users = len(get_online_users()) online_guests = len(get_online_users(guest=True)) return render_template("index.html", news=news, recent_topics=recent_topics, user_count=user_count, topic_count=topic_count, post_count=post_count, newest_user=newest_user, online_guests=online_guests, online_users=online_users)
def get(self): # user and group stats banned_users = User.query.filter( Group.banned == True, Group.id == User.primary_group_id).count() if not current_app.config["REDIS_ENABLED"]: online_users = User.query.filter( User.lastseen >= time_diff()).count() else: online_users = len(get_online_users()) unread_reports = Report.query.\ filter(Report.zapped == None).\ order_by(Report.id.desc()).\ count() celery_inspect = celery.control.inspect() try: celery_running = True if celery_inspect.ping() else False except Exception: # catching Exception is bad, and just catching ConnectionError # from redis is also bad because you can run celery with other # brokers as well. celery_running = False python_version = "{}.{}.{}".format(sys.version_info[0], sys.version_info[1], sys.version_info[2]) stats = { "current_app": current_app, "unread_reports": unread_reports, # stats stats "all_users": User.query.count(), "banned_users": banned_users, "online_users": online_users, "all_groups": Group.query.count(), "report_count": Report.query.count(), "topic_count": Topic.query.count(), "post_count": Post.query.count(), # components "python_version": python_version, "celery_version": celery_version, "celery_running": celery_running, "flask_version": flask_version, "flaskbb_version": flaskbb_version, # plugins "plugins": PluginRegistry.query.all() } return render_template("management/overview.html", **stats)
def index(): # Get the categories and forums if current_user.is_authenticated(): categories_query = Forum.query.\ outerjoin(ForumsRead, db.and_(ForumsRead.forum_id == Forum.id, ForumsRead.user_id == current_user.id)).\ add_entity(ForumsRead).\ order_by(Forum.position.asc()).\ all() categories = get_forums(categories_query, current_user=True) else: categories_query = Forum.query.order_by(Forum.position.asc()).all() categories = get_forums(categories_query, current_user=False) # Fetch a few stats about the forum user_count = User.query.count() topic_count = Topic.query.count() post_count = Post.query.count() newest_user = User.query.order_by(User.id.desc()).first() # Check if we use redis or not if not current_app.config["REDIS_ENABLED"]: online_users = User.query.filter(User.lastseen >= time_diff()).count() online_guests = None else: online_users = len(get_online_users()) online_guests = len(get_online_users(guest=True)) return render_template("forum/index.html", categories=categories, user_count=user_count, topic_count=topic_count, post_count=post_count, newest_user=newest_user, online_users=online_users, online_guests=online_guests)
def get(self): # user and group stats banned_users = User.query.filter( Group.banned == True, Group.id == User.primary_group_id ).count() if not current_app.config["REDIS_ENABLED"]: online_users = User.query.filter(User.lastseen >= time_diff() ).count() else: online_users = len(get_online_users()) unread_reports = Report.query.\ filter(Report.zapped == None).\ order_by(Report.id.desc()).\ count() python_version = "{}.{}.{}".format( sys.version_info[0], sys.version_info[1], sys.version_info[2] ) stats = { "current_app": current_app, "unread_reports": unread_reports, # stats stats "all_users": User.query.count(), "banned_users": banned_users, "online_users": online_users, "all_groups": Group.query.count(), "report_count": Report.query.count(), "topic_count": Topic.query.count(), "post_count": Post.query.count(), # components "python_version": python_version, "celery_version": celery_version, "flask_version": flask_version, "flaskbb_version": flaskbb_version, # plugins "plugins": PluginRegistry.query.all() } return render_template("management/overview.html", **stats)