var buildDefaultLeftNav = function(page, util) { var id = page.assets.id; var navList = util.navList(); var isLCViewEnabled = ctx.rxtManager.isLifecycleViewEnabled(ctx.assetType); if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_UPDATE, ctx.assetType, ctx.session)) { navList.push('Edit', 'btn-edit', util.buildUrl('update') + '/' + id); } navList.push('Overview', 'btn-overview', util.buildUrl('details') + '/' + id); //Only render the view if the asset has a if ((isLCViewEnabled) && (isAssetWithLifecycle(page.assets))) { if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_LIFECYCLE, ctx.assetType, ctx.session)) { navList.push('Life Cycle', 'btn-lifecycle', util.buildUrl('lifecycle') + '/' + id); } } return navList.list(); };
ribbon: function(page) { var ribbon = page.ribbon = {}; var DEFAULT_ICON = 'icon-cog'; var assetTypes = []; var assetType; var assetList = ctx.rxtManager.listRxtTypeDetails(); for (var index in assetList) { assetType = assetList[index]; //Only populate the link if the asset type is activated and the logged in user has permission to that asset if ((isActivatedAsset(assetType.shortName)) && (permissionAPI.hasAssetPermission(permissionAPI.ASSET_LIST, assetType.shortName, ctx.session))) { assetTypes.push({ url: this.buildBaseUrl(assetType.shortName) + '/list', assetIcon: assetType.ui.icon || DEFAULT_ICON, assetTitle: assetType.singularLabel }); } } ribbon.currentType = page.rxt.singularLabel; ribbon.currentTitle = page.rxt.singularLabel; ribbon.currentUrl = this.buildBaseUrl(type) + '/list'; //page.meta.currentPage; ribbon.shortName = page.rxt.singularLabel; ribbon.query = 'Query'; ribbon.breadcrumb = assetTypes; return page; },
var buildListLeftNav = function(page, util) { var navList = util.navList(); if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_CREATE, ctx.assetType, ctx.session)) { navList.push('Add ', 'btn-add-new', util.buildUrl('create')); } return navList.list(); };
pageDecorators.navigationBar = function(ctx, page, utils) { var permissionAPI = require('rxt').permissions; var ribbon = page.ribbon = {}; var DEFAULT_ICON = 'icon-cog'; var assetTypes = []; var assetType; var assetList = ctx.rxtManager.listRxtTypeDetails(); for (var index in assetList) { assetType = assetList[index]; //Only populate the link if the asset type is activated and the logged in user has permission to that asset if ((isActivatedAsset(assetType.shortName, ctx.tenantId)) && (permissionAPI.hasAssetPermission(permissionAPI.ASSET_LIST, assetType.shortName, ctx.session))) { assetTypes.push({ url: utils.buildAssetPageUrl(assetType.shortName, '/list'), assetIcon: assetType.ui.icon || DEFAULT_ICON, assetTitle: assetType.pluralLabel }); } } ribbon.currentType = page.rxt.singularLabel; ribbon.currentTitle = page.rxt.singularLabel; ribbon.currentUrl = utils.buildAssetPageUrl(assetType.shortName, '/list'); //page.meta.currentPage; ribbon.shortName = page.rxt.singularLabel; ribbon.query = 'Query'; ribbon.breadcrumb = assetTypes; return page; };
pageDecorators.navigationBar = function(ctx, page, utils) { var app = require('rxt').app; //Change the context to support cross tenant views var tenantAppResources = tenantApi.createTenantAwareAppResources(ctx.session); //Support for cross tenant views ctx = tenantAppResources.context; var rxtManager = ctx.rxtManager; //Obtain all of the available rxt types var availableTypes = app.getUIActivatedAssets(ctx.tenantId); var types = []; var type; var currentType; page.isUserDomainAndUrlDomainDifferent = tenantAppResources.isUserDomainAndUrlDomainDifferent; page.navigationBar = {}; var isLandingPage = true; for (var index in availableTypes) { type = availableTypes[index]; if (permissionsAPI.hasAssetPermission(permissionsAPI.ASSET_LIST, type, ctx.tenantId, ctx.username)) { currentType = rxtManager.getRxtTypeDetails(type); currentType.selected = false; currentType.style = "all-item"; currentType.listingUrl = utils.buildAssetPageUrl(currentType.shortName, '/list'); if (currentType.shortName == page.rxt.shortName) { currentType.selected = true; currentType.style = "active home top-item"; isLandingPage = false; } types.push(currentType); } } page.navigationBar.types = types; page.navigationBar.landingPage = isLandingPage; return page; };
var buildListLeftNav = function(page, util) { var navList = util.navList(); if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_CREATE, ctx.assetType, ctx.session)) { navList.push('Add ' + type, 'btn-add-new', util.buildUrl('create')); navList.push('Statistics', 'btn-stats', '/asts/' + type + '/statistics'); } //navList.push('Configuration', 'icon-dashboard', util.buildUrl('configuration')); return navList.list(); };
var importProcessLeftNav = function(page, util) { var navList = util.navList(); if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_CREATE, ctx.assetType, ctx.session)) { navList.push('Add ', 'btn-add-new', util.buildUrl('create')); navList.push('Import Process', 'btn-import', util.buildUrl('import_process')); navList.push('Audit Log', 'btn-overview', util.buildUrl('log')); } return navList.list(); };
pageDecorators.recentAssetsOfActivatedTypes = function(ctx, page) { var app = require('rxt').app; var asset = require('rxt').asset; var assets = {}; var items = []; var assetsByType = []; var am; var type; var rxtDetails; var tenantAppResources = tenantApi.createTenantAwareAppResources(ctx.session); var tenantAssetResources; // Supporting cross tenant views ctx = tenantAppResources.context; types = app.getActivatedAssets(ctx.tenantId); var typeDetails; var ratingApi = require('/modules/rating-api.js').api; var q = page.assetMeta.q; var query = buildRecentAssetQuery(q); for (var index in types) { typeDetails = ctx.rxtManager.getRxtTypeDetails(types[index]); type = typeDetails.shortName; tenantAssetResources = tenantApi.createTenantAwareAssetResources(ctx.session, { type: type }); am = tenantAssetResources.am; // if (ctx.isAnonContext) { // am = asset.createAnonAssetManager(ctx.session, type, ctx.tenantId); // } else { // am = asset.createUserAssetManager(ctx.session, type); // } if (permissionsAPI.hasAssetPermission(permissionsAPI.ASSET_LIST, type, ctx.tenantId, ctx.username)) { if (query) { query = replaceNameQuery(query, ctx.rxtManager, type); query = replaceCategoryQuery(query, ctx.rxtManager, type); assets = am.recentAssets({ q: query }); } else { assets = am.recentAssets(); } if (assets.length > 0) { //Add subscription details if this is not an anon context if (!ctx.isAnonContext) { addSubscriptionDetails(assets, am, ctx.session); } ratingApi.addRatings(assets, am, ctx.tenantId, ctx.username); items = items.concat(assets); assetsByType.push({ assets: assets, rxt: typeDetails }); } } } page.recentAssets = items; page.recentAssetsByType = assetsByType; };
var buildListLeftNav = function(page, util) { var navList = util.navList(); if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_CREATE, ctx.assetType, ctx.session)) { navList.push('Add ', 'btn-add-new', util.buildUrl('create')); navList.push('Import Process', 'btn-import', util.buildUrl('import_process')); navList.push('Audit Log', 'btn-auditlog', util.buildUrl('log')); } //navList.push('Configuration', 'icon-dashboard', util.buildUrl('configuration')); return navList.list(); };
var buildDefaultLeftNav = function(page, util) { var id = page.assets.id; var path = page.assets.path; var navList = util.navList(); var isLCViewEnabled = ctx.rxtManager.isLifecycleViewEnabled(ctx.assetType); var user = require('store').server.current(session); var username = user? user.username : null; navList.push('Overview', 'btn-overview', util.buildUrl('details') + '/' + id); if ((isLCViewEnabled) && (isAssetWithLifecycle(page.assets))) { if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_LIFECYCLE, ctx.assetType, ctx.session)) { navList.push('Life Cycle', 'btn-lifecycle', util.buildUrl('lifecycle') + '/' + id); } } if (permissionAPI.hasActionPermissionforPath(path, 'delete', ctx.session)) { navList.push('Delete', 'btn-delete', util.buildUrl('delete') + '/' + id); } return navList.list(); };
var buildDefaultLeftNav = function(page, util) { var id = page.assets.id; var path = page.assets.path; var navList = util.navList(); var isLCViewEnabled = ctx.rxtManager.isLifecycleViewEnabled(ctx.assetType); var user = require('store').server.current(session); var username = user? user.username : null; if (permissionAPI.hasActionPermissionforPath(path, 'write', ctx.session) && permissionAPI.hasAssetPagePermission(type,'update',user.tenantId,username)) { navList.push('Edit', 'btn-edit', util.buildUrl('update') + '/' + id); } if (permissionAPI.hasActionPermissionforPath(path, 'delete', ctx.session)) { navList.push('Delete', 'btn-delete', util.buildUrl('delete') + '/' + id); } //Only render the view if the asset has a if ((isLCViewEnabled) && (isAssetWithLifecycle(page.assets))) { if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_LIFECYCLE, ctx.assetType, ctx.session)) { navList.push('Lifecycle', 'btn-lifecycle', util.buildUrl('lifecycle') + '/' + id); } } if (permissionAPI.hasActionPermissionforPath(path, 'write', ctx.session) && permissionAPI.hasAssetPagePermission(type, 'update', user.tenantId, username) && ctx.rxtManager.getVersionAttribute(type)) { navList.push('Version', 'btn-copy', util.buildUrl('copy') + '/' + id); } return navList.list(); };
var buildDefaultLeftNav = function(page, util) { var id = page.assets.id; var path = page.assets.path; var navList = util.navList(); var isLCViewEnabled = ctx.rxtManager.isLifecycleViewEnabled(ctx.assetType); var user = require('store').server.current(session); var username = user? user.username : null; //navList.push('Overview', 'btn-overview', util.buildUrl('details') + '/' + id); if (permissionAPI.hasActionPermissionforPath(path, 'write', ctx.session) && permissionAPI.hasAssetPagePermission(type,'update',user.tenantId,username)) { navList.push('Edit', 'btn-edit', util.buildUrl('update') + '/' + id); } //Only render the view if the asset has a if ((isLCViewEnabled) && (isAssetWithLifecycle(page.assets))) { if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_LIFECYCLE, ctx.assetType, ctx.session)) { navList.push('Lifecycle', 'btn-lifecycle', util.buildUrl('lifecycle') + '/' + id); } } if (permissionAPI.hasActionPermissionforPath(path, 'delete', ctx.session)) { navList.push('Delete', 'btn-delete', util.buildUrl('delete') + '/' + id); } importPackage(org.wso2.carbon.pc.core.assets); var process = new Process(page.processName, page.processVersion, user.username); var deploymentID = process.getProcessDeployedID(); if(deploymentID != null) { page.processDeploymentID = deploymentID; navList.push('Config Analytics', 'btn-configAnalytics', util.buildUrl('config_analytics') + '/' + id); } navList.push('Audit Log', 'btn-auditlog', util.buildUrl('log') + '/' + id); //if (permissionAPI.hasActionPermissionforPath(path, 'write', ctx.session) && permissionAPI.hasAssetPagePermission(type,'update',user.tenantId,username)) { //navList.push('Version', 'btn-copy', util.buildUrl('copy') + '/' + id); //} return navList.list(); };
create: function(page) { var tables = page.assets.tables; var providerAttribute = 'provider'; //TODO: Provider should be picked up from the provider attribute var processTextPathAttribute = 'processtextpath'; var bpmnPathAttribute = 'bpmnpath'; for (var index in tables) { var table = tables[index]; if ((table.name == 'overview') && (table.fields.hasOwnProperty(providerAttribute))) { table.fields[providerAttribute].value = page.cuser.cleanedUsername; } if ((table.name == 'properties') && (table.fields.hasOwnProperty(processTextPathAttribute))) { var processTextField = table.fields[processTextPathAttribute].value; var bpmnPathField = table.fields[bpmnPathAttribute].value; page.isProcessTextAvailable = false; page.isBpmnAvailable = false; if(processTextField == 'NA') { page.isProcessTextAvailable = false; } else if(processTextField != null) { page.isProcessTextAvailable = true; } if(bpmnPathField == 'NA') { page.isBpmnAvailable = false; } else if(processTextField != null) { page.isBpmnAvailable = true; } } var resourcePath = page.assets.path; var permissionAPI = require('rxt').permissions; if (permissionAPI.hasActionPermissionforPath(resourcePath , 'write', ctx.session)){ page.permission=true; } else{ page.permission=false; } } },
Handlebars.registerHelper('hasAppPermission',function(context,options){ var rxtAPI = require('rxt'); var key = options.hash.key; var type = options.hash.type; var tenantId = options.hash.tenantId; var username = options.hash.username; var isAuthorized =options.hash.auth ? options.hash.auth : false; var missingParams = (!key) || (!tenantId) || (!username); //If the user is forcing the view to render if(isAuthorized){ return options.fn(context); } if(missingParams){ log.error('[hasAppPermission] Helper not executed since insufficient number of parameters were provided (required parameters: key,type,tenantId,username)'); return ; } isAuthorized = rxtAPI.permissions.hasAppPermission(key,tenantId,username); if(isAuthorized){ return options.fn(context); } log.error('[hasAppPermission] User ' + username + ' does not have permission: ' + key + ' to see ui area'); return ; });
pageDecorators.recentAssetsOfActivatedTypes = function(ctx, page) { var app = require('rxt').app; var asset = require('rxt').asset; var permissions = require('rxt').permissions; var assetAPI = require('/modules/asset-api.js').api; var assets = {}; var items = []; var pcItems = []; var pcTypeDetails = []; var pcAssets = []; var assetsByType = []; var am; var type; var rxtDetails; var assetMap = {}; var bookmarkable; var tenantAppResources = tenantApi.createTenantAwareAppResources(ctx.session); var tenantAssetResources; // Supporting cross tenant views ctx = tenantAppResources.context; types = app.getUIActivatedAssets(ctx.tenantId); var typeDetails; var ratingApi = require('/modules/rating-api.js').api; var q = page.assetMeta.q; var query = buildRecentAssetQuery(q); var username = ctx.username || null; var tenantId = ctx.tenantId; var canBookmark = function(type) { return permissions.hasAssetPermission(permissions.ASSET_BOOKMARK, type, tenantId, username); }; var bookmarkPerms = {}; if (query) { items = asset.advanceSearch(query, null, session, ctx.tenantId)||[]; ratingApi.addRatings(items, am, ctx.tenantId, ctx.username); assetMap = {}; var template; //Sort the results by type items.forEach(function(item){ var type = item.type; if(!assetMap[type]){ assetMap[type] = []; } bookmarkable = bookmarkPerms[type]; if (bookmarkable === undefined) { bookmarkable = (bookmarkPerms[type] = canBookmark(type)); } item.bookmarkable = bookmarkable; assetMap[type].push(item); }); //Collect the asset result set along with the rxt definition for(var key in assetMap){ template = ctx.rxtManager.getRxtTypeDetails(key); assetsByType.push({ assets:assetMap[key], rxt:template }); } } else { for (var index in types) { typeDetails = ctx.rxtManager.getRxtTypeDetails(types[index]); type = typeDetails.shortName; tenantAssetResources = tenantApi.createTenantAwareAssetResources(ctx.session, { type: type }); bookmarkable = bookmarkPerms[type]; if(bookmarkable === undefined) { bookmarkable = (bookmarkPerms[type] = canBookmark(type)); } am = tenantAssetResources.am; if (permissionsAPI.hasAssetPermission(permissionsAPI.ASSET_LIST, type, ctx.tenantId, ctx.username)) { assets = am.recentAssets(); if (assets.length > 0) { //Add subscription details if this is not an anon context if (!ctx.isAnonContext) { addSubscriptionDetails(assets, am, ctx.session, bookmarkable); } ratingApi.addRatings(assets, am, ctx.tenantId, ctx.username); items = items.concat(assets); assetsByType.push({ assets: assets, rxt: typeDetails }); } } } } // Display only process type assets for recent assets for(var i = 0; i <items.length; i++){ if(items[i].type == "process"){ log.debug("Found Process type assets"+ i); var pcCurrentType =ctx.rxtManager.getRxtTypeDetails(items[i].type); pcTypeDetails = pcCurrentType ; pcItems.push(items[i]); } } pcAssets.push({ assets:pcItems, rxt:pcTypeDetails }); page.recentAssets = pcItems; page.recentAssetsByType = pcAssets; };
details: function(page) { var tables = page.assets.tables; //TODO:This cannot be hardcoded var timestampAttribute = 'createdtime'; //ctx.rxtManager.getTimeStampAttribute(this.assetType); for (var index in tables) { var table = tables[index]; if ((table.name == 'overview') && (table.fields.hasOwnProperty(timestampAttribute))) { var value = table.fields[timestampAttribute].value || ''; var date = new Date(); date.setTime(value); table.fields[timestampAttribute].value = date.toUTCString(); } } var log = new Log(); var resourcePath = page.assets.path; if (log.isDebugEnabled()) { log.debug(resourcePath); } if (page.assets.tables[1].fields.processtextpath.value == "NA") { page.processTextAvaliable = false; } else { page.processTextAvaliable = true; } if (page.assets.tables[1].fields.bpmnid.value == "NA") { page.bpmnAvaliable = false; } else { page.bpmnAvaliable = true; } importPackage(org.wso2.carbon.pc.core); var ps = new ProcessStore(); var isDocumentAvailableStr = ps.isDocumentAvailable(resourcePath); var isDocumentAvailable = JSON.parse(isDocumentAvailableStr); if (isDocumentAvailable == true) { page.documentAvailable = true; } else { page.documentAvailable = false; } var conData = ps.getSucessorPredecessorSubprocessList(resourcePath); var conObject = JSON.parse(conData); if (log.isDebugEnabled()) { log.debug(conObject); } page.involveProcessList = conObject; if (log.isDebugEnabled()) { log.debug(page); } var flowchartPath = page.assets.tables[8].fields.path.value; if(flowchartPath != "NA"){ page.flowchartAvailable = true; page.flowchartPath = flowchartPath; }else{ page.flowchartAvailable = false; } var permissionAPI = require('rxt').permissions; if (permissionAPI.hasActionPermissionforPath(resourcePath , 'write', ctx.session)){ page.permission=true; } else{ page.permission=false; } var thumbnail = page.assets.tables[7].fields.thumbnail.value; if (thumbnail === "images_thumbnail") { page.customThumbnailAvailable = true; } else { page.customThumbnailAvailable = false; } var processName = page.assets.tables[0].fields.name.value; //tables[0].fields["Name"].value; var processVersion = page.assets.tables[0].fields.version.value; page.processName = processName; page.processVersion = processVersion; try { var processTags = ps.getProcessTags(processName, processVersion); var ps = new ProcessStore(); page.processTagsArray = processTags.split("###"); } catch (e) { log.error("Error in retrieving process tags. Exception:" + e); } importPackage(org.wso2.carbon.pc.analytics.core.generic.utils); page.DASAnalyticsEnabled = AnalyticsUtils.isDASAnalyticsActivated(); importPackage(org.wso2.carbon.pc.analytics.core.kpi.utils); page.DASAnalyticsConfigured = DASConfigurationUtils.isDASAnalyticsConfigured(processName, processVersion); if (page.DASAnalyticsConfigured) { var processVariablesJObArrStr = ps.getProcessVariablesList(resourcePath); var processVariablesJObArr = JSON.parse(processVariablesJObArrStr); page.processVariableList = processVariablesJObArr; var streamAndReceiverInfo = JSON.parse(ps.getStreamAndReceiverInfo(resourcePath)); page.eventStreamName = streamAndReceiverInfo["eventStreamName"]; page.eventStreamVersion = streamAndReceiverInfo["eventStreamVersion"]; page.eventStreamDescription = streamAndReceiverInfo["eventStreamDescription"]; page.eventStreamNickName = streamAndReceiverInfo["eventStreamNickName"]; page.eventReceiverName = streamAndReceiverInfo["eventReceiverName"]; page.processDefinitionId = streamAndReceiverInfo["processDefinitionId"]; } },
var canBookmark = function(type) { return permissions.hasAssetPermission(permissions.ASSET_BOOKMARK, type, tenantId, username); };
pageDecorators.recentAssetsOfActivatedTypes = function(ctx, page) { var app = require('rxt').app; var asset = require('rxt').asset; var permissions = require('rxt').permissions; var assetAPI = require('/modules/asset-api.js').api; var assets = {}; var items = []; var assetsByType = []; var am; var type; var rxtDetails; var assetMap = {}; var bookmarkable; var tenantAppResources = tenantApi.createTenantAwareAppResources(ctx.session); var tenantAssetResources; // Supporting cross tenant views ctx = tenantAppResources.context; types = app.getUIActivatedAssets(ctx.tenantId); var typeDetails; var ratingApi = require('/modules/rating-api.js').api; var q = page.assetMeta.q; var query = buildRecentAssetQuery(q); var username = ctx.username || null; var tenantId = ctx.tenantId; var canBookmark = function(type) { return permissions.hasAssetPermission(permissions.ASSET_BOOKMARK, type, tenantId, username); }; var bookmarkPerms = {}; // check whether the given query is a mediaType search query. Due to REGISTRY-3379. // case 1 : Search query provided with mediaType search if(isMediaType(query,types)){ var paging = {'start': 0, 'count': 7, 'sortOrder': 'desc', 'sortBy': 'createdDate', 'paginationLimit': 7 }; tenantAssetResources = tenantApi.createTenantAwareAssetResources(ctx.session, { type: query.mediaType }); assets = tenantAssetResources.am.advanceSearch(query, paging); page.recentAssets = []; page.recentAssetsByType = []; typeDetails = ctx.rxtManager.getRxtTypeDetails(query.mediaType); page.recentAssetsByType.push({ assets:assets, rxt:typeDetails }); return; } // case 2 : Search query provided without a mediaType search for (var index in types) { typeDetails = ctx.rxtManager.getRxtTypeDetails(types[index]); type = typeDetails.shortName; tenantAssetResources = tenantApi.createTenantAwareAssetResources(ctx.session, { type: type }); bookmarkable = bookmarkPerms[type]; if(bookmarkable === undefined) { bookmarkable = (bookmarkPerms[type] = canBookmark(type)); } am = tenantAssetResources.am; if (permissionsAPI.hasAssetPermission(permissionsAPI.ASSET_LIST, type, ctx.tenantId, ctx.username)) { if (query) { var paging = {'start': 0, 'count': 7, 'sortOrder': 'desc', 'sortBy': 'createdDate', 'paginationLimit': 7 }; assets = am.advanceSearch(query, paging); } else { assets = am.recentAssets(); } if (assets.length > 0) { //Add subscription details if this is not an anon context if (!ctx.isAnonContext) { addSubscriptionDetails(assets, am, ctx.session, bookmarkable); } ratingApi.addRatings(assets, am, ctx.tenantId, ctx.username); items = items.concat(assets); assetsByType.push({ assets: assets, rxt: typeDetails }); } } } page.recentAssets = items; page.recentAssetsByType = assetsByType; };
update: function(page) { var tables = page.assets.tables; var timestampAttribute = 'createdtime'; var processTextPathAttribute = 'processtextpath'; var bpmnPathAttribute = 'bpmnpath'; var documentPathNameAttribute = 'name'; var flowchartPathAttribute = 'path'; for (var index in tables) { var table = tables[index]; if ((table.name == 'overview') && (table.fields.hasOwnProperty(timestampAttribute))) { var value = table.fields[timestampAttribute].value; var date = new Date(); date.setTime(value); table.fields[timestampAttribute].value = date.toUTCString(); } if ((table.name == 'properties') && (table.fields.hasOwnProperty(processTextPathAttribute))) { var processTextField = table.fields[processTextPathAttribute].value; var bpmnPathField = table.fields[bpmnPathAttribute].value; page.isProcessTextAvailable = false; page.isBpmnAvailable = false; if(processTextField == 'NA') { page.isProcessTextAvailable = false; } else if(processTextField != null) { page.isProcessTextAvailable = true; } if(bpmnPathField == 'NA') { page.isBpmnAvailable = false; } else if(processTextField != null) { page.isBpmnAvailable = true; } } if((table.name == 'document') && (table.fields["path"].hasOwnProperty("value"))) { var documetName = table.fields["path"].value; if(documetName == null) { page.isDocumentAvailable = false; } else { page.isDocumentAvailable = true; } } if((table.name == 'flowchart') && (table.fields.hasOwnProperty(flowchartPathAttribute))) { var flowchartPath = table.fields[flowchartPathAttribute].value; if(flowchartPath == 'NA') { page.isFlowChartAvailable = false; } else { page.isFlowChartAvailable = true; page.flowchartPath = flowchartPath; } } } var thumbnail = page.assets.tables[7].fields.thumbnail.value; if (thumbnail === "images_thumbnail") { page.customThumbnailAvailable = true; } else { page.customThumbnailAvailable = false; } importPackage(org.wso2.carbon.pc.core); var ps = new ProcessStore(); var resourcePath = page.assets.path; var conData = ps.getSucessorPredecessorSubprocessList(resourcePath); var conObject = JSON.parse(conData); if (log.isDebugEnabled()) { log.debug(conObject); } page.involveProcessList = conObject; if (log.isDebugEnabled()) { log.debug(page); } var permissionAPI = require('rxt').permissions; if (permissionAPI.hasActionPermissionforPath(resourcePath , 'write', ctx.session)){ page.permission=true; } else{ page.permission=false; } page.isUpdateView = true; },
var isLCActionsPermitted = function(resourcePath, session) { //log.info('###Checking permissions ###'); var permissionAPI = require('rxt').permissions; var isAuthorized = permissionAPI.hasActionPermissionforPath(resourcePath, 'authorize', session); return isAuthorized; };