Explorar o código

AMBARI-6998. Admin View: double refresh on logout. (yusaku)

Yusaku Sako %!s(int64=11) %!d(string=hai) anos
pai
achega
e50da949ad

+ 1 - 0
ambari-web/app/app.js

@@ -33,6 +33,7 @@ module.exports = Em.Application.create({
     recordCache: []
   }),
   isAdmin: false,
+  isOperator: false,
   /**
    * return url prefix with number value of version of HDP stack
    */

+ 7 - 2
ambari-web/app/router.js

@@ -274,6 +274,7 @@ App.Router = Em.Router.extend({
           var clusterPermissions = privileges.items.filterProperty('PrivilegeInfo.cluster_name', clusterName).mapProperty('PrivilegeInfo.permission_name');
           if (clusterPermissions.indexOf('CLUSTER.OPERATE') > -1) {
             App.set('isAdmin', true);
+            App.set('isOperator', true);
             transitionToApp = true;
           } else if (clusterPermissions.indexOf('CLUSTER.READ') > -1) {
             transitionToApp = true;
@@ -349,6 +350,7 @@ App.Router = Em.Router.extend({
     // since it's a computed property but we are not setting it as a dependent of App.db.
     App.db.cleanUp();
     App.set('isAdmin', false);
+    App.set('isOperator', false);
     this.set('loggedIn', false);
     this.clearAllSteps();
     console.log("Log off: " + App.router.getClusterName());
@@ -367,8 +369,11 @@ App.Router = Em.Router.extend({
         error:'logOffErrorCallback'
       });
     }
-    this.transitionTo('login', context);
-    window.location.reload();
+    if (App.router.get('clusterController.isLoaded')) {
+      window.location.reload();
+    } else {
+      this.transitionTo('login', context);
+    }
   },
 
   logOffSuccessCallback: function (data) {

+ 3 - 3
ambari-web/app/templates/application.hbs

@@ -49,9 +49,9 @@
               </button>
               <ul class="dropdown-menu">
                   <li><a href="" {{action showAboutPopup target="controller"}}>{{t app.aboutAmbari}}</a></li>
-                  {{#if App.isAdmin }}
-                    <li><a href="/views/ADMIN_VIEW/1.0.0/INSTANCE/#/" target="adminconsole">{{t app.manageAmbari}}</a></li>
-                  {{/if}}
+                  {{#if App.isAdmin}}{{#unless App.isOperator}}
+                      <li><a href="/views/ADMIN_VIEW/1.0.0/INSTANCE/#/" target="adminconsole">{{t app.manageAmbari}}</a></li>
+                  {{/unless}}{{/if}}
                 {{#if isClusterDataLoaded}}
                   {{#if App.isAdmin}}
                       <li><a href="" {{action showSettingsPopup target="controller"}}>{{t app.settings}}</a></li>