You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by jo...@apache.org on 2019/07/24 16:16:23 UTC

[incubator-superset] branch master updated: [Profile] Fix 5xx when user not found (#7864)

This is an automated email from the ASF dual-hosted git repository.

johnbodley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 51b34e4  [Profile] Fix 5xx when user not found (#7864)
51b34e4 is described below

commit 51b34e47511d265ba8f8c2aba2c4b3a807c897a9
Author: Erik Ritter <er...@airbnb.com>
AuthorDate: Wed Jul 24 09:16:05 2019 -0700

    [Profile] Fix 5xx when user not found (#7864)
---
 superset/views/core.py  | 10 ++++++++--
 superset/views/utils.py | 10 ++--------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/superset/views/core.py b/superset/views/core.py
index 3c652c3..5d3411e 100755
--- a/superset/views/core.py
+++ b/superset/views/core.py
@@ -2828,7 +2828,7 @@ class Superset(BaseSupersetView):
             return self.dashboard(str(welcome_dashboard_id))
 
         payload = {
-            "user": bootstrap_user_data(),
+            "user": bootstrap_user_data(g.user),
             "common": self.common_bootstrap_payload(),
         }
 
@@ -2846,8 +2846,14 @@ class Superset(BaseSupersetView):
         if not username and g.user:
             username = g.user.username
 
+        user = (
+            db.session.query(ab_models.User).filter_by(username=username).one_or_none()
+        )
+        if not user:
+            abort(404, description=f"User: {username} does not exist.")
+
         payload = {
-            "user": bootstrap_user_data(username, include_perms=True),
+            "user": bootstrap_user_data(user, include_perms=True),
             "common": self.common_bootstrap_payload(),
         }
 
diff --git a/superset/views/utils.py b/superset/views/utils.py
index 97660c5..79b9f90 100644
--- a/superset/views/utils.py
+++ b/superset/views/utils.py
@@ -19,8 +19,7 @@ from collections import defaultdict
 from typing import Any, Dict, List, Optional, Tuple
 from urllib import parse
 
-from flask import g, request
-from flask_appbuilder.security.sqla import models as ab_models
+from flask import request
 import simplejson as json
 
 from superset import app, db, viz
@@ -36,12 +35,7 @@ if not app.config.get("ENABLE_JAVASCRIPT_CONTROLS"):
     FORM_DATA_KEY_BLACKLIST = ["js_tooltip", "js_onclick_href", "js_data_mutator"]
 
 
-def bootstrap_user_data(username=None, include_perms=False):
-    if not username:
-        username = g.user.username
-
-    user = db.session.query(ab_models.User).filter_by(username=username).one()
-
+def bootstrap_user_data(user, include_perms=False):
     payload = {
         "username": user.username,
         "firstName": user.first_name,