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

vel pushed a commit to branch ranger-2.0
in repository https://gitbox.apache.org/repos/asf/ranger.git

commit 2a97668824d6a05f97193f3bf21d1bbe50a48330
Author: Nitin Galave <ni3gal...@apache.org>
AuthorDate: Wed Jul 31 19:13:02 2019 +0530

    RANGER-2520 : Prevent Roles to be saved in Ranger Role Management page when 
user or groups are not added to the role.
    
    (cherry picked from commit 716591dec8a80ac50d4fc0ff4a1c3337404e3ec7)
---
 .../webapp/scripts/modules/globalize/message/en.js |   1 +
 .../src/main/webapp/scripts/utils/XAUtils.js       |  26 +++--
 .../views/policies/RangerPolicyTableLayout.js      |   2 +-
 .../views/reports/PlugableServiceDiffDetail.js     |   1 +
 .../scripts/views/users/AddUsersOrGroupsList.js    |   3 +
 .../main/webapp/scripts/views/users/RoleCreate.js  |   4 +
 .../main/webapp/scripts/views/users/RoleForm.js    |  16 +++
 .../webapp/scripts/views/users/UserTableLayout.js  |  35 +++---
 .../PlugableServicePolicyDeleteDiff_tmpl.html      |  54 +++++++++
 .../reports/PlugableServicePolicyDiff_tmpl.html    | 126 +++++++++++++-------
 .../PlugableServicePolicyUpdateDiff_tmpl.html      | 130 +++++++++++++++++++--
 11 files changed, 317 insertions(+), 81 deletions(-)

diff --git 
a/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js 
b/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
index c320fdb..4096020 100644
--- a/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
+++ b/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
@@ -476,6 +476,7 @@ define(function(require) {
                 noDeleteRoleRow         :'Please select ranger role first to 
delete.',
                 addRolePermission       : 'Please add permission(s) for the 
selected role, else role will not be added.',
                 addRole                 : 'Please select role for the selected 
permission(s), else role will not be added.',
+                addSelectedUserGroupRoles : 'Please add selected 
user/group/roles to there respective table else user/group/roles will not be 
added.'
 
                        },
                        plcHldr : {
diff --git a/security-admin/src/main/webapp/scripts/utils/XAUtils.js 
b/security-admin/src/main/webapp/scripts/utils/XAUtils.js
index 5fca82c..80277f6 100644
--- a/security-admin/src/main/webapp/scripts/utils/XAUtils.js
+++ b/security-admin/src/main/webapp/scripts/utils/XAUtils.js
@@ -466,40 +466,40 @@ define(function(require) {
                options = _.isUndefined(options) ? Opt : options;
                $.msg(options);
        };
-       XAUtils.showGroups = function(rawValue) {
+        XAUtils.showMoreLessBtnForGroupsUsersRoles = function(rawValue , type) 
{
                var showMoreLess = false, id;
                if (_.isArray(rawValue))
                        rawValue = new Backbone.Collection(rawValue);
                if (!_.isUndefined(rawValue) && rawValue.models.length > 0) {
                        var groupArr = _.uniq(_.compact(_.map(rawValue.models, 
function(m,
                                        i) {
-                               if (m.has('groupName'))
-                                       return _.escape(m.get('groupName'));
+                                if (m.has('entityName'))
+                                        return _.escape(m.get('entityName'));
                        })));
                        if (groupArr.length > 0) {
                                if (rawValue.first().has('resourceId'))
                                        id = rawValue.first().get('resourceId');
                                else
-                                       id = rawValue.first().get('userId');
+                                        id = rawValue.first().get('modelId');
                        }
                        var newGroupArr = _.map(groupArr, function(name, i) {
                                if (i >= 4)
-                                       return '<span class="label label-info 
float-left-margin-2" policy-group-id="'
+                                        return '<span class="label label-info 
float-left-margin-2" data-name='+type+' model-'+ type +'-id="'
                                                        + id + '" 
style="display:none;">' + name
                                                        + '</span>';
                                else if (i == 3 && groupArr.length > 4) {
                                        showMoreLess = true;
-                                       return '<span class="label label-info 
float-left-margin-2" policy-group-id="'
+                                        return '<span class="label label-info 
float-left-margin-2" data-name='+type+' model-'+ type +'-id="'
                                                        + id + '">' + name + 
'</span>';
                                } else
-                                       return '<span class="label label-info 
float-left-margin-2" policy-group-id="'
+                                        return '<span class="label label-info 
float-left-margin-2" data-name='+type+' model-'+ type +'-id="'
                                                        + id + '">' + name + 
'</span>';
                        });
                        if (showMoreLess) {
                                newGroupArr
-                                               .push('<span 
class="float-left-margin-2"><a href="javascript:void(0);" data-id="showMore" 
class="" policy-group-id="'
+                                                .push('<span 
class="float-left-margin-2"><a href="javascript:void(0);" data-id="showMore" 
class="" data-name='+type+' model-'+ type +'-id="'
                                                                + id
-                                                               + '"><code 
style=""> + More..</code></a></span><span class="float-left-margin-2"><a 
href="javascript:void(0);" data-id="showLess" class="" policy-group-id="'
+                                                                + '"><code 
style=""> + More..</code></a></span><span class="float-left-margin-2"><a 
href="javascript:void(0);" data-id="showLess" class="" data-name='+type+' 
model-'+ type +'-id="'
                                                                + id
                                                                + '" 
style="display:none;"><code> - Less..</code></a></span>');
                        }
@@ -1729,6 +1729,14 @@ define(function(require) {
         });
     }
 
+    //Scroll up for roles create page
+    XAUtils.scrollToRolesField = function(field) {
+        $("html, body").animate({
+            scrollTop : field.position().top - 150
+        }, 1100, function() {
+            field.focus();
+        });
+    };
 
        return XAUtils;
 });
\ No newline at end of file
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 f8b71e1..31fc7c1 100644
--- 
a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyTableLayout.js
+++ 
b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyTableLayout.js
@@ -417,7 +417,7 @@ define(function(require){
                        
$td.find('[data-id="showMore"]['+attrName+'="'+id+'"]').parents('div[data-id="groupsDiv"]').removeClass('set-height-groups');
                },
                 attributName :function(e){
-                    var attrName = ['policy-groups-id', 'policy-users-id', 
'policy-label-id'], attributeName = "";
+                    var attrName = ['policy-groups-id', 'policy-users-id', 
'policy-label-id' , 'policy-roles-id'], attributeName = "";
                     attributeName =_.filter(attrName, function(name){
                         if($(e.currentTarget).attr(name)){
                             return name;
diff --git 
a/security-admin/src/main/webapp/scripts/views/reports/PlugableServiceDiffDetail.js
 
b/security-admin/src/main/webapp/scripts/views/reports/PlugableServiceDiffDetail.js
index ce3af44..c319d81 100644
--- 
a/security-admin/src/main/webapp/scripts/views/reports/PlugableServiceDiffDetail.js
+++ 
b/security-admin/src/main/webapp/scripts/views/reports/PlugableServiceDiffDetail.js
@@ -152,6 +152,7 @@ define(function(require){
                        
                        _.each(oldOl, function(ol, i) {
                                this.highLightElement($(ol).find('.username'), 
$(newOl[i]).find('.username'));
+                                this.highLightElement($(ol).find('.rolename'), 
$(newOl[i]).find('.rolename'));
                                this.highLightElement($(ol).find('.groupname'), 
$(newOl[i]).find('.groupname'));
                                this.highLightElement($(ol).find('.perm'), 
$(newOl[i]).find('.perm'));
                                this.highLightElement($(ol).find('.condition'), 
$(newOl[i]).find('.condition'));
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 8d23b80..3a24690 100644
--- a/security-admin/src/main/webapp/scripts/views/users/AddUsersOrGroupsList.js
+++ b/security-admin/src/main/webapp/scripts/views/users/AddUsersOrGroupsList.js
@@ -108,6 +108,7 @@ define(function(require) {
 
         ui : {
             'selectUsersOrGroups' : '[data-js="selectUsersOrGroups"]',
+            'addUserGroupRoleBtn' : '[data-action="addUserGroup"]'
         },
 
         events : {
@@ -128,6 +129,8 @@ define(function(require) {
                     +this.fieldName+' found</td></tr>');
             }
             
this.ui.selectUsersOrGroups.select2(XAUtil.getUsersGroupsList(this.fieldName, 
this));
+            this.ui.selectUsersOrGroups.attr("data-name", 
this.fieldName+"Select");
+            this.ui.addUserGroupRoleBtn.attr("data-name", 
this.fieldName+"AddBtn")
         },
 
         addNew : function() {
diff --git a/security-admin/src/main/webapp/scripts/views/users/RoleCreate.js 
b/security-admin/src/main/webapp/scripts/views/users/RoleCreate.js
index e7e9f06..91da5ab 100644
--- a/security-admin/src/main/webapp/scripts/views/users/RoleCreate.js
+++ b/security-admin/src/main/webapp/scripts/views/users/RoleCreate.js
@@ -107,6 +107,10 @@ define(function(require){
             }
             XAUtil.blockUI();
             this.form.beforeSave()
+            if(!this.form.beforeSave()){
+                XAUtil.blockUI('unblock');
+                return
+            }
             this.form.usersColl.models.filter(function(m){
                 usersDetails.push ({'name' : m.get('name') , 'isAdmin' : 
m.get('isAdmin')});
             })
diff --git a/security-admin/src/main/webapp/scripts/views/users/RoleForm.js 
b/security-admin/src/main/webapp/scripts/views/users/RoleForm.js
index a3fd9f3..e55899a 100644
--- a/security-admin/src/main/webapp/scripts/views/users/RoleForm.js
+++ b/security-admin/src/main/webapp/scripts/views/users/RoleForm.js
@@ -107,6 +107,21 @@ define(function(require){
 
         beforeSave : function() {
             var that = this;
+            
if(!_.isEmpty(this.$el.find('[data-name="usersSelect"]').select2('data')) ||
+                
!_.isEmpty(this.$el.find('[data-name="groupsSelect"]').select2('data')) ||
+                
!_.isEmpty(this.$el.find('[data-name="rolesSelect"]').select2('data'))) {
+                
if(!_.isEmpty(this.$el.find('[data-name="usersSelect"]').select2('data'))) {
+                    
XAUtils.scrollToRolesField(this.$el.find('[data-name="usersAddBtn"]'));
+                } else if 
(!_.isEmpty(this.$el.find('[data-name="groupsSelect"]').select2('data'))) {
+                    
XAUtils.scrollToRolesField(this.$el.find('[data-name="groupsAddBtn"]'));
+                } else {
+                    
XAUtils.scrollToRolesField(this.$el.find('[data-name="rolesAddBtn"]'));
+                }
+                XAUtils.alertPopup({
+                    msg :localization.tt('msg.addSelectedUserGroupRoles'),
+                });
+                return false;
+            }
             this.usersColl.remove(that.usersColl.models.filter(function(model){
                 return _.isUndefined(model.get('name'))
             }));
@@ -116,6 +131,7 @@ define(function(require){
             this.rolesColl.remove(that.rolesColl.models.filter(function(model){
                 return _.isUndefined(model.get('name'))
             }))
+            return true;
         },
 
     });
diff --git 
a/security-admin/src/main/webapp/scripts/views/users/UserTableLayout.js 
b/security-admin/src/main/webapp/scripts/views/users/UserTableLayout.js
index 13f7681..dabad17 100755
--- a/security-admin/src/main/webapp/scripts/views/users/UserTableLayout.js
+++ b/security-admin/src/main/webapp/scripts/views/users/UserTableLayout.js
@@ -424,8 +424,8 @@ define(function(require){
                                        label : localization.tt("lbl.groups"),
                                        formatter: _.extend({}, 
Backgrid.CellFormatter.prototype, {
                                                fromRaw: function 
(rawValue,model) {
-                                                       
if(!_.isUndefined(rawValue)){
-                                                               return 
XAUtil.showGroups(_.map(rawValue,function(name){return {'userId': 
model.id,'groupName': name}}));
+                                                        
if(!_.isUndefined(rawValue) && !_.isEmpty(rawValue)){
+                                                                return 
XAUtil.showMoreLessBtnForGroupsUsersRoles(_.map(rawValue,function(name){return 
{'modelId': model.id,'entityName': name}}) , 'groups');
                                                        }
                                                        else
                                                        return '--';
@@ -621,8 +621,7 @@ define(function(require){
                                         formatter: _.extend({}, 
Backgrid.CellFormatter.prototype, {
                                                 fromRaw: function (rawValue, 
model) {
                                                         
if(!_.isUndefined(rawValue) && rawValue.length != 0){
-                                                                var users = 
rawValue.map(function(m){return m.name});
-                                                                return 
XAUtil.showMoreAndLessButton(users, model)
+                                                                return 
XAUtil.showMoreLessBtnForGroupsUsersRoles(_.map(rawValue,function(m){return 
{'modelId': model.id,'entityName': m.name}}), 'users');
                                                         }else{
                                                                 return '--';
                                                         }
@@ -637,8 +636,7 @@ define(function(require){
                                         formatter: _.extend({}, 
Backgrid.CellFormatter.prototype, {
                                                 fromRaw: function (rawValue, 
model) {
                                                         
if(!_.isUndefined(rawValue) && rawValue.length != 0){
-                                                                var groups = 
rawValue.map(function(m){return m.name});
-                                                                return 
XAUtil.showMoreAndLessButton(groups, model)
+                                                               return 
XAUtil.showMoreLessBtnForGroupsUsersRoles(_.map(rawValue,function(m){return 
{'modelId': model.id,'entityName': m.name}}), 'groups');
                                                         }else{
                                                                 return '--';
                                                         }
@@ -653,8 +651,7 @@ define(function(require){
                                         formatter: _.extend({}, 
Backgrid.CellFormatter.prototype, {
                                                 fromRaw: function (rawValue, 
model) {
                                                         
if(!_.isUndefined(rawValue) && rawValue.length != 0){
-                                                                var roles = 
rawValue.map(function(m){return m.name});
-                                                                return 
XAUtil.showMoreAndLessButton(roles, model)
+                                                               return 
XAUtil.showMoreLessBtnForGroupsUsersRoles(_.map(rawValue,function(m){return 
{'modelId': model.id,'entityName': m.name}}), 'roles');
                                                         }else{
                                                                 return '--';
                                                         }
@@ -1040,18 +1037,20 @@ define(function(require){
                        return _.map(activeStatusList, function(status) { 
return { 'label': status.label, 'value': status.label}; })
                },
                onShowMore : function(e){
-                       var id = $(e.currentTarget).attr('policy-group-id');
-                       
this.rTableList.$el.find('[policy-group-id="'+id+'"]').show();
-                       
$('[data-id="showLess"][policy-group-id="'+id+'"]').show();
-                       
$('[data-id="showMore"][policy-group-id="'+id+'"]').hide();
-                       
$('[data-id="showMore"][policy-group-id="'+id+'"]').parents('div[data-id="groupsDiv"]').addClass('set-height-groups');
+                        var name = $(e.currentTarget).attr('data-name');
+                        var id = $(e.currentTarget).attr('model-'+name+'-id');
+                        
this.rTableList.$el.find('[model-'+name+'-id="'+id+'"]').show();
+                        
$('[data-id="showLess"][model-'+name+'-id="'+id+'"]').show();
+                        
$('[data-id="showMore"][model-'+name+'-id="'+id+'"]').hide();
+                        
$('[data-id="showMore"][model-'+name+'-id="'+id+'"]').parents('div[data-id="groupsDiv"]').addClass('set-height-groups');
                },
                onShowLess : function(e){
-                       var id = $(e.currentTarget).attr('policy-group-id');
-                       
this.rTableList.$el.find('[policy-group-id="'+id+'"]').slice(4).hide();
-                       
$('[data-id="showLess"][policy-group-id="'+id+'"]').hide();
-                       
$('[data-id="showMore"][policy-group-id="'+id+'"]').show();
-                       
$('[data-id="showMore"][policy-group-id="'+id+'"]').parents('div[data-id="groupsDiv"]').removeClass('set-height-groups')
+                        var name = $(e.currentTarget).attr('data-name');
+                        var id = $(e.currentTarget).attr('model-'+name+'-id');
+                        
this.rTableList.$el.find('[model-'+name+'-id="'+id+'"]').slice(4).hide();
+                        
$('[data-id="showLess"][model-'+name+'-id="'+id+'"]').hide();
+                        
$('[data-id="showMore"][model-'+name+'-id="'+id+'"]').show();
+                        
$('[data-id="showMore"][model-'+name+'-id="'+id+'"]').parents('div[data-id="groupsDiv"]').removeClass('set-height-groups')
                },
                checkRoleKeyAdmin : function() {
                        if(SessionMgr.isKeyAdmin()){
diff --git 
a/security-admin/src/main/webapp/templates/reports/PlugableServicePolicyDeleteDiff_tmpl.html
 
b/security-admin/src/main/webapp/templates/reports/PlugableServicePolicyDeleteDiff_tmpl.html
index fc5c302..f37c158 100644
--- 
a/security-admin/src/main/webapp/templates/reports/PlugableServicePolicyDeleteDiff_tmpl.html
+++ 
b/security-admin/src/main/webapp/templates/reports/PlugableServicePolicyDeleteDiff_tmpl.html
@@ -104,6 +104,15 @@
                        <h3>Old Value</h3>
                        {{#each oldPolicyItems}}
                                <ol class="unstyled data">
+                                                        <li 
class="change-row"><i>Roles</i>:
+                                                                {{#if_eq 
this.roles compare=0}}
+                                                                        
&lt;empty&gt;
+                                                                {{else}}
+                                                                        
{{#each this.roles}}
+                                                                               
 <span class="rolename">{{this}}</span><span>,</span>
+                                                                        
{{/each}}
+                                                                {{/if_eq}}
+                                                        </li>
                                                        <li 
class="change-row"><i>Groups</i>:
                                                                {{#if_eq 
this.groups compare=0}}
                                                                        
&lt;empty&gt; 
@@ -149,6 +158,15 @@
                        <h3>old Value</h3>
                                {{#each oldMaskPolicyItems}}
                                        <ol class="unstyled data">
+                                                <li 
class="change-row"><i>Roles</i>:
+                                                        {{#if_eq this.roles 
compare=0}}
+                                                                &lt;empty&gt;
+                                                        {{else}}
+                                                                {{#each 
this.roles}}
+                                                                        <span 
class="rolename">{{this}}</span><span>,</span>
+                                                                {{/each}}
+                                                        {{/if_eq}}
+                                                </li>
                                                <li class="change-row">Groups:
                                                        {{#if_eq this.groups 
compare=0}}
                                                                &lt;empty&gt;
@@ -190,6 +208,15 @@
                        <h3>Old Value</h3>
                        {{#each oldRowFilterPolicyItems}}
                                <ol class="unstyled data">
+                                                <li 
class="change-row"><i>Roles</i>:
+                                                        {{#if_eq this.roles 
compare=0}}
+                                                                &lt;empty&gt;
+                                                        {{else}}
+                                                                {{#each 
this.roles}}
+                                                                        <span 
class="rolename">{{this}}</span><span>,</span>
+                                                                {{/each}}
+                                                        {{/if_eq}}
+                                                </li>
                                                <li class="change-row">Groups:
                                                        {{#if_eq this.groups 
compare=0}}
                                                                &lt;empty&gt;
@@ -228,6 +255,15 @@
                        <h3>Old Value</h3>
                        {{#each oldAllowExceptionPolicyItems}}
                                <ol class="unstyled data">
+                                                        <li 
class="change-row"><i>Roles</i>:
+                                                                {{#if_eq 
this.roles compare=0}}
+                                                                        
&lt;empty&gt;
+                                                                {{else}}
+                                                                        
{{#each this.roles}}
+                                                                               
 <span class="rolename">{{this}}</span><span>,</span>
+                                                                        
{{/each}}
+                                                                {{/if_eq}}
+                                                        </li>
                                                        <li 
class="change-row"><i>Groups</i>:
                                                                {{#if_eq 
this.groups compare=0}}
                                                                        
&lt;empty&gt; 
@@ -273,6 +309,15 @@
                        <h3>Old Value</h3>
                        {{#each oldDenyPolicyItems}}
                                <ol class="unstyled data">
+                                                        <li 
class="change-row"><i>Roles</i>:
+                                                                {{#if_eq 
this.roles compare=0}}
+                                                                        
&lt;empty&gt;
+                                                                {{else}}
+                                                                        
{{#each this.roles}}
+                                                                               
 <span class="rolename">{{this}}</span><span>,</span>
+                                                                        
{{/each}}
+                                                                {{/if_eq}}
+                                                        </li>
                                                        <li 
class="change-row"><i>Groups</i>:
                                                                {{#if_eq 
this.groups compare=0}}
                                                                        
&lt;empty&gt; 
@@ -318,6 +363,15 @@
                        <h3>Old Value</h3>
                        {{#each oldDenyExceptionPolicyItems}}
                                <ol class="unstyled data">
+                                                        <li 
class="change-row"><i>Roles</i>:
+                                                                {{#if_eq 
this.roles compare=0}}
+                                                                        
&lt;empty&gt;
+                                                                {{else}}
+                                                                        
{{#each this.roles}}
+                                                                               
 <span class="rolename">{{this}}</span><span>,</span>
+                                                                        
{{/each}}
+                                                                {{/if_eq}}
+                                                        </li>
                                                        <li 
class="change-row"><i>Groups</i>:
                                                                {{#if_eq 
this.groups compare=0}}
                                                                        
&lt;empty&gt; 
diff --git 
a/security-admin/src/main/webapp/templates/reports/PlugableServicePolicyDiff_tmpl.html
 
b/security-admin/src/main/webapp/templates/reports/PlugableServicePolicyDiff_tmpl.html
index 0dcae38..59fa1f3 100644
--- 
a/security-admin/src/main/webapp/templates/reports/PlugableServicePolicyDiff_tmpl.html
+++ 
b/security-admin/src/main/webapp/templates/reports/PlugableServicePolicyDiff_tmpl.html
@@ -103,13 +103,20 @@
                        <h3>New Value</h3>
                                {{#each newPolicyItems}}
                                <ol class="unstyled data">
-                                               <li class="change-row">Groups: 
-                                                       {{#if_eq this.groups 
compare=0}}
-                                                               &lt;empty&gt;   
 
-                                                       {{else}}
-                                                               {{this.groups}} 
 
-                                                       {{/if_eq}}
-                                               </li>
+                                        <li class="change-row">Roles:
+                                                {{#if_eq this.roles compare=0}}
+                                                        &lt;empty&gt;
+                                                {{else}}
+                                                        {{this.roles}}
+                                                {{/if_eq}}
+                                        </li>
+                                        <li class="change-row">Groups:
+                                                {{#if_eq this.groups 
compare=0}}
+                                                        &lt;empty&gt;
+                                                {{else}}
+                                                        {{this.groups}}
+                                                {{/if_eq}}
+                                        </li>
                                        <li class="change-row">Users:
                                                {{#if_eq this.users compare=0}}
                                                                &lt;empty&gt;   
 
@@ -146,13 +153,20 @@
                        <h3>New Value</h3>
                                {{#each newAllowExceptionPolicyItems}}
                                <ol class="unstyled data">
-                                               <li class="change-row">Groups: 
-                                                       {{#if_eq this.groups 
compare=0}}
-                                                               &lt;empty&gt;   
 
-                                                       {{else}}
-                                                               {{this.groups}} 
 
-                                                       {{/if_eq}}
-                                               </li>
+                                        <li class="change-row">Roles:
+                                                {{#if_eq this.roles compare=0}}
+                                                        &lt;empty&gt;
+                                                {{else}}
+                                                        {{this.roles}}
+                                                {{/if_eq}}
+                                        </li>
+                                        <li class="change-row">Groups:
+                                                {{#if_eq this.groups 
compare=0}}
+                                                        &lt;empty&gt;
+                                                {{else}}
+                                                        {{this.groups}}
+                                                {{/if_eq}}
+                                        </li>
                                        <li class="change-row">Users:
                                                {{#if_eq this.users compare=0}}
                                                                &lt;empty&gt;   
 
@@ -189,13 +203,20 @@
                        <h3>New Value</h3>
                                {{#each newDenyPolicyItems}}
                                <ol class="unstyled data">
-                                               <li class="change-row">Groups: 
-                                                       {{#if_eq this.groups 
compare=0}}
-                                                               &lt;empty&gt;   
 
-                                                       {{else}}
-                                                               {{this.groups}} 
 
-                                                       {{/if_eq}}
-                                               </li>
+                                        <li class="change-row">Roles:
+                                                {{#if_eq this.roles compare=0}}
+                                                        &lt;empty&gt;
+                                                {{else}}
+                                                        {{this.roles}}
+                                                {{/if_eq}}
+                                        </li>
+                                        <li class="change-row">Groups:
+                                                {{#if_eq this.groups 
compare=0}}
+                                                        &lt;empty&gt;
+                                                {{else}}
+                                                        {{this.groups}}
+                                                {{/if_eq}}
+                                        </li>
                                        <li class="change-row">Users:
                                                {{#if_eq this.users compare=0}}
                                                                &lt;empty&gt;   
 
@@ -230,13 +251,20 @@
                        <h3>New Value</h3>
                                {{#each newDenyExceptionPolicyItems}}
                                <ol class="unstyled data">
-                                               <li class="change-row">Groups: 
-                                                       {{#if_eq this.groups 
compare=0}}
-                                                               &lt;empty&gt;   
 
-                                                       {{else}}
-                                                               {{this.groups}} 
 
-                                                       {{/if_eq}}
-                                               </li>
+                                        <li class="change-row">Roles:
+                                                {{#if_eq this.roles compare=0}}
+                                                        &lt;empty&gt;
+                                                {{else}}
+                                                        {{this.roles}}
+                                                {{/if_eq}}
+                                        </li>
+                                        <li class="change-row">Groups:
+                                                {{#if_eq this.groups 
compare=0}}
+                                                        &lt;empty&gt;
+                                                {{else}}
+                                                        {{this.groups}}
+                                                {{/if_eq}}
+                                        </li>
                                        <li class="change-row">Users:
                                                {{#if_eq this.users compare=0}}
                                                                &lt;empty&gt;   
 
@@ -272,13 +300,20 @@
                        <h3>New Value</h3>
                        {{#each newMaskPolicyItems}}
                                <ol class="unstyled data">
-                                               <li class="change-row">Groups:
-                                                       {{#if_eq this.groups 
compare=0}}
-                                                               &lt;empty&gt;
-                                                       {{else}}
-                                                               {{this.groups}}
-                                                       {{/if_eq}}
-                                               </li>
+                                        <li class="change-row">Roles:
+                                                {{#if_eq this.roles compare=0}}
+                                                        &lt;empty&gt;
+                                                {{else}}
+                                                        {{this.roles}}
+                                                {{/if_eq}}
+                                        </li>
+                                        <li class="change-row">Groups:
+                                                {{#if_eq this.groups 
compare=0}}
+                                                        &lt;empty&gt;
+                                                {{else}}
+                                                        {{this.groups}}
+                                                {{/if_eq}}
+                                        </li>
                                        <li class="change-row">Users:
                                                {{#if_eq this.users compare=0}}
                                                                &lt;empty&gt;
@@ -313,13 +348,20 @@
                        <h3>New Value</h3>
                        {{#each newRowFilterPolicyItems}}
                                <ol class="unstyled data">
-                                               <li class="change-row">Groups:
-                                                       {{#if_eq this.groups 
compare=0}}
-                                                               &lt;empty&gt;
-                                                       {{else}}
-                                                               {{this.groups}}
-                                                       {{/if_eq}}
-                                               </li>
+                                        <li class="change-row">Roles:
+                                                {{#if_eq this.roles compare=0}}
+                                                        &lt;empty&gt;
+                                                {{else}}
+                                                        {{this.roles}}
+                                                {{/if_eq}}
+                                        </li>
+                                        <li class="change-row">Groups:
+                                                {{#if_eq this.groups 
compare=0}}
+                                                        &lt;empty&gt;
+                                                {{else}}
+                                                        {{this.groups}}
+                                                {{/if_eq}}
+                                        </li>
                                        <li class="change-row">Users:
                                                {{#if_eq this.users compare=0}}
                                                                &lt;empty&gt;
diff --git 
a/security-admin/src/main/webapp/templates/reports/PlugableServicePolicyUpdateDiff_tmpl.html
 
b/security-admin/src/main/webapp/templates/reports/PlugableServicePolicyUpdateDiff_tmpl.html
index c06c237..4c00a8a 100644
--- 
a/security-admin/src/main/webapp/templates/reports/PlugableServicePolicyUpdateDiff_tmpl.html
+++ 
b/security-admin/src/main/webapp/templates/reports/PlugableServicePolicyUpdateDiff_tmpl.html
@@ -180,6 +180,15 @@
                                {{#each oldPolicyItems}}
                                        <ol class="unstyled data">
                                                {{#ifCond this.users '||' 
this.groups }}
+                                                        <li 
class="change-row"><i>Roles</i>:
+                                                                {{#if_eq 
this.roles compare=0}}
+                                                                        
&lt;empty&gt;
+                                                                {{else}}
+                                                                        
{{#each this.roles}}
+                                                                               
 <span class="rolename">{{this}}</span><span>,</span>
+                                                                        
{{/each}}
+                                                                {{/if_eq}}
+                                                        </li>
                                                        <li 
class="change-row"><i>Groups</i>:
                                                                {{#if_eq 
this.groups compare=0}}
                                                                        
&lt;empty&gt;            
@@ -222,7 +231,16 @@
                        <h3>New Value</h3>
                        {{#each newPolicyItems}}
                                <ol class="unstyled data">
-                               {{#ifCond this.users '||' this.groups}}
+                                {{#ifCond this.users '||' this.groups }}
+                                                        <li 
class="change-row"><i>Roles</i>:
+                                                                {{#if_eq 
this.roles compare=0}}
+                                                                        
&lt;empty&gt;
+                                                                {{else}}
+                                                                        
{{#each this.roles}}
+                                                                               
 <span class="rolename">{{this}}</span><span>,</span>
+                                                                        
{{/each}}
+                                                                {{/if_eq}}
+                                                        </li>
                                                        <li 
class="change-row"><i>Groups</i>:
                                                                {{#if_eq 
this.groups compare=0}}
                                                                        
&lt;empty&gt;            
@@ -271,7 +289,16 @@
                        <h3>Old Value</h3>
                                {{#each oldAllowExceptionPolicyItems}}
                                        <ol class="unstyled data">
-                                               {{#ifCond this.users '||' 
this.groups}}
+                                                {{#ifCond this.users '||' 
this.groups }}
+                                                        <li 
class="change-row"><i>Roles</i>:
+                                                                {{#if_eq 
this.roles compare=0}}
+                                                                        
&lt;empty&gt;
+                                                                {{else}}
+                                                                        
{{#each this.roles}}
+                                                                               
 <span class="rolename">{{this}}</span><span>,</span>
+                                                                        
{{/each}}
+                                                                {{/if_eq}}
+                                                        </li>
                                                        <li 
class="change-row"><i>Groups</i>:
                                                                {{#if_eq 
this.groups compare=0}}
                                                                        
&lt;empty&gt;            
@@ -314,7 +341,16 @@
                        <h3>New Value</h3>
                        {{#each newAllowExceptionPolicyItems}}
                                <ol class="unstyled data">
-                               {{#ifCond this.users '||' this.groups}}
+                                {{#ifCond this.users '||' this.groups }}
+                                                        <li 
class="change-row"><i>Roles</i>:
+                                                                {{#if_eq 
this.roles compare=0}}
+                                                                        
&lt;empty&gt;
+                                                                {{else}}
+                                                                        
{{#each this.roles}}
+                                                                               
 <span class="rolename">{{this}}</span><span>,</span>
+                                                                        
{{/each}}
+                                                                {{/if_eq}}
+                                                        </li>
                                                        <li 
class="change-row"><i>Groups</i>:
                                                                {{#if_eq 
this.groups compare=0}}
                                                                        
&lt;empty&gt;            
@@ -364,7 +400,16 @@
                        <h3>Old Value</h3>
                                {{#each oldDenyPolicyItems}}
                                        <ol class="unstyled data">
-                                               {{#ifCond this.users '||' 
this.groups}}
+                                                {{#ifCond this.users '||' 
this.groups }}
+                                                        <li 
class="change-row"><i>Roles</i>:
+                                                                {{#if_eq 
this.roles compare=0}}
+                                                                        
&lt;empty&gt;
+                                                                {{else}}
+                                                                        
{{#each this.roles}}
+                                                                               
 <span class="rolename">{{this}}</span><span>,</span>
+                                                                        
{{/each}}
+                                                                {{/if_eq}}
+                                                        </li>
                                                        <li 
class="change-row"><i>Groups</i>:
                                                                {{#if_eq 
this.groups compare=0}}
                                                                        
&lt;empty&gt;            
@@ -407,7 +452,16 @@
                        <h3>New Value</h3>
                        {{#each newDenyPolicyItems}}
                                <ol class="unstyled data">
-                               {{#ifCond this.users '||' this.groups}}
+                                {{#ifCond this.users '||' this.groups }}
+                                                        <li 
class="change-row"><i>Roles</i>:
+                                                                {{#if_eq 
this.roles compare=0}}
+                                                                        
&lt;empty&gt;
+                                                                {{else}}
+                                                                        
{{#each this.roles}}
+                                                                               
 <span class="rolename">{{this}}</span><span>,</span>
+                                                                        
{{/each}}
+                                                                {{/if_eq}}
+                                                        </li>
                                                        <li 
class="change-row"><i>Groups</i>:
                                                                {{#if_eq 
this.groups compare=0}}
                                                                        
&lt;empty&gt;            
@@ -458,7 +512,16 @@
                        <h3>Old Value</h3>
                                {{#each oldDenyExceptionPolicyItems}}
                                        <ol class="unstyled data">
-                                               {{#ifCond this.users '||' 
this.groups}}
+                                                {{#ifCond this.users '||' 
this.groups }}
+                                                        <li 
class="change-row"><i>Roles</i>:
+                                                                {{#if_eq 
this.roles compare=0}}
+                                                                        
&lt;empty&gt;
+                                                                {{else}}
+                                                                        
{{#each this.roles}}
+                                                                               
 <span class="rolename">{{this}}</span><span>,</span>
+                                                                        
{{/each}}
+                                                                {{/if_eq}}
+                                                        </li>
                                                        <li 
class="change-row"><i>Groups</i>:
                                                                {{#if_eq 
this.groups compare=0}}
                                                                        
&lt;empty&gt;            
@@ -501,7 +564,16 @@
                        <h3>New Value</h3>
                        {{#each newDenyExceptionPolicyItems}}
                                <ol class="unstyled data">
-                               {{#ifCond this.users '||' this.groups}}
+                                {{#ifCond this.users '||' this.groups }}
+                                                        <li 
class="change-row"><i>Roles</i>:
+                                                                {{#if_eq 
this.roles compare=0}}
+                                                                        
&lt;empty&gt;
+                                                                {{else}}
+                                                                        
{{#each this.roles}}
+                                                                               
         <span class="rolename">{{this}}</span><span>,</span>
+                                                                        
{{/each}}
+                                                                {{/if_eq}}
+                                                        </li>
                                                        <li 
class="change-row"><i>Groups</i>:
                                                                {{#if_eq 
this.groups compare=0}}
                                                                        
&lt;empty&gt;            
@@ -551,7 +623,16 @@
                        <h3>Old Value</h3>
                                {{#each oldMaskPolicyItems}}
                                        <ol class="unstyled data">
-                                               {{#ifCond this.users '||' 
this.groups}}
+                                                {{#ifCond this.users '||' 
this.groups }}
+                                                        <li 
class="change-row"><i>Roles</i>:
+                                                                {{#if_eq 
this.roles compare=0}}
+                                                                        
&lt;empty&gt;
+                                                                {{else}}
+                                                                        
{{#each this.roles}}
+                                                                               
 <span class="rolename">{{this}}</span><span>,</span>
+                                                                        
{{/each}}
+                                                                {{/if_eq}}
+                                                        </li>
                                                        <li 
class="change-row"><i>Groups</i>:
                                                                {{#if_eq 
this.groups compare=0}}
                                                                        
&lt;empty&gt;
@@ -591,7 +672,16 @@
                        <h3>New Value</h3>
                        {{#each newMaskPolicyItems}}
                                <ol class="unstyled data">
-                               {{#ifCond this.users '||' this.groups}}
+                                {{#ifCond this.users '||' this.groups }}
+                                                        <li 
class="change-row"><i>Roles</i>:
+                                                                {{#if_eq 
this.roles compare=0}}
+                                                                        
&lt;empty&gt;
+                                                                {{else}}
+                                                                        
{{#each this.roles}}
+                                                                               
 <span class="rolename">{{this}}</span><span>,</span>
+                                                                        
{{/each}}
+                                                                {{/if_eq}}
+                                                        </li>
                                                        <li 
class="change-row"><i>Groups</i>:
                                                                {{#if_eq 
this.groups compare=0}}
                                                                        
&lt;empty&gt;
@@ -639,7 +729,16 @@
                        <h3>Old Value</h3>
                                {{#each oldRowFilterPolicyItems}}
                                        <ol class="unstyled data">
-                                               {{#ifCond this.users '||' 
this.groups}}
+                                                {{#ifCond this.users '||' 
this.groups }}
+                                                        <li 
class="change-row"><i>Roles</i>:
+                                                                {{#if_eq 
this.roles compare=0}}
+                                                                        
&lt;empty&gt;
+                                                                {{else}}
+                                                                        
{{#each this.roles}}
+                                                                               
 <span class="rolename">{{this}}</span><span>,</span>
+                                                                        
{{/each}}
+                                                                {{/if_eq}}
+                                                        </li>
                                                        <li 
class="change-row"><i>Groups</i>:
                                                                {{#if_eq 
this.groups compare=0}}
                                                                        
&lt;empty&gt;
@@ -679,7 +778,16 @@
                        <h3>New Value</h3>
                        {{#each newRowFilterPolicyItems}}
                                <ol class="unstyled data">
-                               {{#ifCond this.users '||' this.groups}}
+                                {{#ifCond this.users '||' this.groups }}
+                                                        <li 
class="change-row"><i>Roles</i>:
+                                                                {{#if_eq 
this.roles compare=0}}
+                                                                        
&lt;empty&gt;
+                                                                {{else}}
+                                                                        
{{#each this.roles}}
+                                                                               
 <span class="rolename">{{this}}</span><span>,</span>
+                                                                        
{{/each}}
+                                                                {{/if_eq}}
+                                                        </li>
                                                        <li 
class="change-row"><i>Groups</i>:
                                                                {{#if_eq 
this.groups compare=0}}
                                                                        
&lt;empty&gt;

Reply via email to