Эх сурвалжийг харах

[core] Do not mask exceptions for non logged in users

Currently, if there is a server error with an anonymous user using Hue,
a nonsensical "user does not have 'has_permission' method" message and stacktrace
appear. In reality, the real error/problem is hidden. This is because
common header doesn't support anonymous users.
Abraham Elmahrek 12 жил өмнө
parent
commit
f5ced1038a

+ 2 - 0
desktop/core/src/desktop/templates/common_header.mako

@@ -155,6 +155,7 @@ from django.utils.translation import ugettext as _
     <div class="navbar-inner">
       <div class="container-fluid">
         <a class="brand nav-tooltip" title="${_('About Hue')}" href="/about"><img src="/static/art/hue-logo-mini-letterpress.png" /></a>
+        % if user.is_authenticated():
         <div id="usernameDropdown" class="btn-group pull-right">
           <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
             <i class="icon-user"></i> ${user.username}
@@ -166,6 +167,7 @@ from django.utils.translation import ugettext as _
             <li><a href="/accounts/logout/">${_('Sign Out')}</a></li>
           </ul>
         </div>
+        % endif
 
         <div class="nav-collapse">
           <ul class="nav">

+ 5 - 2
desktop/core/src/desktop/views.py

@@ -306,8 +306,11 @@ def commonheader(title, section, user, padding="60px"):
   """
   Returns the rendered common header
   """
-  apps = appmanager.get_apps(user)
-  apps_list = sorted(apps, key=lambda app: app.menu_index)
+  if user.is_authenticated():
+    apps = appmanager.get_apps(user)
+    apps_list = sorted(apps, key=lambda app: app.menu_index)
+  else:
+    apps_list = []
 
   return django_mako.render_to_string("common_header.mako", {
     'apps': apps_list,