Skip to content

Commit

Permalink
RANGER-3804: Update policy UI to support multiple resource-sets: fix …
Browse files Browse the repository at this point in the history
…build issue - #2

Signed-off-by: Madhan Neethiraj <[email protected]>
  • Loading branch information
ni3galave authored and mneethiraj committed Oct 3, 2022
1 parent 495d720 commit 2b4635d
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -278,20 +278,26 @@ define(function(require) {
}
}).on('select2-focus', XAUtil.select2Focus);
},
renderPerms :function({changeType, value, resourceName, event, resourceItemIndex, action}){
renderPerms :function(options){
var changeType = options.changeType, value = options.value, resourceName = options.resourceName, event = options.event,
resourceItemIndex = options.resourceItemIndex, action = options.action;
var that = this , accessTypeByResource = this.accessTypes;
if(action === 'removed'){
var removedItemIndex = _.findIndex(this.storeResourceRef, function(a){ return a.resourceItemIndex == resourceItemIndex;});
if(removedItemIndex >= 0){
this.storeResourceRef.splice(this.storeResourceRef.findIndex(item => item.resourceItemIndex === resourceItemIndex), 1);
_.each(this.storeResourceRef, (obj, index) => {
this.storeResourceRef.splice(this.storeResourceRef.findIndex(function (item) {
return item.resourceItemIndex === resourceItemIndex;
}) , 1);
_.each(this.storeResourceRef, function (obj, index) {
if(index >= removedItemIndex){
obj.resourceItemIndex = obj.resourceItemIndex - 1;
}
});
}
} else if (changeType || action== 'added') {
var resourceChangeObj = { resourceItemIndex, changeType, value, resourceName, event };
var resourceChangeObj = {
resourceItemIndex : resourceItemIndex, changeType : changeType, value : value, resourceName : resourceName, event :event
};
var found = _.findWhere(this.storeResourceRef, { resourceItemIndex: resourceItemIndex });
if(found && changeType){
_.extend(_.findWhere(this.storeResourceRef, { resourceItemIndex: resourceItemIndex }), resourceChangeObj );
Expand All @@ -302,9 +308,9 @@ define(function(require) {
//get permissions by resource only for access policy
accessTypeByResource = (this.storeResourceRef.length && (changeType || action === 'removed' || action === 'permissionItemAdd'))
? [] : accessTypeByResource;
_.each(this.storeResourceRef, (obj) => {
_.each(this.storeResourceRef, function (obj) {
accessTypeByResource = _.union(accessTypeByResource, this.getAccessPermissionForSelectedResource(obj.changeType, obj.value, obj.resourceName, obj.event));
});
}, this);
//reset permissions on resource change
this.permsIds = _.pluck(this.model.get('accesses'), 'type');
if(this.permsIds.length > 0 && ( !_.isUndefined(changeType) && !_.isUndefined(resourceName) || action === 'removed') ){
Expand Down Expand Up @@ -1035,15 +1041,15 @@ define(function(require) {
var resourceNames = Object.keys(obj);
var resourceName = resourceNames[0];
if(resourceName.length > 1){
var resourceByDef = resourceDefByPolicyType.filter((resource) => resourceNames.includes(resource.name) );
var resourceByDef = resourceDefByPolicyType.filter(function (resource) { return resourceNames.includes(resource.name) });
var maxLevel = Math.max.apply(null, resourceByDef.map(function(o) { return o.level; }));
var resource = resourceByDef.find(function(o) { return o.level == maxLevel; });
resourceName = resource.name;
}
this.storeResourceRef.push({'changeType': 'resourceType','resourceName': resourceName, value: resourceName, resourceItemIndex: index });
}, this);
} else {
let getChildResource = (resource) => {
var getChildResource = function (resource) {
var childResource = _.findWhere(resourceDefByPolicyType, {parent : resource.name });
if(childResource){
return getChildResource(childResource);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -406,15 +406,15 @@ define(function(require){
var additionResources = [];
//set sameLevel fieldAttr value with resource name
this.formInputResourceList.each(function(model) {
let resource = {}
var resource = {}
_.each(model.attributes, function(val, key) {
var isSameLevelResource = key.indexOf("sameLevel") >= 0, isResource = !['policyType', 'resourceForm', 'none', 'resources','id'].includes(key);
if ((isSameLevelResource || isResource) && !_.isNull(val)) {
var resourceName = isSameLevelResource ? val.resourceType : key;
if(resourceName && resourceName != 'none'){
model.set(resourceName, val);
resource[resourceName] = {
values: _.isObject(val.resource[0]) ? _.pluck(val.resource, 'text') : val.resource
values: val.resource && val.resource.length && _.isObject(val.resource[0]) ? _.pluck(val.resource, 'text') : val.resource
};
if(!_.isUndefined(val.isRecursive)){
resource[resourceName]['isRecursive'] = val.isRecursive;
Expand Down Expand Up @@ -629,6 +629,7 @@ define(function(require){
validatePolicyResource : function (){
var errors = null;
_.some(this.formInputResourceList.models, function(model) {
model.attributes = Object.assign({}, _.pick(model.attributes, 'id','resourceForm', 'policyType'));
errors = model.get('resourceForm').commit({validate : false});
return ! _.isEmpty(errors);
});
Expand Down

0 comments on commit 2b4635d

Please sign in to comment.