This is an automated email from the ASF dual-hosted git repository.

mehul pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git

commit 7dac4e178b94c949da7c727fb2e749b50d933bb5
Author: Nitin Galave <[email protected]>
AuthorDate: Thu Apr 2 14:34:09 2020 +0530

    RANGER-2765 : Correct permissions are not getting loaded for entity-label 
in Atlas service
    
    Signed-off-by: Mehul Parikh <[email protected]>
---
 .../scripts/views/policies/PermissionList.js       | 41 ++++++++++++++--------
 .../scripts/views/policies/RangerPolicyForm.js     |  6 ++--
 2 files changed, 30 insertions(+), 17 deletions(-)

diff --git 
a/security-admin/src/main/webapp/scripts/views/policies/PermissionList.js 
b/security-admin/src/main/webapp/scripts/views/policies/PermissionList.js
index 4d9cd7d..cf5aff9 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/PermissionList.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/PermissionList.js
@@ -413,23 +413,36 @@ define(function(require) {
                return accessTypeByResource;
                },
                //if parent isValidLeaf is false than check child isvalidLeaf
-               childRscDef:function(resChild , rscName){
-                       var childResourcs = _.filter(resChild, function(m){ 
+               childRscDef:function(resChild , rscName, rscDef){
+                       var childResourcs = _.filter(resChild, function(m){
                                return m.parent == rscName 
                        });
-                       var rscDef , someVal;
-                       someVal = _.some(childResourcs,function(obj){
-//                             help of this we separate specified(selected) 
child resource from all childResourcs 
-                               var $html = 
$('[data-name="field-'+obj.name+'"]');
-                               if($html.length > 0){
-                                       rscName = obj.name;
-                                       rscDef = obj;
-                                       return true;
+                       if(!_.isEmpty(childResourcs)){
+                               var someVal;
+                               someVal = _.some(childResourcs,function(obj){
+                               //help of this we separate specified(selected) 
child resource from all childResourcs
+                                       var $html = 
$('[data-name="field-'+obj.name+'"]');
+                                       if($html.length > 0){
+                                               rscName = obj.name;
+                                               rscDef = obj;
+                                               return true;
+                                       }
+                               });
+                               if(!someVal){
+                                       rscDef = childResourcs[0];
+                                       rscName = childResourcs[0].name;
+                               }
+                       }
+                       // resource-node have isValidLeaf is true and resource 
have child node then render that child node permission
+                       if(rscDef && rscDef.isValidLeaf && 
!this.model.has('editMode')) {
+                               var hasChiled = _.filter(resChild, function(m){
+                                       return m.parent == rscName
+                               });
+                               if(!_.isEmpty(hasChiled)) {
+                                       rscDef = hasChiled[0];
+                                       rscName = hasChiled[0].name;
+                                       this.childRscDef(resChild , rscName, 
rscDef);
                                }
-                       });
-                       if(!someVal){
-                               rscDef = childResourcs[0];
-                               rscName = childResourcs[0].name;
                        }
                        return  ((rscDef.isValidLeaf) ? _.findWhere(resChild, 
{'name':rscName }) : this.childRscDef(resChild , rscName))
                },
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 e2bd6ed..f0b687f 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
@@ -487,9 +487,9 @@ define(function(require){
                                var resorceFieldName = _.pick(this.schema 
,this.selectedFields[key]);
                                
if(resorceFieldName[this.selectedFields[key]].sameLevelOpts && 
_.contains(resorceFieldName[this.selectedFields[key]].sameLevelOpts , 'none') 
                                                && 
formDiv.find(selector).find('select').val() != 'none' && 
onChangeOfSameLevelType){
-//                                     change trigger and set value to none
-                                       
$(rsrc).find('select').val("none").trigger('change',"onChangeResources");
-                               }
+                                               //change trigger and set value 
to selected node
+                                                       
$(rsrc).find('select').val($(rsrc).find('select 
option:nth-child(1)').text()).trigger('change',"onChangeResources");
+                               }
                        }else{
                            if($(rsrc).find('select').val() == 'none'){
                                        
$(rsrc).find('input[data-js="resource"]').select2('disable');

Reply via email to