You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ni...@apache.org on 2019/03/14 05:44:10 UTC
[ranger] branch master updated: RANGER-2359: Show zone association
with tag based service.
This is an automated email from the ASF dual-hosted git repository.
ni3galave pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push:
new cd9c2fd RANGER-2359: Show zone association with tag based service.
cd9c2fd is described below
commit cd9c2fd6bc013a2e5c2d66cf6ad7843c97a513cb
Author: Nitin Galave <ni...@apache.org>
AuthorDate: Wed Mar 13 19:12:05 2019 +0530
RANGER-2359: Show zone association with tag based service.
---
.../src/main/webapp/scripts/modules/XALinks.js | 17 +++--
.../scripts/views/policies/RangerPolicyCreate.js | 4 +-
.../scripts/views/policies/RangerPolicyForm.js | 3 +-
.../views/policies/RangerPolicyTableLayout.js | 24 ++++---
.../scripts/views/policymanager/ServiceLayout.js | 74 ++++++++++++++++------
5 files changed, 80 insertions(+), 42 deletions(-)
diff --git a/security-admin/src/main/webapp/scripts/modules/XALinks.js b/security-admin/src/main/webapp/scripts/modules/XALinks.js
index 7885b72..ab0fe7a 100755
--- a/security-admin/src/main/webapp/scripts/modules/XALinks.js
+++ b/security-admin/src/main/webapp/scripts/modules/XALinks.js
@@ -51,17 +51,20 @@ define(function(require) {
title: 'h.repositoryManager'
},
ServiceManager : function(options){
- var textVal = !_.isEmpty(options) ? 'Service Manager : ' + options + ' zone' : 'Service Manager';
+ var textVal = 'h.serviceManager';
return {
href : '#!/policymanager/resource',
- text : textVal,
- title : textVal,
+ text : !_.isEmpty(options) ? 'Service Manager : ' + options + ' zone' : textVal,
+ title : !_.isEmpty(options) ? 'Service Manager : ' + options + ' zone' : textVal,
}
},
- TagBasedServiceManager :{
- href : '#!/policymanager/tag',
- text : 'h.serviceManager',
- title: 'h.serviceManager'
+ TagBasedServiceManager : function(options){
+ var textVal = 'h.serviceManager';
+ return{
+ href : '#!/policymanager/tag',
+ text : !_.isEmpty(options) ? 'Service Manager : ' + options + ' zone' : textVal,
+ title: !_.isEmpty(options) ? 'Service Manager : ' + options + ' zone' : textVal,
+ }
},
Users : {
href : '#!/users/usertab',
diff --git a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
index e369aa8..8f23e84 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
@@ -72,7 +72,7 @@ define(function(require){
breadCrumbs :function(){
var name = this.rangerServiceDefModel.get('name') != XAEnums.ServiceType.SERVICE_TAG.label ? 'ServiceManager' : 'TagBasedServiceManager';
if(this.model.isNew()){
- if(App.vZone && App.vZone.vZoneName && this.rangerServiceDefModel.get('name') != XAEnums.ServiceType.SERVICE_TAG.label){
+ if(App.vZone && App.vZone.vZoneName){
return [XALinks.get(name, App.vZone.vZoneName),
XALinks.get('ManagePolicies',{model : this.rangerService}), XALinks.get('PolicyCreate')];
}else{
@@ -80,7 +80,7 @@ define(function(require){
XALinks.get('PolicyCreate')];
}
} else {
- if(App.vZone && App.vZone.vZoneName && this.rangerServiceDefModel.get('name') != XAEnums.ServiceType.SERVICE_TAG.label){
+ if(App.vZone && App.vZone.vZoneName){
return [XALinks.get(name, App.vZone.vZoneName),
XALinks.get('ManagePolicies',{model : this.rangerService}), XALinks.get('PolicyEdit')];
}else{
diff --git a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
index 22cc7d1..931babf 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
@@ -495,8 +495,7 @@ define(function(require){
policyLabel= this.model.get('policyLabels').split(',');
this.model.set('policyLabels', policyLabel);
}
- if(!_.isUndefined(App.vZone) && App.vZone.vZoneName
- && this.rangerService.get('type') !== XAEnums.ServiceType.SERVICE_TAG.label){
+ if(!_.isUndefined(App.vZone) && App.vZone.vZoneName){
this.model.set('zoneName', App.vZone.vZoneName);
}
this.model.set('resources',resources);
diff --git a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyTableLayout.js b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyTableLayout.js
index 7369a3b..c18cfaa 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyTableLayout.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyTableLayout.js
@@ -60,17 +60,22 @@ define(function(require){
};
},
- breadCrumbs : function(){
+ breadCrumbs : function(){
if(this.rangerService.get('type') == XAEnums.ServiceType.SERVICE_TAG.label){
- return [XALinks.get('TagBasedServiceManager'),XALinks.get('ManagePolicies',{model : this.rangerService})];
- }
- if(App.vZone && App.vZone.vZoneName){
- return [XALinks.get('ServiceManager', App.vZone.vZoneName),
- XALinks.get('ManagePolicies',{model : this.rangerService})];
+ if(App.vZone && App.vZone.vZoneName){
+ return [XALinks.get('TagBasedServiceManager', App.vZone.vZoneName),XALinks.get('ManagePolicies',{model : this.rangerService})];
+ }else{
+ return [XALinks.get('TagBasedServiceManager'),XALinks.get('ManagePolicies',{model : this.rangerService})];
+ }
}else{
- return [XALinks.get('ServiceManager'),XALinks.get('ManagePolicies',{model : this.rangerService})];
+ if(App.vZone && App.vZone.vZoneName){
+ return [XALinks.get('ServiceManager', App.vZone.vZoneName),
+ XALinks.get('ManagePolicies',{model : this.rangerService})];
+ }else{
+ return [XALinks.get('ServiceManager'),XALinks.get('ManagePolicies',{model : this.rangerService})];
+ }
}
- },
+ },
/** Layout sub regions */
regions: {
@@ -129,8 +134,7 @@ define(function(require){
if(!_.isUndefined(policyType)){
this.collection.queryParams['policyType'] = policyType;
}
- if(!_.isUndefined(App.vZone) && App.vZone.vZoneName
- && this.rangerService.get('type') !== XAEnums.ServiceType.SERVICE_TAG.label){
+ if(!_.isUndefined(App.vZone) && App.vZone.vZoneName){
this.collection.queryParams['zoneName'] = App.vZone.vZoneName;
}
this.collection.fetch({
diff --git a/security-admin/src/main/webapp/scripts/views/policymanager/ServiceLayout.js b/security-admin/src/main/webapp/scripts/views/policymanager/ServiceLayout.js
index d2d1627..d3eb026 100644
--- a/security-admin/src/main/webapp/scripts/views/policymanager/ServiceLayout.js
+++ b/security-admin/src/main/webapp/scripts/views/policymanager/ServiceLayout.js
@@ -48,20 +48,25 @@ define(function(require){
serviceDefs : this.componentCollectionModels(App.vZone.vZoneName),
services : this.componentServicesModels(App.vZone.vZoneName),
showImportExportBtn : (SessionMgr.isUser() || XAUtil.isAuditorOrKMSAuditor(SessionMgr)) ? false : true,
- isZoneAdministration : ((SessionMgr.isSystemAdmin()|| SessionMgr.isUser() || SessionMgr.isAuditor()) && this.type !== XAEnums.ServiceType.SERVICE_TAG.label) ? true : false,
+ isZoneAdministration : (SessionMgr.isSystemAdmin()|| SessionMgr.isUser() || SessionMgr.isAuditor()) ? true : false,
};
},
breadCrumbs :function(){
- if(this.type == "tag"){
- return [XALinks.get('TagBasedServiceManager')];
- }
- if(App.vZone && App.vZone.vZoneName && !_.isEmpty(App.vZone.vZoneName)){
- return [XALinks.get('ServiceManager', App.vZone.vZoneName)];
- }else{
- return [XALinks.get('ServiceManager')];
- }
- },
+ if(this.type == "tag"){
+ if(App.vZone && App.vZone.vZoneName && !_.isEmpty(App.vZone.vZoneName)){
+ return [XALinks.get('TagBasedServiceManager', App.vZone.vZoneName)];
+ }else{
+ return [XALinks.get('TagBasedServiceManager')];
+ }
+ }else{
+ if(App.vZone && App.vZone.vZoneName && !_.isEmpty(App.vZone.vZoneName)){
+ return [XALinks.get('ServiceManager', App.vZone.vZoneName)];
+ }else{
+ return [XALinks.get('ServiceManager')];
+ }
+ }
+ },
/** Layout sub regions */
regions: {},
@@ -332,19 +337,46 @@ define(function(require){
return zoneName === m.get('name');
});
}
- if (this.type !== XAEnums.ServiceType.SERVICE_TAG.label && selectedZone && !_.isEmpty(selectedZone)) {
+ if (selectedZone && !_.isEmpty(selectedZone)) {
var selectedZoneServices = [];
- _.each(selectedZone.get('services'), function(value, key) {
- var model = that.services.find(function(m) {
- return m.get('name') == key
+ if(this.type !== XAEnums.ServiceType.SERVICE_TAG.label){
+ _.each(selectedZone.get('services'), function(value, key) {
+ var model = that.services.find(function(m) {
+ return m.get('name') == key
+ })
+ if (model) {
+ selectedZoneServices.push(model);
+ }
+ });
+ return _.groupBy(selectedZoneServices, function(m) {
+ return m.get('type')
+ });
+ }else{
+ var tagAssociatedServices = _.filter(this.services.models, function(m, key){
+ return m.get('tagService') && !_.isEmpty(m.get('tagService'))
+ }),
+ zoneServiceList = _.keys (selectedZone.get('services')),
+ tagServiceGrp = _.groupBy(tagAssociatedServices, function(m){return m.get('tagService')});
+ //Compare tag associate service with zone services and return tag name that services match to zone services.
+ _.each(tagServiceGrp, function(m, key){
+ var hasTag = _.some(m, function(model){
+ return zoneServiceList.indexOf(model.get("name")) !== -1;
+ })
+ if (hasTag) {
+ var models = that.services.models.filter(function(obj){
+ return obj.get("name") === key
+ })
+ if (models.length > 0) {
+ selectedZoneServices = _.union(selectedZoneServices,models);
+ }
+ }
+ });
+ //Tag services listed by create time of that services
+ selectedZoneServices = _.sortBy(selectedZoneServices,function(service){return service.get('createTime')});
+ return _.groupBy(selectedZoneServices, function(obj){
+ return obj.get("type");
})
- if (model) {
- selectedZoneServices.push(model);
- }
- });
- return _.groupBy(selectedZoneServices, function(m) {
- return m.get('type')
- });
+ }
} else {
return that.services.groupBy("type")
}