diff --git a/app/processors/menu.py b/app/processors/menu.py index d7b2007..b45bbf6 100644 --- a/app/processors/menu.py +++ b/app/processors/menu.py @@ -1,3 +1,4 @@ +from flask_login import current_user from app import app, db from app.forms.login import LoginForm from app.forms.search import SearchForm @@ -5,6 +6,7 @@ from app.models.forum import Forum from app.models.topic import Topic + @app.context_processor def menu_processor(): """ All items used to render main menu. Includes search form """ @@ -19,8 +21,16 @@ def menu_processor(): INNER JOIN post ON post.id = comment.id GROUP BY topic.id ORDER BY MAX(post.date_created) DESC - LIMIT 10;""") + LIMIT 20;""") last_active_topics = [Topic.query.get(id) for id in raw] + # Filter the topics the user can view and limit to 10 + if current_user.is_authenticated: + f = lambda t: current_user.can_access_forum(t.forum) + else: + f = lambda t: t.forum.is_default_accessible() + + last_active_topics = list(filter(f, last_active_topics))[:10] + return dict(login_form=login_form, search_form=search_form, main_forum=main_forum, last_active_topics=last_active_topics)