fleet/website/api/controllers/view-policy-library.js

56 lines
1.5 KiB
JavaScript
Raw Normal View History

module.exports = {
friendlyName: 'View policy library',
description: 'Display "Policy library" page.',
exits: {
success: {
viewTemplatePath: 'pages/policy-library'
},
badConfig: { responseType: 'badConfig' },
},
fn: async function () {
if (!_.isObject(sails.config.builtStaticContent) || !_.isArray(sails.config.builtStaticContent.policies)) {
throw {badConfig: 'builtStaticContent.policies'};
}
let policies = _.where(sails.config.builtStaticContent.policies, {kind: 'policy'});
let macOsPolicies = _.filter(policies, (policy)=>{
let platformsForThisPolicy = policy.platform.split(', ');
return _.includes(platformsForThisPolicy, 'darwin');
});
let windowsPolicies = _.filter(policies, (policy)=>{
let platformsForThisPolicy = policy.platform.split(', ');
return _.includes(platformsForThisPolicy, 'windows');
});
let linuxPolicies = _.filter(policies, (policy)=>{
let platformsForThisPolicy = policy.platform.split(', ');
return _.includes(platformsForThisPolicy, 'linux');
});
let chromePolicies = _.filter(policies, (policy)=>{
let platformsForThisPolicy = policy.platform.split(', ');
return _.includes(platformsForThisPolicy, 'chrome');
});
// Respond with view.
return {
macOsPolicies,
windowsPolicies,
linuxPolicies,
chromePolicies,
algoliaPublicKey: sails.config.custom.algoliaPublicKey,
};
}
};