You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ga...@apache.org on 2016/12/19 05:46:43 UTC
incubator-ranger git commit: RANGER-1246: Update UI hints for
wildcards in search filters
Repository: incubator-ranger
Updated Branches:
refs/heads/master 5e7b555cd -> 4b9497b62
RANGER-1246: Update UI hints for wildcards in search filters
Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/4b9497b6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/4b9497b6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/4b9497b6
Branch: refs/heads/master
Commit: 4b9497b62fdd2b7f0bd2c57b0331fe815ae928b8
Parents: 5e7b555
Author: Gautam Borad <ga...@apache.org>
Authored: Thu Dec 15 20:40:14 2016 +0530
Committer: Gautam Borad <ga...@apache.org>
Committed: Mon Dec 19 11:16:17 2016 +0530
----------------------------------------------------------------------
.../main/webapp/scripts/modules/XAOverrides.js | 9 ++++++-
.../scripts/modules/globalize/message/en.js | 14 ++++++----
.../src/main/webapp/scripts/utils/XAEnums.js | 2 +-
.../src/main/webapp/scripts/utils/XAUtils.js | 28 +++++++++++++++-----
.../views/permissions/ModulePermsTableLayout.js | 20 +++++++++++---
.../views/policies/RangerPolicyCreate.js | 10 ++++++-
.../views/policies/RangerPolicyTableLayout.js | 1 +
.../webapp/scripts/views/reports/AuditLayout.js | 7 ++++-
.../scripts/views/reports/UserAccessLayout.js | 1 +
security-admin/src/main/webapp/styles/xa.css | 4 ++-
.../policies/RangerPolicyCreate_tmpl.html | 12 ++++++---
11 files changed, 83 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4b9497b6/security-admin/src/main/webapp/scripts/modules/XAOverrides.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/modules/XAOverrides.js b/security-admin/src/main/webapp/scripts/modules/XAOverrides.js
index 8122ae1..b23318e 100644
--- a/security-admin/src/main/webapp/scripts/modules/XAOverrides.js
+++ b/security-admin/src/main/webapp/scripts/modules/XAOverrides.js
@@ -458,7 +458,8 @@
}
},
renderSameLevelResource : function() {
- var that = this, dirtyFieldValue = null
+ var that = this, dirtyFieldValue = null;
+ var XAUtil = require('utils/XAUtils'), localization = require('utils/XALangSupport');;
if(!_.isUndefined(this.$resourceType) && this.$resourceType.length > 0){
if(!_.isNull(this.value) && !_.isEmpty(this.value)){
this.$resourceType.val(this.value.resourceType);
@@ -479,6 +480,12 @@
//resource are shown if parent is selected or showned
that.$el.parents('.control-group').attr('data-name', 'field-'+this.value);
that.formView.trigger('policyForm:parentChildHideShow',true);
+ if(!_.isUndefined(this.value)
+ && ( XAUtil.capitaliseFirstLetter(this.value) === XAEnums.ResourceType.RESOURCE_TABLE.label
+ || XAUtil.capitaliseFirstLetter(this.value) === XAEnums.ResourceType.RESOURCE_UDF.label) ){
+ XAUtil.alertPopup({ msg :localization.tt('msg.udfPolicyViolation') });
+ }
+
});
}
},
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4b9497b6/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
----------------------------------------------------------------------
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 63a5b0f..866844c 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
@@ -237,9 +237,9 @@ define(function(require) {
selectMaskingOption : 'Select Masking Option',
versionTime : 'Version / Time',
serviceType : 'Service Type',
- hostName : 'Host Name',
- selectAndAddUser : 'Select and Add User',
- selectAndAddGroup : 'Select and Add Group',
+ hostName : 'Host Name',
+ selectAndAddUser : 'Select and Add User',
+ selectAndAddGroup : 'Select and Add Group',
},
btn : {
add : 'Add',
@@ -368,7 +368,7 @@ define(function(require) {
searchBy :'Search by user name or group name.',
resourceMsg :'Enter name of resource for eg. path, table/column name etc.',
accessEnforcer :'Search by access enforcer name.',
- accessTypeMsg :'Access type like READ_EXECUTE, WRITE_EXECUTE.',
+ accessTypeMsg :'Search by access Type like READ_EXECUTE, WRITE_EXECUTE.',
clientIP :'Search by IP address from where resource was accessed.',
resourceName :'Resource name.',
resourceTypeMsg :'Search by resource type based on component. eg. path in HDFS, database ,table in Hive.',
@@ -378,7 +378,11 @@ define(function(require) {
searchForPluginStatus : "Search for Plugin Status....",
pleaseSelectUser : 'Please select user.',
pleaseSelectGroup : 'Please select group.',
- addSelectedUserGroup : 'Please add selected user/group to permissions else user/group will not be added.'
+ addSelectedUserGroup : 'Please add selected user/group to permissions else user/group will not be added.',
+ maskingPolicyInfoMsg : 'Please ensure that users/groups listed in this policy have access to the column via an <b>Access Policy</b>. This policy does not implicitly grant access to the column.',
+ rowFilterPolicyInfoMsg : 'Please ensure that users/groups listed in this policy have access to the table via an <b>Access Policy</b>. This policy does not implicitly grant access to the table.',
+ udfPolicyViolation : '<b> Warning !!</b> : UDF create is a privileged operation. Please make sure you grant them to only trusted users.'
+
},
plcHldr : {
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4b9497b6/security-admin/src/main/webapp/scripts/utils/XAEnums.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/utils/XAEnums.js b/security-admin/src/main/webapp/scripts/utils/XAEnums.js
index c05dcf3..164e939 100644
--- a/security-admin/src/main/webapp/scripts/utils/XAEnums.js
+++ b/security-admin/src/main/webapp/scripts/utils/XAEnums.js
@@ -283,7 +283,7 @@ define(function(require) {
RESOURCE_COL_FAM:{value:4, label:'Column Family', rbkey:'xa.enum.ResourceType.RESOURCE_COL_FAM', tt: 'lbl.ResourceType_RESOURCE_COL_FAM'},
RESOURCE_COLUMN:{value:5, label:'Column', rbkey:'xa.enum.ResourceType.RESOURCE_COLUMN', tt: 'lbl.ResourceType_RESOURCE_COLUMN'},
RESOURCE_VIEW:{value:6, label:'VIEW', rbkey:'xa.enum.ResourceType.RESOURCE_VIEW', tt: 'lbl.ResourceType_RESOURCE_VIEW'},
- RESOURCE_UDF:{value:7, label:'UDF', rbkey:'xa.enum.ResourceType.RESOURCE_UDF', tt: 'lbl.ResourceType_RESOURCE_UDF'},
+ RESOURCE_UDF:{value:7, label:'Udf', rbkey:'xa.enum.ResourceType.RESOURCE_UDF', tt: 'lbl.ResourceType_RESOURCE_UDF'},
RESOURCE_VIEW_COL:{value:8, label:'View Column', rbkey:'xa.enum.ResourceType.RESOURCE_VIEW_COL', tt: 'lbl.ResourceType_RESOURCE_VIEW_COL'},
RESOURCE_TOPOLOGY:{value:9, label:'Topology', rbkey:'xa.enum.ResourceType.RESOURCE_TOPOLOGY', tt: 'lbl.RESOURCE_TOPOLOGY'},
RESOURCE_SERVICE:{value:10, label:'Service', rbkey:'xa.enum.ResourceType.RESOURCE_SERVICE', tt: 'lbl.RESOURCE_SERVICE'},
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4b9497b6/security-admin/src/main/webapp/scripts/utils/XAUtils.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/utils/XAUtils.js b/security-admin/src/main/webapp/scripts/utils/XAUtils.js
index c026b52..4493e91 100644
--- a/security-admin/src/main/webapp/scripts/utils/XAUtils.js
+++ b/security-admin/src/main/webapp/scripts/utils/XAUtils.js
@@ -175,7 +175,7 @@ define(function(require) {
};
// Search Info it give popover box
XAUtils.searchInfoPopover = function(myArray, $infoEle, placement){
- var msg = "";
+ var msg = "<span> ( <b> *</b> ) Indicates wildcard support.</span>";
myArray.map(function(m){
msg += '<div><span><b>'+m.text+' : </b></span><span>'+m.info+'</span></div>'
})
@@ -537,22 +537,36 @@ define(function(require) {
};
XAUtils.showGroupsOrUsers = function(rawValue, model, userOrGroups) {
- var showMoreLess = false, objArr;
+ var showMoreLess = false, objArr, lastShowMoreCnt = 1, j = 1, listShownCnt = 5000;
if (!_.isArray(rawValue) && rawValue.length == 0)
return '--';
objArr = (userOrGroups == 'groups') ? _.pluck(rawValue, 'groupName') : _.pluck(rawValue, 'userName');
var newObjArr = _.map(objArr, function(name, i) {
if (i >= 4) {
- return '<span class="label label-info float-left-margin-2" policy-' + userOrGroups
- + '-id="' + model.id + '" style="display:none;">'
- + name + '</span>';
+ var eleStr = '', span = '<span class="label label-info float-left-margin-2" policy-' + userOrGroups
+ + '-id="' + model.id +'">'
+ + _.escape(name) + '</span>';
+ if( (i + listShownCnt ) === (listShownCnt*j) + 4){
+ eleStr = '<div data-id="moreSpans" style="display:none;">'+span;
+ if(i == objArr.length - 1){
+ eleStr += '</div>';
+ }
+ lastShowMoreCnt = ( listShownCnt*j) + 4;
+ j++;
+ }else if(i === lastShowMoreCnt - 1 || i == objArr.length - 1){
+ eleStr = span + '</div>';
+
+ }else{
+ eleStr = span;
+ }
+ return eleStr;
} else if (i == 3 && objArr.length > 4) {
showMoreLess = true;
return '<span class="label label-info float-left-margin-2" policy-' + userOrGroups
- + '-id="' + model.id + '">' + name + '</span>';
+ + '-id="' + model.id + '">' + _.escape(name) + '</span>';
} else {
return '<span class="label label-info float-left-margin-2" policy-' + userOrGroups
- + '-id="' + model.id + '">' + name + '</span>';
+ + '-id="' + model.id + '">' + _.escape(name) + '</span>';
}
});
if (showMoreLess) {
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4b9497b6/security-admin/src/main/webapp/scripts/views/permissions/ModulePermsTableLayout.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/permissions/ModulePermsTableLayout.js b/security-admin/src/main/webapp/scripts/views/permissions/ModulePermsTableLayout.js
index 76dc027..92c07c7 100644
--- a/security-admin/src/main/webapp/scripts/views/permissions/ModulePermsTableLayout.js
+++ b/security-admin/src/main/webapp/scripts/views/permissions/ModulePermsTableLayout.js
@@ -184,9 +184,21 @@ define(function(require){
attrName = 'policy-users-id';
}
var $td = $(e.currentTarget).parents('td');
- $td.find('['+attrName+'="'+id+'"]').show();
- $td.find('[data-id="showLess"]['+attrName+'="'+id+'"]').show();
- $td.find('[data-id="showMore"]['+attrName+'="'+id+'"]').hide();
+ var show = false, shownCnt = 1;
+ $.each($td.find('[data-id="moreSpans"]'), function(i, div){
+ if($(div).is(':hidden') && !show){
+ $(div).show();
+ show = true;
+ return false;
+ }
+ if(!$(div).is(':hidden')){
+ shownCnt++;
+ }
+ })
+ if($td.find('[data-id="moreSpans"]').length == shownCnt){
+ $td.find('[data-id="showLess"]['+attrName+'="'+id+'"]').show();
+ $td.find('[data-id="showMore"]['+attrName+'="'+id+'"]').hide();
+ }
$td.find('[data-id="showMore"]['+attrName+'="'+id+'"]').parents('div[data-id="groupsDiv"]').addClass('set-height-groups');
},
onShowLess : function(e){
@@ -197,7 +209,7 @@ define(function(require){
attrName = 'policy-users-id';
}
var $td = $(e.currentTarget).parents('td');
- $td.find('['+attrName+'="'+id+'"]').slice(4).hide();
+ $td.find('[data-id="moreSpans"]').hide();
$td.find('[data-id="showLess"]['+attrName+'="'+id+'"]').hide();
$td.find('[data-id="showMore"]['+attrName+'="'+id+'"]').show();
$td.find('[data-id="showMore"]['+attrName+'="'+id+'"]').parents('div[data-id="groupsDiv"]').removeClass('set-height-groups');
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4b9497b6/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
index 8dc3485..728e5bf 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
@@ -43,8 +43,16 @@ define(function(require){
template : RangerPolicycreateTmpl,
templateHelpers : function(){
+ var infoMsg = '', displayClass = 'hide';
+ if(XAUtil.isMaskingPolicy(this.model.get('policyType'))){
+ infoMsg = localization.tt('msg.maskingPolicyInfoMsg'), displayClass = 'show';
+ }else if(XAUtil.isRowFilterPolicy(this.model.get('policyType'))){
+ infoMsg = localization.tt('msg.rowFilterPolicyInfoMsg'), displayClass = 'show';
+ }
return {
- editPolicy : this.editPolicy
+ editPolicy : this.editPolicy,
+ infoMsg : infoMsg,
+ displayClass : displayClass
};
},
breadCrumbs :function(){
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4b9497b6/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyTableLayout.js
----------------------------------------------------------------------
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 964d263..1eaf3da 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyTableLayout.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyTableLayout.js
@@ -425,6 +425,7 @@ define(function(require){
},
/** on close */
onClose: function(){
+ $('.popover').remove();
}
});
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4b9497b6/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js b/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js
index bf00a7e..1e1f0f7 100644
--- a/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js
+++ b/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js
@@ -224,7 +224,7 @@ define(function(require) {
this.modifyTableForSubcolumns();
this.addSearchForBigDataTab();
this.listenTo(this.accessAuditList, "request", that.updateLastRefresh)
- this.ui.iconSearchInfo.show();
+ this.ui.iconSearchInfo.show();
break;
case "#admin":
this.currentTab = '#admin';
@@ -238,6 +238,7 @@ define(function(require) {
this.addSearchForAdminTab();
this.listenTo(this.trxLogList, "request", that.updateLastRefresh)
this.ui.iconSearchInfo.hide();
+ $('.popover').remove();
break;
case "#loginSession":
this.currentTab = '#loginSession';
@@ -251,6 +252,7 @@ define(function(require) {
this.addSearchForLoginSessionTab();
this.listenTo(this.authSessionList, "request", that.updateLastRefresh)
this.ui.iconSearchInfo.hide();
+ $('.popover').remove();
break;
case "#agent":
this.currentTab = '#agent';
@@ -265,6 +267,7 @@ define(function(require) {
this.addSearchForAgentTab();
this.listenTo(this.policyExportAuditList, "request", that.updateLastRefresh)
this.ui.iconSearchInfo.hide();
+ $('.popover').remove();
break;
case "#pluginStatus":
this.currentTab = '#pluginStatus';
@@ -278,6 +281,7 @@ define(function(require) {
this.pluginInfoList.fetch({cache : false});
this.addSearchForPluginStatusTab();
this.ui.iconSearchInfo.hide();
+ $('.popover').remove();
break;
}
var lastUpdateTime = Globalize.format(new Date(), "MM/dd/yyyy hh:mm:ss tt");
@@ -1366,6 +1370,7 @@ define(function(require) {
clearInterval(this.timerId);
clearInterval(this.clearTimeUpdateInterval);
$('.datepicker').remove();
+ $('.popover').remove();
}
});
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4b9497b6/security-admin/src/main/webapp/scripts/views/reports/UserAccessLayout.js
----------------------------------------------------------------------
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 39770d9..56bba66 100644
--- a/security-admin/src/main/webapp/scripts/views/reports/UserAccessLayout.js
+++ b/security-admin/src/main/webapp/scripts/views/reports/UserAccessLayout.js
@@ -840,6 +840,7 @@ define(function(require) {'use strict';
},
/** on close */
onClose : function() {
+ $('.popover').remove();
}
});
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4b9497b6/security-admin/src/main/webapp/styles/xa.css
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/styles/xa.css b/security-admin/src/main/webapp/styles/xa.css
index 7d86dfa..154b588 100644
--- a/security-admin/src/main/webapp/styles/xa.css
+++ b/security-admin/src/main/webapp/styles/xa.css
@@ -2055,7 +2055,9 @@ td.subgrid-custom-cell{
.VS-search .search_facet_input_container{
margin-top: 1px;
}
-.selected-widget {
+.padding-right-10{
+ padding-right: 10px;
+}.selected-widget {
padding: 3px 5px 3px 4px;
border-radius: 3px;
border: 1px solid #aaaaaa;
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4b9497b6/security-admin/src/main/webapp/templates/policies/RangerPolicyCreate_tmpl.html
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/templates/policies/RangerPolicyCreate_tmpl.html b/security-admin/src/main/webapp/templates/policies/RangerPolicyCreate_tmpl.html
index eab1c22..31252af 100644
--- a/security-admin/src/main/webapp/templates/policies/RangerPolicyCreate_tmpl.html
+++ b/security-admin/src/main/webapp/templates/policies/RangerPolicyCreate_tmpl.html
@@ -20,10 +20,14 @@
<h4> {{tt 'h.createPolicy'}} </h4>
{{/if}}
<div class="wrap non-collapsible ">
-<div class="alert alert-danger" data-id="policyDisabledAlert" style="display:none;">
- <button type="button" class="close" data-dismiss="alert">×</button>
- <strong>Warning !</strong> {{tt 'msg.policyDisabledMsg'}}
-</div>
+ <div class="alert alert-danger" data-id="policyDisabledAlert" style="display:none;">
+ <button type="button" class="close" data-dismiss="alert">×</button>
+ <strong>Warning !</strong> {{tt 'msg.policyDisabledMsg'}}
+ </div>
+ <div class="alert alert-warning {{displayClass}}" data-id="policyInfoAlert">
+ <button type="button" class="close" data-dismiss="alert">×</button>
+ <i class="icon-info-sign searchInfoUserAccsss padding-right-10"></i>{{{infoMsg}}}
+ </div>
<div data-id="r_form"></div>
<div class="form-actions form-policy" class="row-fluid">
{{#if editPolicy}}