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

dineshkumar 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 39479100f RANGER-4347-User name with comma split in old Ranger admin 
UI.
39479100f is described below

commit 39479100fdaafaf6360e4648b8048280669116eb
Author: Dhaval.Rajpara <[email protected]>
AuthorDate: Wed Nov 22 10:34:06 2023 +0530

    RANGER-4347-User name with comma split in old Ranger admin UI.
    
    Signed-off-by: Dineshkumar Yadav <[email protected]>
---
 .../main/webapp/libs/fsOverrides/BBFOverrides.js   | 21 ++++++-----
 .../src/main/webapp/scripts/models/RangerZone.js   | 20 ++++++-----
 .../src/main/webapp/scripts/utils/XAUtils.js       | 11 ++++--
 .../views/permissions/ModulePermissionForm.js      |  4 +--
 .../scripts/views/policies/RangerPolicyForm.js     |  2 +-
 .../scripts/views/reports/UserAccessLayout.js      | 11 +++---
 .../scripts/views/security_zone/ZoneCreate.js      |  5 ---
 .../scripts/views/security_zone/ZoneCreateForm.js  | 24 +++++++++++++
 .../scripts/views/service/AuditFilterConfig.js     | 42 ++++++++++++++++++++--
 .../scripts/views/users/AddUsersOrGroupsList.js    |  6 ++--
 security-admin/src/main/webapp/styles/xa.css       | 24 +++++++++++--
 .../permissions/ModulePermissionForm_tmpl.html     |  6 ++--
 .../security_zone/ZoneCreateForm_tmpl.html         |  2 +-
 .../main/webapp/templates/users/RoleForm_tmpl.html |  6 ++--
 14 files changed, 135 insertions(+), 49 deletions(-)

diff --git a/security-admin/src/main/webapp/libs/fsOverrides/BBFOverrides.js 
b/security-admin/src/main/webapp/libs/fsOverrides/BBFOverrides.js
index 469f4aa9c..5b4901d5d 100644
--- a/security-admin/src/main/webapp/libs/fsOverrides/BBFOverrides.js
+++ b/security-admin/src/main/webapp/libs/fsOverrides/BBFOverrides.js
@@ -137,15 +137,18 @@ define(['jquery', 'underscore', 'backbone', 
'backbone-forms', 'backbone-forms.li
 
                        return this;
                },
-               getValue: function() {
-                   return this.$el.val();
-                 },
-
-                 setValue: function(value) {
-                   this.$el.val(value);
-                 }
-
-
+               getValue : function(val ,name){
+                       var arr = [];
+                       if (_.isArray(this.$el.select2("data"))){
+                               this.$el.select2("data").map(function(m){
+                                       arr.push(m.text)
+                                       return m.text
+                               })
+                       } else {
+                               return this.$el.val();
+                       }
+                       return arr;
+               }
        });
 
        /**
diff --git a/security-admin/src/main/webapp/scripts/models/RangerZone.js 
b/security-admin/src/main/webapp/scripts/models/RangerZone.js
index 08d118132..27b9e9487 100644
--- a/security-admin/src/main/webapp/scripts/models/RangerZone.js
+++ b/security-admin/src/main/webapp/scripts/models/RangerZone.js
@@ -145,14 +145,13 @@ define(function(require) {
                         ]
                     },
                 })
-
             },
-            getPluginAttr: function(typeGroup, $select) {
+            getPluginAttr: function(typeGroup, selectVal) {
                 var that = this,
-                    tags = [],
+                    tags = [],  selectedVals = [],
                     placeholder = (typeGroup) ? 'Select Group' : 'Select User',
                     searchUrl = (typeGroup) ? "service/xusers/lookup/groups" : 
"service/xusers/lookup/users";
-                _.each(this.get($select), function(name) {
+                _.each(this.get(selectVal), function(name) {
                     tags.push({
                         'id': _.escape(name),
                         'text': _.escape(name)
@@ -161,9 +160,8 @@ define(function(require) {
                 return {
                     closeOnSelect: true,
                     placeholder: placeholder,
-                    // width: '500px',
-                    tokenSeparators: [",", " "],
-                    tags: true,
+                    separator:"@-undefined-@",
+                    multiple: true,
                     initSelection: function(element, callback) {
                         callback(tags);
                     },
@@ -178,9 +176,8 @@ define(function(require) {
                         },
                         results: function(data, page) {
                             var results = [],
-                                selectedVals = [];
                             //Get selected values of groups/users dropdown
-                            // selectedVals = 
that.getSelectedValues(typeGroup);
+                            selectedVals = 
that.getSelectedValues(data.vXStrings, selectVal);
                             if (data.totalCount != "0") {
                                 if (typeGroup) {
                                     results = data.vXStrings.map(function(m) {
@@ -229,6 +226,11 @@ define(function(require) {
 
                 }
             },
+            getSelectedValues : function(list, fieldNameKey){
+                if(!_.isEmpty(this.attributes[fieldNameKey])){
+                    return this.attributes[fieldNameKey]
+                }
+            },
             toString : function(){
                 return this.get('name');
             },
diff --git a/security-admin/src/main/webapp/scripts/utils/XAUtils.js 
b/security-admin/src/main/webapp/scripts/utils/XAUtils.js
index cf4afe4c4..fc3ff5b5d 100644
--- a/security-admin/src/main/webapp/scripts/utils/XAUtils.js
+++ b/security-admin/src/main/webapp/scripts/utils/XAUtils.js
@@ -1673,6 +1673,7 @@ define(function(require) {
         return {
             closeOnSelect : true,
             placeholder   : placeholder,
+            separator : "@-undefined-@",
             tags : true,
             width : width,
             initSelection: function(element, callback) {
@@ -1725,8 +1726,14 @@ define(function(require) {
                         //remove selected values
                         if(that.collection && that.collection.models){
                             _.filter(that.collection.models, function(model){
-                                if(model && !_.isUndefined(model.get('name'))){
-                                    selectedVals.push(model.get('name'));
+                                if(auditFilter !== "auditFilter"){
+                                    if(model && 
!_.isUndefined(model.get('name'))){
+                                        selectedVals.push(model.get('name'));
+                                    }
+                                } else {
+                                    if(model && 
!_.isUndefined(model.get($select))){
+                                        selectedVals = model.get($select);
+                                    }
                                 }
                             })
                         }
diff --git 
a/security-admin/src/main/webapp/scripts/views/permissions/ModulePermissionForm.js
 
b/security-admin/src/main/webapp/scripts/views/permissions/ModulePermissionForm.js
index ef3e8f67f..a1de45b4c 100644
--- 
a/security-admin/src/main/webapp/scripts/views/permissions/ModulePermissionForm.js
+++ 
b/security-admin/src/main/webapp/scripts/views/permissions/ModulePermissionForm.js
@@ -95,13 +95,13 @@ define(function(require) {
                                },
                                selectGroups : {
                                        type : 'Select2Remote',
-                                       editorAttrs  : {'placeholder' :'Select 
Group','tokenSeparators': [",", " "],multiple:true},
+                                       editorAttrs  : {'placeholder' :'Select 
Group',multiple:true},
                                         pluginAttr: 
this.getPlugginAttr(true,{'lookupURL':"service/xusers/groups",'idKey':'groupId','textKey':'groupName'}),
                                        title : 
localization.tt('lbl.selectGroup')+' *'
                                },
                                selectUsers : {
                                        type : 'Select2Remote',
-                                       editorAttrs  : {'placeholder' :'Select 
User','tokenSeparators': [",", " "],multiple:true},
+                                       editorAttrs  : {'placeholder' :'Select 
User',multiple:true},
                                         pluginAttr: 
this.getPlugginAttr(true,{'lookupURL':"service/xusers/users",'idKey':'userId','textKey':'userName'}),
                                        title : 
localization.tt('lbl.selectUser')+' *',
                                },
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 394b161ad..5f6d9ac01 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
@@ -454,7 +454,7 @@ define(function(require){
                        }
 
             if(this.model.has('policyLabels')){
-                var policyLabel = _.isEmpty(this.model.get('policyLabels')) ? 
[] : this.model.get('policyLabels').split(',');
+                var policyLabel = _.isEmpty(this.model.get('policyLabels')) ? 
[] : this.model.get('policyLabels');
                 this.model.set('policyLabels', policyLabel);
             }
             if(!_.isUndefined(App.vZone) && App.vZone.vZoneName){
diff --git 
a/security-admin/src/main/webapp/scripts/views/reports/UserAccessLayout.js 
b/security-admin/src/main/webapp/scripts/views/reports/UserAccessLayout.js
index b7bae7b1b..d134bdbe6 100644
--- a/security-admin/src/main/webapp/scripts/views/reports/UserAccessLayout.js
+++ b/security-admin/src/main/webapp/scripts/views/reports/UserAccessLayout.js
@@ -814,7 +814,6 @@ define(function(require) {'use strict';
                                closeOnSelect : true,
                                placeholder : 'Select Group',
                                maximumSelectionSize : 1,
-                               tokenSeparators: [",", " "],
                                allowClear: true,
                                // tags : this.groupArr,
                                initSelection : function (element, callback) {
@@ -831,7 +830,7 @@ define(function(require) {'use strict';
                                        results: function (data, page) { 
                                                var results = [],selectedVals = 
[];
                                                
if(!_.isEmpty(that.ui.userGroup.val()))
-                                                       selectedVals = 
that.ui.userGroup.val().split(',');
+                                                       
selectedVals.push(that.ui.userGroup.val());
                                                if(data.totalCount != "0"){
                                                        results = 
data.vXStrings.map(function(m){       return {id : m.value, text: 
_.escape(m.value) };        });
                                                        
if(!_.isEmpty(selectedVals))
@@ -874,8 +873,8 @@ define(function(require) {'use strict';
                                        },
                                        results: function (data, page) { 
                                                var results = 
[],selectedVals=[];
-                                               
if(!_.isEmpty(that.ui.userName.select2('val')))
-                                                       selectedVals = 
that.ui.userName.select2('val');
+                                               
if(!_.isEmpty(that.ui.userName.val()))
+                                                       
selectedVals.push(that.ui.userName.val());
                                                if(data.totalCount != "0"){
                                                        results = 
data.vXStrings.map(function(m){       return {id : m.value, text: 
_.escape(m.value) };        });
                                                        
if(!_.isEmpty(selectedVals))
@@ -920,8 +919,8 @@ define(function(require) {'use strict';
                                        },
                                        results: function (data, page) {
                                                var results = 
[],selectedVals=[];
-                                               
if(!_.isEmpty(that.ui.roleName.select2('val')))
-                                                       selectedVals = 
that.ui.roleName.select2('val');
+                                               
if(!_.isEmpty(that.ui.roleName.val()))
+                                                       
selectedVals.push(that.ui.roleName.val());
                                                if(data.totalCount != "0"){
                                                        results = 
data.roles.map(function(m){   return {id : _.escape(m.name), text: 
_.escape(m.name) };});
                                                        
if(!_.isEmpty(selectedVals))
diff --git 
a/security-admin/src/main/webapp/scripts/views/security_zone/ZoneCreate.js 
b/security-admin/src/main/webapp/scripts/views/security_zone/ZoneCreate.js
index a4885e379..a7fd76a5a 100644
--- a/security-admin/src/main/webapp/scripts/views/security_zone/ZoneCreate.js
+++ b/security-admin/src/main/webapp/scripts/views/security_zone/ZoneCreate.js
@@ -161,11 +161,6 @@ define(function(require) {
                     return
                 }
                 this.model.set('services', services);
-                this.model.set('adminUsers', 
this.model.get('adminUsers').split(','));
-                this.model.set('adminUserGroups', 
this.model.get('adminUserGroups').split(','));
-                this.model.set('auditUsers', 
this.model.get('auditUsers').split(','));
-                this.model.set('auditUserGroups', 
this.model.get('auditUserGroups').split(','));
-                this.model.set('tagServices', 
this.model.get('tagServices').split(','));
                 this.model.unset('policyType');
                 XAUtil.blockUI();
                 this.model.save({}, {
diff --git 
a/security-admin/src/main/webapp/scripts/views/security_zone/ZoneCreateForm.js 
b/security-admin/src/main/webapp/scripts/views/security_zone/ZoneCreateForm.js
index cbfb8da2d..45f7ef184 100644
--- 
a/security-admin/src/main/webapp/scripts/views/security_zone/ZoneCreateForm.js
+++ 
b/security-admin/src/main/webapp/scripts/views/security_zone/ZoneCreateForm.js
@@ -69,6 +69,11 @@ define(function(require) {
             /** ui events hash */
             events: function() {
                 var events = {};
+                events['change ' + this.ui.adminUsers]      = 
'onAddUsersGroups';
+                events['change ' + this.ui.adminUserGroups]      = 
'onAddUsersGroups';
+                events['change ' + this.ui.auditUsers]      = 
'onAddUsersGroups';
+                events['change ' + this.ui.auditUserGroups]      = 
'onAddUsersGroups';
+
                 return events;
             },
 
@@ -209,6 +214,25 @@ define(function(require) {
                 })
             },
 
+            onAddUsersGroups : function(e, val){
+                console.log(e)
+                var initialVal = [];
+                if(e && e.added){
+                    
if(_.isUndefined(this.model.get(e.currentTarget.dataset.id))){
+                       initialVal.push(e.added.text);
+                       this.model.set(e.currentTarget.dataset.id , initialVal)
+
+                    } else {
+                        
this.model.get(e.currentTarget.dataset.id).push(e.added.text);
+                    }
+                }
+                if(e && e.removed){
+                    var removeVal = 
_.without(this.model.get(e.currentTarget.dataset.id), e.removed.text);
+                    this.model.set(e.currentTarget.dataset.id , removeVal);
+                }
+
+            },
+
             zoneTable: function() {
                 var that = this;
                 this.$el.find('[data-id="zoneTableLayout"]').html(new 
XATableLayout({
diff --git 
a/security-admin/src/main/webapp/scripts/views/service/AuditFilterConfig.js 
b/security-admin/src/main/webapp/scripts/views/service/AuditFilterConfig.js
index c518cb2de..20a85916e 100644
--- a/security-admin/src/main/webapp/scripts/views/service/AuditFilterConfig.js
+++ b/security-admin/src/main/webapp/scripts/views/service/AuditFilterConfig.js
@@ -138,15 +138,51 @@ define(function(require) {
         },
 
         evSelectUsers : function (e) {
-            this.model.set('users', e.val)
+            if(!_.isUndefined(e.added)){
+                var Val = [];
+                Val.push(e.added.text)
+                
if(_.isUndefined(this.model.get(e.currentTarget.dataset.type))){
+                    this.model.set('users', Val)
+                } else {
+                    
this.model.get(e.currentTarget.dataset.type).push(e.added.text)
+                }
+            }
+            if(!_.isUndefined(e.removed)){
+                var removeVal = 
_.without(this.model.get(e.currentTarget.dataset.type), e.removed.text);
+                this.model.set(e.currentTarget.dataset.type , removeVal);
+            }
         },
 
         evSelectGroup : function (e) {
-            this.model.set('groups', e.val)
+            if(!_.isUndefined(e.added)){
+                var Val = [];
+                Val.push(e.added.text)
+                
if(_.isUndefined(this.model.get(e.currentTarget.dataset.type))){
+                    this.model.set('groups', Val);
+                } else {
+                    
this.model.get(e.currentTarget.dataset.type).push(e.added.text);
+                }
+            }
+            if(!_.isUndefined(e.removed)){
+                var removeVal = 
_.without(this.model.get(e.currentTarget.dataset.type), e.removed.text);
+                this.model.set(e.currentTarget.dataset.type , removeVal);
+            }
         },
 
         evSelectRoles : function (e) {
-            this.model.set('roles', e.val)
+            if(!_.isUndefined(e.added)){
+                var Val = [];
+                Val.push(e.added.text)
+                
if(_.isUndefined(this.model.get(e.currentTarget.dataset.type))){
+                    this.model.set('roles', Val)
+                } else {
+                    
this.model.get(e.currentTarget.dataset.type).push(e.added.text)
+                }
+            }
+            if(!_.isUndefined(e.removed)){
+                var removeVal = 
_.without(this.model.get(e.currentTarget.dataset.type), e.removed.text);
+                this.model.set(e.currentTarget.dataset.type , removeVal);
+            }
         },
 
         evOparations : function (e) {
diff --git 
a/security-admin/src/main/webapp/scripts/views/users/AddUsersOrGroupsList.js 
b/security-admin/src/main/webapp/scripts/views/users/AddUsersOrGroupsList.js
index 26a62e67d..b933132a2 100644
--- a/security-admin/src/main/webapp/scripts/views/users/AddUsersOrGroupsList.js
+++ b/security-admin/src/main/webapp/scripts/views/users/AddUsersOrGroupsList.js
@@ -128,7 +128,7 @@ define(function(require) {
                 this.$el.find('[data-id="userGroupsTable"]').html('<tr 
data-name="'+this.fieldName+'"><td colspan="3"> No '
                     +this.fieldName+' found</td></tr>');
             }
-            
this.ui.selectUsersOrGroups.select2(XAUtil.getUsersGroupsList(this.fieldName, 
this, '300px'));
+            
this.ui.selectUsersOrGroups.select2(XAUtil.getUsersGroupsList(this.fieldName, 
this, '500px'));
             this.ui.selectUsersOrGroups.attr("data-name", 
this.fieldName+"Select");
             this.ui.addUserGroupRoleBtn.attr("data-name", 
this.fieldName+"AddBtn")
         },
@@ -143,8 +143,8 @@ define(function(require) {
                 return
             } else {
                 this.$el.find('[data-name='+this.fieldName+']').hide();
-                _.each(this.ui.selectUsersOrGroups.val().split(','), 
function(name){
-                    that.collection.add(new Backbone.Model({'name' : name , 
'isAdmin' : false}));
+                _.each(this.ui.selectUsersOrGroups.select2("data"), 
function(name){
+                    that.collection.add(new Backbone.Model({'name' : name.text 
, 'isAdmin' : false}));
                 });
                 this.ui.selectUsersOrGroups.select2('data',[]);
             }
diff --git a/security-admin/src/main/webapp/styles/xa.css 
b/security-admin/src/main/webapp/styles/xa.css
index f5544cca0..de8101174 100644
--- a/security-admin/src/main/webapp/styles/xa.css
+++ b/security-admin/src/main/webapp/styles/xa.css
@@ -2498,6 +2498,27 @@ textarea:read-only{
 } */
 
 /* Security Zone */
+.zone-administration .form-control{
+  height: auto !important;
+}
+.role-form .form-control {
+  height: auto !important;
+}
+.permissions-table .form-control {
+  height: auto !important;
+}
+.groups-permission {
+  min-width: 480px;
+}
+.groups-permission .select2-container{
+  width: 100%;
+}
+.users-permission {
+  min-width: 480px;
+}
+.users-permission .select2-container{
+  width: 100%;
+}
 .security-panel {
   background-color: #fff;
   border-radius: 3px;
@@ -4147,8 +4168,7 @@ ul.tagit{
 }
 
 .addbtngroup .select2-container{
-  width: 300px !important;
-  display: inline-block;
+ display: inline-block;
 }
 
 .dropdown-menu a:hover{
diff --git 
a/security-admin/src/main/webapp/templates/permissions/ModulePermissionForm_tmpl.html
 
b/security-admin/src/main/webapp/templates/permissions/ModulePermissionForm_tmpl.html
index 6aaaa8737..7fe3d5970 100644
--- 
a/security-admin/src/main/webapp/templates/permissions/ModulePermissionForm_tmpl.html
+++ 
b/security-admin/src/main/webapp/templates/permissions/ModulePermissionForm_tmpl.html
@@ -28,7 +28,7 @@
        </fieldset>
        <fieldset>
                <p class="formHeader">User and Group Permissions:</p>
-               <div class="row">
+               <div class="row permissions-table">
                        <label class="col-sm-2 text-right" style="font-weight: 
normal;">{{tt 'lbl.permissions'}}</label>
                        <div class="col-sm-10">
                                <table class="table-permission table-condensed 
visible-border">
@@ -42,11 +42,11 @@
                                        <tbody class="js-formInput">
                                                <tr>
                                                        <td>
-                                                                <div 
data-editors="selectGroups" class="list-inline inline-block" 
style="vertical-align: middle;"></div>
+                                                                <div 
data-editors="selectGroups" class="list-inline inline-block groups-permission" 
style="vertical-align: middle;"></div>
                                                                 <button 
data-id="addGroupBtn" class="fa fa-plus btn btn-default btn-sm" title="Add 
Group" style="padding: 6px 12px;"></button>
                                                        </td>
                                                        <td>
-                                                                <div 
data-editors="selectUsers" class="list-inline inline-block" 
style="vertical-align: middle;"></div>
+                                                                <div 
data-editors="selectUsers" class="list-inline inline-block users-permission" 
style="vertical-align: middle;"></div>
                                                                 <button 
data-id="addUserBtn" class="fa fa-plus btn btn-default btn-sm" title="Add User" 
style="padding: 6px 12px;"></button>
 
                                                        </td>
diff --git 
a/security-admin/src/main/webapp/templates/security_zone/ZoneCreateForm_tmpl.html
 
b/security-admin/src/main/webapp/templates/security_zone/ZoneCreateForm_tmpl.html
index 2ddfc3927..36d7bd2dc 100644
--- 
a/security-admin/src/main/webapp/templates/security_zone/ZoneCreateForm_tmpl.html
+++ 
b/security-admin/src/main/webapp/templates/security_zone/ZoneCreateForm_tmpl.html
@@ -33,7 +33,7 @@
             </div>
         </div>
 
-        <div class="form-horizontal">
+        <div class="form-horizontal zone-administration">
             <p class="formHeader">Zone Administration:</p>
             <div class="form-group row" data-id="adminUsers">
                 <label class="control-label col-sm-3 col-form-label">Admin 
Users</label>
diff --git a/security-admin/src/main/webapp/templates/users/RoleForm_tmpl.html 
b/security-admin/src/main/webapp/templates/users/RoleForm_tmpl.html
index 7686c3fd1..d924ca686 100644
--- a/security-admin/src/main/webapp/templates/users/RoleForm_tmpl.html
+++ b/security-admin/src/main/webapp/templates/users/RoleForm_tmpl.html
@@ -17,7 +17,7 @@
 <form class="form-horizontal">
     <div class="" data-fields="name"></div>
     <div class="" data-fields="description"></div>
-    <div class="form-horizontal">
+    <div class="form-horizontal role-form">
         <p class="formHeader">Users:</p>
         <div class="form-group">
             <div class="col-md-8">
@@ -25,7 +25,7 @@
             </div>
         </div>
     </div>
-    <div class="form-horizontal">
+    <div class="form-horizontal role-form">
         <p class="formHeader">Groups:</p>
         <div class="form-group">
             <div class="col-md-8">
@@ -33,7 +33,7 @@
             </div>
         </div>
     </div>
-    <div class="form-horizontal">
+    <div class="form-horizontal role-form">
         <p class="formHeader">Roles:</p>
         <div class="form-group">
             <div class="col-md-8">

Reply via email to