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 <[email protected]>
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")
}