Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save mvandermeulen/a25bbd837aef595cd6ae5fe2d261784f to your computer and use it in GitHub Desktop.
Save mvandermeulen/a25bbd837aef595cd6ae5fe2d261784f to your computer and use it in GitHub Desktop.
Superset welcome page redirect
import logging
import pprint
from flask import Flask, redirect
from flask_appbuilder import expose, IndexView
from superset.typing import FlaskResponse
logger = logging.getLogger()
logger.warn("Loading config override for Uniweb");
WELCOME_PAGE_REDIRECT_ADMIN="/superset/dashboard/1/"
WELCOME_PAGE_REDIRECT_DEFAULT="/dashboard/list/"
WELCOME_PAGE_REDIRECT_BY_ROLE={
'Test': '/superset/dashboard/2/',
}
# Change welcome page
# https://stackoverflow.com/a/69930056/1760643
class SupersetDashboardIndexView(IndexView):
@expose("/")
def index(self) -> FlaskResponse:
from superset.views.base import is_user_admin, get_user_roles
user_roles = get_user_roles()
logger.warn('__DEBUG__ user roles: ' + pprint.pformat(user_roles))
if is_user_admin():
return redirect(WELCOME_PAGE_REDIRECT_ADMIN)
else:
for role in user_roles:
role_name = role.name
if role_name in WELCOME_PAGE_REDIRECT_BY_ROLE:
return redirect(WELCOME_PAGE_REDIRECT_BY_ROLE[role_name])
return redirect(WELCOME_PAGE_REDIRECT_DEFAULT)
FAB_INDEX_VIEW = f"{SupersetDashboardIndexView.__module__}.{SupersetDashboardIndexView.__name__}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment