GitHub user dosubot[bot] added a comment to the discussion: Is there an inbuilt 
class in Superset called SuperstDashboardIndexView

<!-- Answer -->
Yes, your redirect logic will work as intended in Superset 5, but you need to 
combine it with your existing FLASK_APP_MUTATOR (view1) function. Only one 
FLASK_APP_MUTATOR is supported, so all customizations—setting a custom 
IndexView, adding views/links, and registering before_request hooks—must be 
done inside that single function.

Here's how you can do it:

1. Define your custom IndexView class (with your redirect logic) outside the 
view1 function.
2. Inside view1, after importing appbuilder, set appbuilder.indexview = 
SupersetDashboardIndexView.
3. Keep your existing logic (adding views, links, before_request) as is.

Example:

```python
from flask_appbuilder import expose, IndexView
from superset.typing import FlaskResponse
from flask import g, redirect

class SupersetDashboardIndexView(IndexView):
    @expose("/")
    def index(self) -> FlaskResponse:
        if not g.user or not get_user_id():
            return redirect("/login")
        return redirect(WELCOME_PAGE_REDIRECT_DEFAULT)

def view1(SupersetsetApp):
    from superset.extensions import appbuilder
    from superset.views.user_D.views import DashboardModelView1
    import time

    # Your existing logic...
    user_info_cache = {}
    CACHE_TTL = 10

    appbuilder.add_view_no_menu(DashboardModelView1)
    appbuilder.add_link(
        "User Details",
        label="User Details",
        href="/userdetails/form",
        icon="fa-dashboard",
        category="",
        category_icon="",
    )

    @SupersetsetApp.before_request
    def track_user_visit():
        # ... your tracking logic ...

    # Set your custom IndexView here
    appbuilder.indexview = SupersetDashboardIndexView

    return SupersetsetApp

FLASK_APP_MUTATOR = view1
```

This approach is supported and recommended for Superset 5—just make sure all 
your app customizations are inside the single FLASK_APP_MUTATOR function, and 
set appbuilder.indexview to your custom class before returning the app. If you 
run into issues, double-check your config file placement and syntax, and 
restart your Superset instance for changes to take effect. See more details in 
the [official discussion](https://github.com/apache/superset/discussions/34530) 
and [migration issue](https://github.com/apache/superset/issues/34441).


<!-- Dosu Comment Footer -->
*To reply, just mention [@dosu](https://go.dosu.dev/dosubot).*

---
<sup>How did I do? 
[Good](https://app.dosu.dev/response-feedback/24d83e80-6119-4ab0-b0bd-5bc9f8d7dc15?feedback_type=great_response)
 | 
[Irrelevant](https://app.dosu.dev/response-feedback/24d83e80-6119-4ab0-b0bd-5bc9f8d7dc15?feedback_type=irrelevant_answer)
 | 
[Incorrect](https://app.dosu.dev/response-feedback/24d83e80-6119-4ab0-b0bd-5bc9f8d7dc15?feedback_type=incorrect_sources)
 | 
[Verbose](https://app.dosu.dev/response-feedback/24d83e80-6119-4ab0-b0bd-5bc9f8d7dc15?feedback_type=too_verbose)
 | 
[Hallucination](https://app.dosu.dev/response-feedback/24d83e80-6119-4ab0-b0bd-5bc9f8d7dc15?feedback_type=hallucination)
 | [Report 
🐛](https://app.dosu.dev/response-feedback/24d83e80-6119-4ab0-b0bd-5bc9f8d7dc15?feedback_type=bug_report)
 | 
[Other](https://app.dosu.dev/response-feedback/24d83e80-6119-4ab0-b0bd-5bc9f8d7dc15?feedback_type=other)</sup>&nbsp;&nbsp;[![Chat
 with 
Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=github)&
 nbsp;[![Join 
Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share
 on 
X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/discussions/34594)

GitHub link: 
https://github.com/apache/superset/discussions/34594#discussioncomment-14033750

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: 
notifications-unsubscr...@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org
For additional commands, e-mail: notifications-h...@superset.apache.org

Reply via email to