فهرست منبع

AMBARI-20651 - When in Upgrade paused state, links should be disabled for less privileged user (rzang)

Change-Id: I89e63a6bb1c572716e39c03b310d2f171b2ea88f
Richard Zang 8 سال پیش
والد
کامیت
174c0402f7
2فایلهای تغییر یافته به همراه45 افزوده شده و 31 حذف شده
  1. 41 0
      ambari-web/app/controllers/application.js
  2. 4 31
      ambari-web/app/templates/application.hbs

+ 41 - 0
ambari-web/app/controllers/application.js

@@ -61,6 +61,47 @@ App.ApplicationController = Em.Controller.extend(App.UserPref, {
     this._super();
     this._super();
   },
   },
 
 
+  /**
+   * Determines if upgrade label should be shown
+   *
+   * @type {boolean}
+   */
+  showUpgradeLabel: Em.computed.or('App.upgradeInProgress', 'App.upgradeHolding', 'App.upgradeSuspended'),
+
+  /**
+   * @return {{msg: string, cls: string, icon: string}}
+   */
+  upgradeMap: function () {
+    var upgradeInProgress = App.get('upgradeInProgress');
+    var upgradeHolding = App.get('upgradeHolding');
+    var upgradeSuspended = App.get('upgradeSuspended');
+    var isDowngrade = App.router.get('mainAdminStackAndUpgradeController.isDowngrade');
+    var typeSuffix = isDowngrade ? 'downgrade' : 'upgrade';
+    var hasUpgradePrivilege = App.isAuthorized('CLUSTER.UPGRADE_DOWNGRADE_STACK');
+    if (upgradeInProgress) {
+      return {
+        cls: hasUpgradePrivilege? 'upgrade-in-progress' : 'upgrade-in-progress not-allowed-cursor',
+        icon: 'icon-cog',
+        msg: Em.I18n.t('admin.stackVersions.version.' + typeSuffix + '.running')
+      }
+    }
+    if (upgradeHolding) {
+      return {
+        cls: hasUpgradePrivilege? 'upgrade-holding' : 'upgrade-holding not-allowed-cursor',
+        icon: 'icon-pause',
+        msg: Em.I18n.t('admin.stackVersions.version.' + typeSuffix + '.pause')
+      }
+    }
+    if (upgradeSuspended) {
+      return {
+        cls: hasUpgradePrivilege? 'upgrade-aborted' : 'upgrade-aborted not-allowed-cursor',
+        icon: 'icon-pause',
+        msg: Em.I18n.t('admin.stackVersions.version.' + typeSuffix + '.suspended')
+      }
+    }
+    return {};
+  }.property('App.upgradeInProgress', 'App.upgradeHolding', 'App.upgradeSuspended', 'App.router.mainAdminStackAndUpgradeController.isDowngrade'),
+
   startKeepAlivePoller: function() {
   startKeepAlivePoller: function() {
     if (!this.get('isPollerRunning')) {
     if (!this.get('isPollerRunning')) {
      this.set('isPollerRunning',true);
      this.set('isPollerRunning',true);

+ 4 - 31
ambari-web/app/templates/application.hbs

@@ -124,38 +124,11 @@
                   {{else}}
                   {{else}}
                     <a class="brand cluster-name">
                     <a class="brand cluster-name">
                   {{/isAuthorized}}
                   {{/isAuthorized}}
-                  {{#if App.upgradeInProgress}}
-                    {{#if App.router.mainAdminStackAndUpgradeController.isDowngrade}}
-                      <span
-                              class="label upgrade-in-progress" {{action "openUpgradeDialog" target="App.router.mainAdminStackAndUpgradeController"}}>
-                             <i class="icon-cog"></i>&nbsp;{{t admin.stackVersions.version.downgrade.running}}</span>
-                    {{else}}
-                      <span
-                              class="label upgrade-in-progress" {{action "openUpgradeDialog" target="App.router.mainAdminStackAndUpgradeController"}}>
-                             <i class="icon-cog"></i>&nbsp;{{t admin.stackVersions.version.upgrade.running}}</span>
-                    {{/if}}
-                  {{/if}}
-                  {{#if App.upgradeHolding}}
-                    {{#if App.router.mainAdminStackAndUpgradeController.isDowngrade}}
-                      <span
-                              class="label upgrade-holding" {{action "openUpgradeDialog" target="App.router.mainAdminStackAndUpgradeController"}}>
-                          <i class="icon-pause"></i>&nbsp;{{t admin.stackVersions.version.downgrade.pause}}</span>
-                    {{else}}
-                      <span
-                              class="label upgrade-holding" {{action "openUpgradeDialog" target="App.router.mainAdminStackAndUpgradeController"}}>
-                          <i class="icon-pause"></i>&nbsp;{{t admin.stackVersions.version.upgrade.pause}}</span>
-                    {{/if}}
-                  {{/if}}
-                  {{#if App.upgradeSuspended}}
-                    {{#if App.router.mainAdminStackAndUpgradeController.isDowngrade}}
-                      <span class="label upgrade-holding" {{action "openUpgradeDialog" target="App.router.mainAdminStackAndUpgradeController"}}>
-                        <i class="icon-pause"></i>&nbsp;{{t admin.stackVersions.version.downgrade.suspended}}
-                      </span>
-                    {{else}}
-                      <span class="label upgrade-holding" {{action "openUpgradeDialog" target="App.router.mainAdminStackAndUpgradeController"}}>
-                        <i class="icon-pause"></i>&nbsp;{{t admin.stackVersions.version.upgrade.suspended}}
+                  {{#if showUpgradeLabel}}
+                      <span {{bindAttr class="upgradeMap.cls :label"}} {{action "openUpgradeDialog" target="App.router.mainAdminStackAndUpgradeController"}}>
+                        <i {{bindAttr class="upgradeMap.icon"}}></i>&nbsp;
+                          {{upgradeMap.msg}}
                       </span>
                       </span>
-                    {{/if}}
                   {{/if}}
                   {{/if}}
                 </a>
                 </a>
                 </p>
                 </p>