1234567891011121314151617181920212223242526272829303132 |
- from itertools import chain
- from pluggy import HookimplMarker
- from flask_allows import Permission
- impl = HookimplMarker('flaskbb')
- @impl(hookwrapper=True, tryfirst=True)
- def flaskbb_tpl_admin_settings_menu(user):
- """
- Flattens the lists that come back from the hook
- into a single iterable that can be used to populate
- the menu
- """
- from flaskbb.utils.requirements import IsAdmin # noqa: circular dependency
- results = [
- ('management.overview', 'Overview', 'fa fa-tasks'),
- ('management.unread_reports', 'Reports', 'fa fa-flag'),
- ('management.users', 'Users', 'fa fa-user')
- ]
- if Permission(IsAdmin, identity=user):
- results.extend([
- ('management.groups', 'Groups', 'fa fa-users'),
- ('management.forums', 'Forums', 'fa fa-comments'),
- ('management.settings', 'Settings', 'fa fa-cogs'),
- ('management.plugins', 'Plugins', 'fa fa-puzzle-piece')
- ])
- outcome = yield
- outcome.force_result(chain(results, *outcome.get_result()))
|