You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by al...@apache.org on 2016/06/04 10:16:02 UTC

ambari git commit: AMBARI-17042. Refine Role page UI display (alexantonenko)

Repository: ambari
Updated Branches:
  refs/heads/branch-2.4 735f68d35 -> 12d7e9ec9


AMBARI-17042. Refine Role page UI display (alexantonenko)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/12d7e9ec
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/12d7e9ec
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/12d7e9ec

Branch: refs/heads/branch-2.4
Commit: 12d7e9ec98ea06fa4b49b01e193e7953a15b3d9b
Parents: 735f68d
Author: Alex Antonenko <hi...@gmail.com>
Authored: Sat Jun 4 12:15:13 2016 +0300
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Sat Jun 4 13:15:56 2016 +0300

----------------------------------------------------------------------
 .../ui/admin-web/app/scripts/i18n.config.js     |  3 +-
 .../admin-web/app/scripts/services/Cluster.js   |  2 ++
 .../app/scripts/services/RoleDetailsModal.js    | 32 ++++++++++++++------
 .../resources/ui/admin-web/app/styles/main.css  |  9 ++++++
 .../app/views/modals/RoleDetailsModal.html      | 17 ++++++++---
 5 files changed, 48 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/12d7e9ec/ambari-admin/src/main/resources/ui/admin-web/app/scripts/i18n.config.js
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/i18n.config.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/i18n.config.js
index 7474d5f..6fe46dc 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/i18n.config.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/i18n.config.js
@@ -352,7 +352,8 @@ angular.module('ambariAdminConsole')
         'ambariAdmin': 'Ambari Administrator',
         'viewUser': 'View User',
         'none': 'None',
-        'oneRolePerUser': 'Only 1 role allowed per user'
+        'oneRolePerUser': 'Only 1 role allowed per user',
+        'permissionLevel': '{{level}}-level Permissions'
       },
 
       'alerts': {

http://git-wip-us.apache.org/repos/asf/ambari/blob/12d7e9ec/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Cluster.js
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Cluster.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Cluster.js
index c1cf221..33ed7ed 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Cluster.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Cluster.js
@@ -78,6 +78,8 @@ angular.module('ambariAdminConsole')
       "AMBARI.SET_SERVICE_USERS_GROUPS"
     ],
 
+    orderedLevels: ['SERVICE', 'HOST', 'CLUSTER', 'AMBARI'],
+
     ineditableRoles : ['VIEW.USER', 'AMBARI.ADMINISTRATOR'],
 
     getAllClusters: function() {

http://git-wip-us.apache.org/repos/asf/ambari/blob/12d7e9ec/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RoleDetailsModal.js
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RoleDetailsModal.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RoleDetailsModal.js
index 7c03f4d..5a14b33 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RoleDetailsModal.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RoleDetailsModal.js
@@ -36,20 +36,34 @@ angular.module('ambariAdminConsole')
           $scope.title = '';
           $scope.orderedRoles = ['AMBARI.ADMINISTRATOR'].concat(Cluster.orderedRoles).reverse();
           $scope.orderedAuthorizations = Cluster.orderedAuthorizations;
+          $scope.orderedLevels = Cluster.orderedLevels;
           $scope.authHash = {};
-          roles.map(function(r) {
-            r.authorizations.map(function(auth) {
-              $scope.authHash[auth.authorization_id] = auth.authorization_name;
+          $scope.getLevelName = function (key) {
+            return key.charAt(0) + key.slice(1).toLowerCase();
+          };
+          angular.forEach(roles, function (r) {
+            angular.forEach(r.authorizations, function (auth) {
+              var match = auth.authorization_id.match(/(\w+)\./),
+                levelKey = match && match[1],
+                isLevelDisplayed = $scope.orderedAuthorizations.some(function (item) {
+                  return !item.indexOf(levelKey);
+                });
+              if (isLevelDisplayed) {
+                if (!$scope.authHash[levelKey]) {
+                  $scope.authHash[levelKey] = {};
+                }
+                if (!$scope.authHash[levelKey][auth.authorization_id]) {
+                  $scope.authHash[levelKey][auth.authorization_id] = auth.authorization_name;
+                }
+                if (!r.authHash) {
+                  r.authHash = {};
+                }
+                r.authHash[auth.authorization_id] = true;
+              }
             });
           });
           $scope.roles = roles.sort(function(a, b) {
             return $scope.orderedRoles.indexOf(a.permission_name) - $scope.orderedRoles.indexOf(b.permission_name);
-          }).map(function(r) {
-            r.authHash = {};
-            r.authorizations.map(function(a) {
-              r.authHash[a.authorization_id] = true;
-            });
-            return r;
           });
           $scope.ok = function() {
             $modalInstance.dismiss();

http://git-wip-us.apache.org/repos/asf/ambari/blob/12d7e9ec/ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css b/ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css
index 12f44bb..542177d 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css
@@ -1841,6 +1841,15 @@ thead.view-permission-header > tr > th {
   visibility: hidden;
 }
 
+.role-details-modal .table-section-title {
+  font-weight: bold;
+}
+
+.role-details-modal .table-section-title .table-cell {
+  width: 100%;
+}
+
+
 .proxied-field-wrap {
   display:block;
   position:absolute;

http://git-wip-us.apache.org/repos/asf/ambari/blob/12d7e9ec/ambari-admin/src/main/resources/ui/admin-web/app/views/modals/RoleDetailsModal.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/modals/RoleDetailsModal.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/modals/RoleDetailsModal.html
index 776b33d..926bea9 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/modals/RoleDetailsModal.html
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/modals/RoleDetailsModal.html
@@ -33,11 +33,18 @@
     <div class="table-cell">{{roles[roles.length - 1].permission_label}}</div>
   </div>
   <div class="table-body">
-    <div class="table-row-wrapper">
-      <div class="table-row" ng-repeat="auth in orderedAuthorizations">
-        <div class="table-cell">{{authHash[auth]}}</div>
-        <div class="table-cell text-center" ng-repeat="role in roles">
-          <i class="glyphicon glyphicon-ok green-icon" ng-show="role.authHash[auth]"></i>
+    <div ng-repeat="level in orderedLevels">
+      <div class="table-row-wrapper table-section-title">
+        <div class="table-row">
+          <div class="table-cell" colspan="{{roles.length + 1}}">{{'users.roles.permissionLevel' | translate: '{level: getLevelName(level)}'}}</div>
+        </div>
+      </div>
+      <div class="table-row-wrapper">
+        <div class="table-row" ng-repeat="auth in orderedAuthorizations" ng-if="authHash[level][auth]">
+          <div class="table-cell">{{authHash[level][auth]}}</div>
+          <div class="table-cell text-center" ng-repeat="role in roles">
+            <i class="glyphicon glyphicon-ok green-icon" ng-show="role.authHash[auth]"></i>
+          </div>
         </div>
       </div>
     </div>