blob: dc3e417a4f65bac6c4f026674a0f86404299342a [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
/**
*
* Common module for Links used.
* All hrefs should be used from this file.
*
*/
define(function(require) {
'use strict';
var XALinks = {};
var XAEnums = require('utils/XAEnums');
var defaults = {
href : 'javascript:void(0)',
text : '',
title : 'Title'
};
var links = {
/* Main Menu links START */
Dashboard : {
href : '#',
text : 'h.dashboard',
title: 'h.dashboard'
},
PolicyManager :{
href : '#!/policymanager',
text : 'h.policyManager',
title: 'h.policyManager'
},
RepositoryManager :{
href : '#!/policymanager',
text : 'h.repositoryManager',
title: 'h.repositoryManager'
},
ServiceManager : function(options){
var textVal = 'h.serviceManager';
return {
href : '#!/policymanager/resource',
text : !_.isEmpty(options) ? 'Service Manager : ' + options + ' zone' : textVal,
title : !_.isEmpty(options) ? 'Service Manager : ' + options + ' zone' : textVal,
}
},
TagBasedServiceManager : function(options){
var textVal = 'h.serviceManager';
return{
href : '#!/policymanager/tag',
text : !_.isEmpty(options) ? 'Service Manager : ' + options + ' zone' : textVal,
title: !_.isEmpty(options) ? 'Service Manager : ' + options + ' zone' : textVal,
}
},
Users : {
href : '#!/users/usertab',
text : 'h.usersOrGroupsOrRoles',
title: 'h.usersOrGroupsOrRoles'
},
Groups : {
href : '#!/users/grouptab',
text : 'h.usersOrGroupsOrRoles',
title: 'h.usersOrGroupsOrRoles'
},
Kms : {
href : '#!/kms/keys/new/manage/service',
text : 'h.kms',
title: 'h.kms'
},
KmsKeyCreate : {
href : 'javascript:void(0);',
text : 'h.keyCreate',
title: 'h.keyCreate'
},
KmsKeyEdit : {
href : 'javascript:void(0);',
text : 'h.keyEdit',
title: 'h.keyEdit'
},
KmsKeyForService : {
href : 'javascript:void(0);',
text : 'KMS_TEST1',
title: 'KMS_TEST1'
},
ManageTables: {
href : '#!/managetables',
text : 'h.managetables',
title: 'h.managetables'
},
addPolicyForTable: {
href : '#!/addpolicyfortable',
text : 'h.addpolicyfortable',
title: 'h.addpolicyfortable'
},
ManageFolders: {
href : '#!/managefolders',
title: 'h.managefolders',
text: 'h.managefolders'
},
addPolicyForFolder: {
href : '#!/addpolicyforfolder',
title: 'h.addpolicyforfolder',
text: 'h.addpolicyforfolder'
},
HDFSFolders: {
href : '#!/hdfs',
text : 'h.managePolices',
title: 'h.managePolices'
},
PolicyCreate: {
href : 'javascript:void(0);',
text: 'h.createPolicy',
title: 'h.createPolicy'
},
PolicyEdit: {
href : 'javascript:void(0);',
text: 'h.editPolicy',
title: 'h.editPolicy'
},
HivePolicyListing : {
href : '#!/hive',
title: 'h.managetables',
text: 'h.manageTables'
},
/*
* Asset related
*/
/*AssetCreate: {
href : '#!/asset/create',
text: 'lbl.createAsset',
title: 'lbl.createAsset'
},*/
/*
* Reports Related
*/
UserAccessReport: {
href : '#!/reports/userAccess',
text: 'lbl.userAccessReport',
title: 'lbl.userAccessReport'
},
AuditReport: {
href : '#!/reports/audit',
text: 'lbl.auditReport',
title: 'lbl.auditReport'
},
UserProfile :{
href : '#!/userprofile',
text : 'h.userProfile',
title: 'h.userProfile'
},
/*
* User OR Groups Related
*/
UserCreate : {
href : '#!/user/create',
text : 'lbl.userCreate',
title: 'lbl.userCreate'
},
UserEdit : {
href : 'javascript:void(0);',
text : 'lbl.userEdit',
title: 'lbl.userEdit'
},
GroupCreate : {
href : '#!/group/create',
text : 'lbl.groupCreate',
title: 'lbl.groupCreate'
},
GroupEdit : {
href : 'javascript:void(0);',
text : 'lbl.groupEdit'
},
SessionDetail : {
href : '#!/reports/audit/loginSession',
text : 'lbl.sessionDetail'
},
ServiceCreate : {
href : "javascript:void(0);",
text : 'lbl.createService',
title: 'lbl.createService'
},
ServiceEdit : function(options){
var href = "javascript:void(0);";
if(_.has(options,'model')){
href = '#!/service/'+options.model.get('id');
}
if(_.has(options,'id')){
href = '#!/service/'+options.id;
}
return {
href : href,
text : 'lbl.editService',
title: 'lbl.editService'
};
},
ManagePolicies : function(options){
var href = "javascript:void(0);";
if(_.has(options,'model')){
href = '#!/service/'+options.model.id+"/policies/"+XAEnums.RangerPolicyType.RANGER_ACCESS_POLICY_TYPE.value;
}
return {
href : href,
text : options.model.get('name') +' Policies',
title: options.model.get('name') +' Policies'
};
},
ManageHivePolicies : function(options){
var href = "javascript:void(0);";
if(_.has(options,'model')){
href = '#!/hive/'+options.model.id+"/policies";
}
return {
href : href,
text : options.model.get('name') +' Policies',
title: options.model.get('name') +' Policies'
};
},
ManageHbasePolicies : function(options){
var href = "javascript:void(0);";
if(_.has(options,'model')){
href = '#!/hbase/'+options.model.id+"/policies";
}
return {
href : href,
text : options.model.get('name') +' Policies',
title: options.model.get('name') +' Policies'
};
},
ManageKnoxPolicies : function(options){
var href = "javascript:void(0);";
if(_.has(options,'model')){
href = '#!/knox/'+options.model.id+"/policies";
}
return {
href : href,
text : options.model.get('name') +' Policies',
title: options.model.get('name') +' Policies'
};
},
ManageStormPolicies : function(options){
var href = "javascript:void(0);";
if(_.has(options,'model')){
href = '#!/storm/'+options.model.id+"/policies";
}
return {
href : href,
text : options.model.get('name') +' Policies',
title: options.model.get('name') +' Policies'
};
},
ModulePermissions :{
href : '#!/permissions',
text : 'h.permissions',
title: 'h.permissions'
},
ModulePermissionEdit : function(options){
var href = "javascript:void(0);";
if(_.has(options,'model')){
href = '#!/permissions/'+options.model.id+"/edit";
}
return {
href : href,
text : options.model.get('module'),
title: options.model.get('module')
};
},
KmsServiceForKey : function(options) {
var href = "javascript:void(0);";
if(_.has(options,'kmsServiceDefModel') && _.has(options,'kmsService')){
href = '#!/service/'+options.kmsServiceDefModel.id+"/edit/"+options.kmsService.id;
}
return {
href : href,
text : options.kmsService.get('name'),
title: options.kmsService.get('name')
};
},
KmsManage : function(options) {
var href = "javascript:void(0);";
if(_.has(options,'kmsService')){
href = '#!/kms/keys/edit/manage/'+options.kmsService;
}
return {
href : href,
text : 'h.kms',
title: 'h.kms'
};
},
SecurityZone :{
href : '#!/zones/zone/list',
text : 'h.securityZone',
title: 'h.securityZone'
},
ZoneCreate : {
href : '#!/zones/create',
text : 'h.zoneCreate',
title: 'h.zoneCreate'
},
ZoneEdit : function(options){
return {
href : 'javascript:void(0);',
text : 'h.zoneEdit',
title: 'h.zoneEdit'
};
},
ZoneName: function(options) {
return {
href: 'javascript:void(0)',
text: 'Zone Name : ' + options
}
},
Roles : {
href : '#!/users/roletab',
text : 'h.usersOrGroupsOrRoles',
title: 'h.usersOrGroupsOrRoles',
},
RoleCreate : {
href : '#!/role/create',
text : 'lbl.roleCreate',
title: 'lbl.roleCreate',
},
RoleEdit : {
href : 'javascript:void(0);',
text : 'lbl.roleEdit',
title: 'lbl.roleEdit',
},
};
XALinks.get = function(type, options){
if(! _.has(links, type)){
throw new Error("Link " + type + " not found in XALinks Module!");
}
var opts = {};
// in some case we will get model directly as options
if( options && !_.has(options,'model') && options instanceof Backbone.Model){
opts['model'] = options;
} else {
opts = options;
}
if(typeof links[type] === 'function'){
return links[type](opts||{});
}
return links[type];
};
return XALinks;
});