You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2015/10/01 23:34:24 UTC
incubator-ranger git commit: RANGER-670 : Policy UI to support input
of a single value for resources
Repository: incubator-ranger
Updated Branches:
refs/heads/tag-policy a9b153d3a -> 89b7ba227
RANGER-670 : Policy UI to support input of a single value for resources
Signed-off-by: Madhan Neethiraj <ma...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/89b7ba22
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/89b7ba22
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/89b7ba22
Branch: refs/heads/tag-policy
Commit: 89b7ba227ae27f3c78ce86e4e4b268beaeba22a0
Parents: a9b153d
Author: Gautam Borad <gb...@gmail.com>
Authored: Thu Oct 1 17:02:26 2015 +0530
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Thu Oct 1 14:15:11 2015 -0700
----------------------------------------------------------------------
.../service-defs/ranger-servicedef-tag.json | 2 +-
.../scripts/models/BackboneFormDataType.js | 67 ++++++++++----------
.../src/main/webapp/scripts/utils/XAUtils.js | 10 +++
.../scripts/views/policies/RangerPolicyForm.js | 32 +++++++---
4 files changed, 69 insertions(+), 42 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/89b7ba22/agents-common/src/main/resources/service-defs/ranger-servicedef-tag.json
----------------------------------------------------------------------
diff --git a/agents-common/src/main/resources/service-defs/ranger-servicedef-tag.json b/agents-common/src/main/resources/service-defs/ranger-servicedef-tag.json
index 30d1b20..bb9b98d 100644
--- a/agents-common/src/main/resources/service-defs/ranger-servicedef-tag.json
+++ b/agents-common/src/main/resources/service-defs/ranger-servicedef-tag.json
@@ -25,7 +25,7 @@
"matcherOptions": { "wildCard":false, "ignoreCase":false },
"validationRegEx":"",
"validationMessage": "",
- "uiHint":"",
+ "uiHint":"{ \"singleValue\":true }",
"label": "TAG",
"description": "TAG"
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/89b7ba22/security-admin/src/main/webapp/scripts/models/BackboneFormDataType.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/models/BackboneFormDataType.js b/security-admin/src/main/webapp/scripts/models/BackboneFormDataType.js
index 6f410cf..a776f69 100644
--- a/security-admin/src/main/webapp/scripts/models/BackboneFormDataType.js
+++ b/security-admin/src/main/webapp/scripts/models/BackboneFormDataType.js
@@ -21,6 +21,7 @@ define(function(require) {
'use strict';
var Backbone = require('backbone');
+ var XAUtils = require('utils/XAUtils');
var FormDataType = Backbone.Model.extend({
type : [ 'string', 'boolean', 'int' ],
@@ -54,40 +55,42 @@ define(function(require) {
if($.inArray(v.level, samelevelFieldCreated) >= 0){
return;
}
- if(v.excludesSupported || v.recursiveSupported || v.lookupSupported){
- var resourceOpts = {};
- formObj.type = 'Resource';
- formObj['excludeSupport']= v.excludesSupported;
- formObj['recursiveSupport'] = v.recursiveSupported;
- formObj.name = v.name;
+ if(! XAUtils.isSinglevValueInput(v) ){
+ if(v.excludesSupported || v.recursiveSupported || v.lookupSupported ){
+ var resourceOpts = {};
+ formObj.type = 'Resource';
+ formObj['excludeSupport']= v.excludesSupported;
+ formObj['recursiveSupport'] = v.recursiveSupported;
+ formObj.name = v.name;
// formObj.level = v.level;
- //checkParentHideShow field
- formObj.fieldAttrs = { 'data-name' : 'field-'+v.name, 'parent' : v.parent };
- formObj['resourceOpts'] = {'data-placeholder': v.label };
-
- if(!_.isUndefined(v.lookupSupported) && v.lookupSupported ){
- var opts = {
- 'type' : v.name,
- 'lookupURL' : "service/plugins/services/lookupResource/"+form.rangerService.get('name')
- };
- if(_.has(v, 'validationRegEx') && !_.isEmpty(v.validationRegEx)){
- opts['regExpValidation'] = {'type': 'regexp', 'regexp':new RegExp(v.validationRegEx), 'message' : v.validationMessage};
+ //checkParentHideShow field
+ formObj.fieldAttrs = { 'data-name' : 'field-'+v.name, 'parent' : v.parent };
+ formObj['resourceOpts'] = {'data-placeholder': v.label };
+
+ if(!_.isUndefined(v.lookupSupported) && v.lookupSupported ){
+ var opts = {
+ 'type' : v.name,
+ 'lookupURL' : "service/plugins/services/lookupResource/"+form.rangerService.get('name')
+ };
+ if(_.has(v, 'validationRegEx') && !_.isEmpty(v.validationRegEx)){
+ opts['regExpValidation'] = {'type': 'regexp', 'regexp':new RegExp(v.validationRegEx), 'message' : v.validationMessage};
+ }
+ resourceOpts['select2Opts'] = form.getPlugginAttr(true, opts);
+ formObj['resourceOpts'] = resourceOpts;
+ }
+ //same level resources check
+ var optionsAttrs = _.filter(config,function(field){ if(field.level == v.level) return field;})
+ if(optionsAttrs.length > 1){
+ var optionsTitle = _.map(optionsAttrs,function(field){ return field.name;});
+ formObj['sameLevelOpts'] = optionsTitle;
+ samelevelFieldCreated.push(v.level);
+ fieldName = 'sameLevel'+v.level;
+ formObj['title'] = '';
+ formObj['resourcesAtSameLevel'] = true;
+
+ // formView is used to listen form events
+ formObj['formView'] = form;
}
- resourceOpts['select2Opts'] = form.getPlugginAttr(true, opts);
- formObj['resourceOpts'] = resourceOpts;
- }
- //same level resources check
- var optionsAttrs = _.filter(config,function(field){ if(field.level == v.level) return field;})
- if(optionsAttrs.length > 1){
- var optionsTitle = _.map(optionsAttrs,function(field){ return field.name;});
- formObj['sameLevelOpts'] = optionsTitle;
- samelevelFieldCreated.push(v.level);
- fieldName = 'sameLevel'+v.level;
- formObj['title'] = '';
- formObj['resourcesAtSameLevel'] = true;
-
- // formView is used to listen form events
- formObj['formView'] = form;
}
}else{
formObj.type = 'Text';
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/89b7ba22/security-admin/src/main/webapp/scripts/utils/XAUtils.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/utils/XAUtils.js b/security-admin/src/main/webapp/scripts/utils/XAUtils.js
index 4265e1e..8cb90e3 100644
--- a/security-admin/src/main/webapp/scripts/utils/XAUtils.js
+++ b/security-admin/src/main/webapp/scripts/utils/XAUtils.js
@@ -1128,6 +1128,16 @@ define(function(require) {
return XAUtils.notifyError('Error', erroMsg);
});
};
+ XAUtils.isSinglevValueInput = function(obj){
+ //single value support
+ var singleValue = false;
+ if(!_.isUndefined(obj.uiHint) && !_.isEmpty(obj.uiHint)){
+ var UIHint = JSON.parse(obj.uiHint);
+ if(!_.isUndefined(UIHint.singleValue))
+ singleValue = UIHint.singleValue;
+ }
+ return singleValue;
+ };
return XAUtils;
});
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/89b7ba22/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
----------------------------------------------------------------------
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 5ef56f8..f32ffbc 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
@@ -182,7 +182,13 @@ define(function(require){
//parentShowHide
this.selectedResourceTypes['sameLevel'+resourceDef.level]=key;
}else{
- this.model.set(resourceDef.name, obj)
+ //single value support
+ if(! XAUtil.isSinglevValueInput(resourceDef) ){
+ this.model.set(resourceDef.name, obj)
+ }else{
+ //single value resource
+ this.model.set(resourceDef.name, obj.values)
+ }
}
},this)
}
@@ -305,15 +311,23 @@ define(function(require){
_.each(this.rangerServiceDefModel.get('resources'),function(obj){
if(!_.isNull(obj)){
var tmpObj = that.model.get(obj.name);
- if(!_.isUndefined(tmpObj) && _.isObject(tmpObj)){
- var rPolicyResource = new RangerPolicyResource();
- rPolicyResource.set('values',tmpObj.resource.split(','));
- if(!_.isUndefined(tmpObj.isRecursive)){
- rPolicyResource.set('isRecursive', tmpObj.isRecursive)
- }
- if(!_.isUndefined(tmpObj.isExcludes)){
- rPolicyResource.set('isExcludes', tmpObj.isExcludes)
+ var rPolicyResource = new RangerPolicyResource();
+ //single value support
+ if(! XAUtil.isSinglevValueInput(obj) ){
+ if(!_.isUndefined(tmpObj) && _.isObject(tmpObj)){
+ rPolicyResource.set('values',tmpObj.resource.split(','));
+ if(!_.isUndefined(tmpObj.isRecursive)){
+ rPolicyResource.set('isRecursive', tmpObj.isRecursive)
+ }
+ if(!_.isUndefined(tmpObj.isExcludes)){
+ rPolicyResource.set('isExcludes', tmpObj.isExcludes)
+ }
+ resources[obj.name] = rPolicyResource;
+ that.model.unset(obj.name);
}
+ }else{
+ //For single value resource
+ rPolicyResource.set('values',tmpObj.split(','));
resources[obj.name] = rPolicyResource;
that.model.unset(obj.name);
}