Repository: incubator-ranger Updated Branches: refs/heads/tag-policy 5a022141c -> 3ffde5de3
Added Tag based policy tab and also provided tag option for existing services. Signed-off-by: Madhan Neethiraj <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/3ffde5de Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/3ffde5de Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/3ffde5de Branch: refs/heads/tag-policy Commit: 3ffde5de3eb079d48593a34027d0556f7d38a4d6 Parents: 5a02214 Author: Gautam Borad <[email protected]> Authored: Tue Jun 2 18:20:27 2015 +0530 Committer: Madhan Neethiraj <[email protected]> Committed: Tue Jun 2 09:14:21 2015 -0700 ---------------------------------------------------------------------- .../service-defs/ranger-servicedef-_tag_.json | 22 +--------- .../webapp/scripts/controllers/Controller.js | 40 +++++++++++------ .../main/webapp/scripts/models/RangerPolicy.js | 4 ++ .../webapp/scripts/models/RangerServiceDef.js | 45 ++++++++++++++++++++ .../src/main/webapp/scripts/modules/XALinks.js | 7 ++- .../main/webapp/scripts/modules/XAOverrides.js | 2 +- .../scripts/modules/globalize/message/en.js | 3 +- .../src/main/webapp/scripts/routers/Router.js | 5 ++- .../src/main/webapp/scripts/utils/XAEnums.js | 3 +- .../src/main/webapp/scripts/utils/XAGlobals.js | 3 +- .../scripts/views/policies/RangerPolicyForm.js | 10 ++++- .../views/policies/RangerPolicyTableLayout.js | 3 ++ .../views/policymanager/ServiceLayout.js | 9 +++- .../scripts/views/service/ServiceCreate.js | 20 +++++---- .../webapp/scripts/views/service/ServiceForm.js | 31 ++++++++------ .../webapp/templates/common/TopNav_tmpl.html | 6 ++- .../main/webapp/templates/helpers/XAHelpers.js | 1 + .../templates/service/ServiceForm_tmpl.html | 35 ++++++++------- 18 files changed, 166 insertions(+), 83 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/agents-common/src/main/resources/service-defs/ranger-servicedef-_tag_.json ---------------------------------------------------------------------- diff --git a/agents-common/src/main/resources/service-defs/ranger-servicedef-_tag_.json b/agents-common/src/main/resources/service-defs/ranger-servicedef-_tag_.json index e0ae0bc..0fa5577 100644 --- a/agents-common/src/main/resources/service-defs/ranger-servicedef-_tag_.json +++ b/agents-common/src/main/resources/service-defs/ranger-servicedef-_tag_.json @@ -37,27 +37,7 @@ "configs": [ - { - "itemId": 1, - "name": "username", - "type": "string", - "mandatory": false, - "validationRegEx":"", - "validationMessage": "", - "uiHint":"", - "label": "Username" - }, - - { - "itemId": 2, - "name": "password", - "type": "password", - "mandatory": false, - "validationRegEx":"", - "validationMessage": "", - "uiHint":"", - "label": "Password" - } + ], "enums": http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/security-admin/src/main/webapp/scripts/controllers/Controller.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/controllers/Controller.js b/security-admin/src/main/webapp/scripts/controllers/Controller.js index 0819f9e..7b9cc39 100755 --- a/security-admin/src/main/webapp/scripts/controllers/Controller.js +++ b/security-admin/src/main/webapp/scripts/controllers/Controller.js @@ -221,24 +221,38 @@ define(function(require) { //************** Generic design Related *********************/ /************************************************************/ - serviceManagerAction :function(){ + serviceManagerAction :function(type){ MAppState.set({ 'currentTab' : XAGlobals.AppTabs.AccessManager.value }); - console.log('Policy Manager action called..'); + var XAUtil = require('utils/XAUtils'); + var XAEnums = require('utils/XAEnums'); var view = require('views/policymanager/ServiceLayout'); var RangerServiceDefList = require('collections/RangerServiceDefList'); + var RangerServiceDef = require('models/RangerServiceDef'); + var collection = new RangerServiceDefList(); collection.queryParams.sortBy = 'serviceTypeId'; - collection.fetch({ - cache : false, - async:false - }).done(function(){ - if(App.rContent.currentView) App.rContent.currentView.close(); - //TODO FROM SERVER SIDE IT SHOULD GIVE SORTBY `ID` BY DEFAULT -// collection = collection.sort() - App.rContent.show(new view({ - collection : collection - })); - }); + + if(type == 'tag'){ + var tagServiceDef = new RangerServiceDef(); + tagServiceDef.url = XAUtil.getRangerServiceDef(XAEnums.ServiceType.SERVICE_TAG.label) + tagServiceDef.fetch({ + cache : false, + async:false + }) + collection.add(tagServiceDef); + }else{ + collection.fetch({ + cache : false, + async:false + }); + var coll = collection.filter(function(model){ return model.get('name') != XAEnums.ServiceType.SERVICE_TAG.label}) + collection.reset(coll) + } +// if(App.rContent.currentView) App.rContent.currentView.close(); + App.rContent.show(new view({ + collection : collection, + type : type + })); }, serviceCreateAction :function(serviceTypeId){ http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/security-admin/src/main/webapp/scripts/models/RangerPolicy.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/models/RangerPolicy.js b/security-admin/src/main/webapp/scripts/models/RangerPolicy.js index 46e498b..feacfec 100644 --- a/security-admin/src/main/webapp/scripts/models/RangerPolicy.js +++ b/security-admin/src/main/webapp/scripts/models/RangerPolicy.js @@ -80,6 +80,10 @@ define(function(require){ offText : 'NO', switchOn : true }, + policyType : { + type : 'Checkbox', + title : localization.tt("lbl.isFinalPolicy"), + }, }); }, http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/security-admin/src/main/webapp/scripts/models/RangerServiceDef.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/models/RangerServiceDef.js b/security-admin/src/main/webapp/scripts/models/RangerServiceDef.js index f76938d..8aa38f3 100644 --- a/security-admin/src/main/webapp/scripts/models/RangerServiceDef.js +++ b/security-admin/src/main/webapp/scripts/models/RangerServiceDef.js @@ -75,9 +75,54 @@ define(function(require){ var nvPairs = XAUtils.enumToSelectPairs(activeStatus); callback(_.sortBy(nvPairs, function(n){ return !n.val; })); } + }, + tagService : { + type : 'Select2Remote', + title : 'Select Tag Service', + pluginAttr : this.getPluginAttr(), + options : function(callback, editor){ + callback(); + } + } }); }, + getPluginAttr : function(){ + return { closeOnSelect : true, + placeholder : 'Select Tag Service', + maximumSelectionSize : 1, + width :'220px', + tokenSeparators: [",", " "], + allowClear: true, + initSelection : function (element, callback) { + callback( { id:element.val(), text:element.val() }) + }, + ajax: { + url: "service/plugins/services", + dataType: 'json', + data: function (term, page) { + return { name : term, serviceType : '_tag_' }; + }, + results: function (data, page) { + var results = []; + if(data.resultSize != "0"){ + results = data.services.map(function(m, i){ return {id : m.name, text: m.name}; }); + return {results : results}; + } + return {results : results}; + } + }, + formatResult : function(result){ + return result.text; + }, + formatSelection : function(result){ + return result.text; + }, + formatNoMatches: function(result){ + return 'No tag service found.'; + } + }; + }, /** This models toString() */ toString : function(){ http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/security-admin/src/main/webapp/scripts/modules/XALinks.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/modules/XALinks.js b/security-admin/src/main/webapp/scripts/modules/XALinks.js index efa3454..acb1b01 100755 --- a/security-admin/src/main/webapp/scripts/modules/XALinks.js +++ b/security-admin/src/main/webapp/scripts/modules/XALinks.js @@ -50,7 +50,12 @@ define(function(require) { title: 'h.repositoryManager' }, ServiceManager :{ - href : '#!/policymanager', + href : '#!/policymanager/resource', + text : 'h.serviceManager', + title: 'h.serviceManager' + }, + TagBasedServiceManager :{ + href : '#!/policymanager/tag', text : 'h.serviceManager', title: 'h.serviceManager' }, http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/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 b7af13a..9bc1533 100644 --- a/security-admin/src/main/webapp/scripts/modules/XAOverrides.js +++ b/security-admin/src/main/webapp/scripts/modules/XAOverrides.js @@ -267,7 +267,7 @@ render: function() { var self = this; - this.setOptions(this.schema.options); +// this.setOptions(this.schema.options); setTimeout(function () { self.$el.select2(self.pluginAttr); },0); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/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 fa02166..c427c41 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 @@ -227,7 +227,8 @@ define(function(require) { createService : 'Create Service', editService : 'Edit Service', serviceDetails : 'Service Details', - serviceName : 'Service Name' + serviceName : 'Service Name', + isFinalPolicy : 'Is Final Policy' }, btn : { add : 'Add', http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/security-admin/src/main/webapp/scripts/routers/Router.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/routers/Router.js b/security-admin/src/main/webapp/scripts/routers/Router.js index 127b418..d8aea1b 100644 --- a/security-admin/src/main/webapp/scripts/routers/Router.js +++ b/security-admin/src/main/webapp/scripts/routers/Router.js @@ -30,8 +30,9 @@ function(Backbone, Marionette, localization, MAppState, XAUtil){ return Backbone.Marionette.AppRouter.extend({ /** Backbone routes hash */ appRoutes: { - "" : "postLoginDefaultView",//"dashboardAction", - "!/policymanager" : "serviceManagerAction", + "" : "postLoginDefaultView",//"dashboardAction", + "!/policymanager/:resource" : "serviceManagerAction", + "!/policymanager/:tag" : "serviceManagerAction", /****** Analytics Report related **********************/ "!/reports/userAccess" : "userAccessReportAction", http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/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 98cc0c8..51cf608 100644 --- a/security-admin/src/main/webapp/scripts/utils/XAEnums.js +++ b/security-admin/src/main/webapp/scripts/utils/XAEnums.js @@ -116,7 +116,8 @@ define(function(require) { Service_HIVE:{value:2, label:'hive', rbkey:'xa.enum.AssetType.ASSET_HIVE', tt: 'lbl.AssetType_ASSET_HIVE'}, Service_HBASE:{value:3, label:'hbase', rbkey:'xa.enum.AssetType.ASSET_HBASE', tt: 'lbl.AssetType_ASSET_HBASE'}, Service_KNOX:{value:4, label:'knox', rbkey:'xa.enum.AssetType.ASSET_KNOX', tt: 'lbl.AssetType_ASSET_KNOX'}, - Service_STORM:{value:5, label:'storm', rbkey:'xa.enum.AssetType.ASSET_STORM', tt: 'lbl.AssetType_ASSET_STORM'} + Service_STORM:{value:5, label:'storm', rbkey:'xa.enum.AssetType.ASSET_STORM', tt: 'lbl.AssetType_ASSET_STORM'}, + SERVICE_TAG:{value:6, label:'_tag_', rbkey:'xa.enum.ServiceType.SERVICE_TAG', tt: 'lbl.ServiceType_SERVICE_TAG'} }); XAEnums.AuthStatus = mergeParams(XAEnums.AuthStatus, { http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/security-admin/src/main/webapp/scripts/utils/XAGlobals.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/utils/XAGlobals.js b/security-admin/src/main/webapp/scripts/utils/XAGlobals.js index 21b3cb4..31f7fa3 100644 --- a/security-admin/src/main/webapp/scripts/utils/XAGlobals.js +++ b/security-admin/src/main/webapp/scripts/utils/XAGlobals.js @@ -64,7 +64,8 @@ define(function(require){ XAGlobals.ListOfModuleActions = { 'Access Manager' : { 'Resource Based Policies' : ['serviceManagerAction','serviceCreateAction','serviceEditAction', 'policyManageAction','RangerPolicyCreateAction','RangerPolicyEditAction'], - 'Reports' : ['userAccessReportAction'] }, + 'Reports' : ['userAccessReportAction'], + 'Tag Based Policies' : ['serviceManagerAction','serviceCreateAction','serviceEditAction', 'policyManageAction','RangerPolicyCreateAction','RangerPolicyEditAction']}, 'Audit' : ['auditReportAction','loginSessionDetail'], 'Encryption' : {'Key Manager' : ['kmsManagerAction','kmsKeyCreateAction'] }, 'Settings' : {'Users/Groups' : ['userManagerAction','userCreateAction','userEditAction','groupCreateAction','groupEditAction'], http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js ---------------------------------------------------------------------- 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 2396955..bbb38f5 100644 --- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js +++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js @@ -88,7 +88,7 @@ define(function(require){ getSchema : function(){ var attrs = {}; var basicSchema = ['name','isEnabled'] - var schemaNames = ['description', 'isAuditEnabled']; + var schemaNames = this.getPolicyBaseFieldNames(); var formDataType = new BackboneFormDataType(); attrs = formDataType.getFormElements(this.rangerServiceDefModel.get('resources'),this.rangerServiceDefModel.get('enums'), attrs, this); @@ -262,6 +262,10 @@ define(function(require){ this.model.unset(key, obj.values.toString()) },this)*/ + if(!_.isUndefined(this.model.get('policyType'))){ + this.model.set('policyType',this.model.get('policyType') ? 1 : 0) + } + }, setPermissionsToColl : function(list, policyItemList) { list.each(function(m){ @@ -551,6 +555,10 @@ define(function(require){ } return obj; }, + getPolicyBaseFieldNames : function(){ + var fields = ['description', 'isAuditEnabled','policyType']; + return this.rangerServiceDefModel.get('name') == XAEnums.ServiceType.SERVICE_TAG.label ? fields : fields.slice(0,fields.indexOf("policyType")); + } }); return RangerPolicyForm; http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/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 9a6b92f..e306ec4 100644 --- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyTableLayout.js +++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyTableLayout.js @@ -61,6 +61,9 @@ define(function(require){ }, breadCrumbs : function(){ + if(this.rangerService.get('type') == XAEnums.ServiceType.SERVICE_TAG.label){ + return [XALinks.get('TagBasedServiceManager'),XALinks.get('ManagePolicies',{model : this.rangerService})]; + } return [XALinks.get('ServiceManager'),XALinks.get('ManagePolicies',{model : this.rangerService})]; // return []; }, http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/security-admin/src/main/webapp/scripts/views/policymanager/ServiceLayout.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/views/policymanager/ServiceLayout.js b/security-admin/src/main/webapp/scripts/views/policymanager/ServiceLayout.js index 040cda7..f7c72dc 100644 --- a/security-admin/src/main/webapp/scripts/views/policymanager/ServiceLayout.js +++ b/security-admin/src/main/webapp/scripts/views/policymanager/ServiceLayout.js @@ -46,7 +46,12 @@ define(function(require){ services : groupedServices }; }, - breadCrumbs :[XALinks.get('ServiceManager')], + breadCrumbs :function(){ + if(this.type == "tag"){ + return [XALinks.get('TagBasedServiceManager')]; + } + return [XALinks.get('ServiceManager')]; + }, /** Layout sub regions */ regions: {}, @@ -69,7 +74,7 @@ define(function(require){ initialize: function(options) { console.log("initialized a Servicemanagerlayout Layout"); this.services = new RangerServiceList(); - _.extend(this, _.pick(options, 'collection')); + _.extend(this, _.pick(options, 'collection','type')); this.bindEvents(); this.initializeServices(); }, http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/security-admin/src/main/webapp/scripts/views/service/ServiceCreate.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/views/service/ServiceCreate.js b/security-admin/src/main/webapp/scripts/views/service/ServiceCreate.js index 01141b6..b14179e 100644 --- a/security-admin/src/main/webapp/scripts/views/service/ServiceCreate.js +++ b/security-admin/src/main/webapp/scripts/views/service/ServiceCreate.js @@ -48,10 +48,11 @@ define(function(require){ }, breadCrumbs :function(){ + var name = this.rangerServiceDefModel.get('name') != XAEnums.ServiceType.SERVICE_TAG.label ? 'ServiceManager' : 'TagBasedServiceManager'; if(this.model.isNew()) - return [XALinks.get('ServiceManager'), XALinks.get('ServiceCreate', {model:this.model})]; + return [XALinks.get(name), XALinks.get('ServiceCreate', {model:this.model})]; else - return [XALinks.get('ServiceManager'), XALinks.get('ServiceEdit',{model:this.model})]; + return [XALinks.get(name), XALinks.get('ServiceEdit',{model:this.model})]; }, /** Layout sub regions */ @@ -154,13 +155,11 @@ define(function(require){ var msg = that.editService ? 'Service updated successfully' :'Service created successfully'; XAUtil.notifySuccess('Success', msg); - if(that.editService){ - App.appRouter.navigate("#!/policymanager",{trigger: true}); + if(XAEnums.ServiceType.SERVICE_TAG.label == that.model.get('type')){ + App.appRouter.navigate("#!/policymanager/tag",{trigger: true}); return; } - - App.appRouter.navigate("#!/policymanager",{trigger: true}); - + App.appRouter.navigate("#!/policymanager/resource",{trigger: true}); }, error: function (model, response, options) { XAUtil.blockUI('unblock'); @@ -269,7 +268,12 @@ define(function(require){ }, onCancel : function(){ XAUtil.allowNavigation(); - App.appRouter.navigate("#!/policymanager",{trigger: true}); + if(XAEnums.ServiceType.SERVICE_TAG.label == this.model.get('type')){ + App.appRouter.navigate("#!/policymanager/tag",{trigger: true}); + return; + } + App.appRouter.navigate("#!/policymanager/resource",{trigger: true}); +// App.appRouter.navigate("#!/policymanager",{trigger: true}); }, /** on close */ onClose: function(){ http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js b/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js index a3ac650..da1da83 100644 --- a/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js +++ b/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js @@ -83,8 +83,7 @@ define(function(require){ fields: ['name', 'description', 'isEnabled', 'type','configs', '_vPassword'], schema : function(){ - - var attrs = _.pick(_.result(this.rangerServiceDefModel,'schemaBase'), 'name', 'description', 'isEnabled', 'type'); + var attrs = _.pick(_.result(this.rangerServiceDefModel,'schemaBase'), this.getSerivceBaseFieldNames()); var that = this; var formDataType = new BackboneFormDataType(); return formDataType.getFormElements(this.rangerServiceDefModel.get('configs'),this.rangerServiceDefModel.get('enums'), attrs, this); @@ -150,18 +149,20 @@ define(function(require){ var that = this; //Set configs for service var config = {}; - _.each(this.rangerServiceDefModel.get('configs'),function(obj){ - if(!_.isNull(obj)){ - if(obj.type == 'bool'){ - config[obj.name] = that.getBooleanForConfig(obj, that.model); - }else{ - config[obj.name] = that.model.get(obj.name).toString(); + if(!_.isEmpty(this.rangerServiceDefModel.get('configs'))){ + _.each(this.rangerServiceDefModel.get('configs'),function(obj){ + if(!_.isNull(obj)){ + if(obj.type == 'bool'){ + config[obj.name] = that.getBooleanForConfig(obj, that.model); + }else{ + config[obj.name] = that.model.get(obj.name).toString(); + } + that.model.unset(obj.name); } - that.model.unset(obj.name); - } - }); - this.extraConfigColl.each(function(obj){ config[obj.get('name')] = obj.get('value');}) - this.model.set('configs',config); + }); + this.extraConfigColl.each(function(obj){ config[obj.get('name')] = obj.get('value');}) + this.model.set('configs',config); + } //Set service type this.model.set('type',this.rangerServiceDefModel.get('name')) @@ -200,6 +201,10 @@ define(function(require){ return subType[1].substr(0, subType[0].length - 5); } }, + getSerivceBaseFieldNames : function(){ + var fields = ['name', 'description', 'isEnabled','tagService'] + return this.rangerServiceDefModel.get('name') == XAEnums.ServiceType.SERVICE_TAG.label ? fields.slice(0,fields.indexOf("tagService")) : fields; + } }); return ServiceForm; http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/security-admin/src/main/webapp/templates/common/TopNav_tmpl.html ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/templates/common/TopNav_tmpl.html b/security-admin/src/main/webapp/templates/common/TopNav_tmpl.html index 876f9df..a29423f 100644 --- a/security-admin/src/main/webapp/templates/common/TopNav_tmpl.html +++ b/security-admin/src/main/webapp/templates/common/TopNav_tmpl.html @@ -20,12 +20,14 @@ <a href="javascript:;" id="nav2"><i class="icon-shield"></i>Access Manager</a> <ul class="dropdown-menu"> {{#hasAccessToTab 'Resource Based Policies'}} - <li><a href="#!/policymanager"><i class="icon-file"></i>Resource Based Policies</a></li> + <li><a href="#!/policymanager/resource"><i class="icon-file"></i>Resource Based Policies</a></li> {{/hasAccessToTab}} {{#hasAccessToTab 'Reports'}} <li><a href="#!/reports/userAccess"><i class="icon-beaker"></i>Reports</a></li> {{/hasAccessToTab}} - <!-- <li><a href="#">Tag Based Policies</a></li> --> + {{#hasAccessToTab 'Tag Based Policies'}} + <li><a href="#!/policymanager/tag"><i class="icon-tag"></i>Tag Based Policies</a></li> + {{/hasAccessToTab}} </ul> </li> {{#hasAccessToTab 'Audit'}} http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/security-admin/src/main/webapp/templates/helpers/XAHelpers.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/templates/helpers/XAHelpers.js b/security-admin/src/main/webapp/templates/helpers/XAHelpers.js index b140608..eec7a95 100644 --- a/security-admin/src/main/webapp/templates/helpers/XAHelpers.js +++ b/security-admin/src/main/webapp/templates/helpers/XAHelpers.js @@ -535,6 +535,7 @@ return str.toUpperCase(); }); Handlebars.registerHelper('hasAccessToTab', function(tabName,options) { + if(tabName == 'Tag Based Policies') return options.fn(this); var vxPortalUser = SessionMgr.getUserProfile(); var userModules = _.pluck(vxPortalUser.get('userPermList'), 'moduleName'); var groupModules = _.pluck(vxPortalUser.get('groupPermissions'), 'moduleName'); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3ffde5de/security-admin/src/main/webapp/templates/service/ServiceForm_tmpl.html ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/templates/service/ServiceForm_tmpl.html b/security-admin/src/main/webapp/templates/service/ServiceForm_tmpl.html index 58f90a5..a6f5ae6 100644 --- a/security-admin/src/main/webapp/templates/service/ServiceForm_tmpl.html +++ b/security-admin/src/main/webapp/templates/service/ServiceForm_tmpl.html @@ -21,22 +21,25 @@ </p> <div class="serviceDetail" data-fields={{serviceDetail}}></div> </fieldset> - <fieldset class="configProp"> - <p class="formHeader"> - Config Properties : - </p> - <div class="serviceConfig" data-fields={{serviceConfig}}></div> - <div class="extraServiceConfigs" ></div> - </fieldset> - <div> - <div class="control-group field-username hdfs hive knox storm" style="display: block;"> - <label class="control-label" for="c12_username"></label> - <div class="controls"> - <span data-editor=""> - <input data-id="testConn" type="button" value="Test Connection" class="btn" /> - </span> - + {{#compare this.serviceConfig "neq" ''}} + <fieldset class="configProp"> + <p class="formHeader"> + Config Properties : + </p> + <div class="serviceConfig" data-fields={{serviceConfig}}></div> + <div class="extraServiceConfigs" ></div> + </fieldset> + + <div> + <div class="control-group field-username hdfs hive knox storm" style="display: block;"> + <label class="control-label" for="c12_username"></label> + <div class="controls"> + <span data-editor=""> + <input data-id="testConn" type="button" value="Test Connection" class="btn" /> + </span> + + </div> </div> </div> - </div> + {{/compare}} </form> \ No newline at end of file
