mirror of
https://github.com/fleetdm/fleet
synced 2026-05-01 10:27:35 +00:00
This pull request relies on the `mdm-gen-cert` command from https://github.com/fleetdm/fleet/pull/8884. Closes: https://github.com/fleetdm/fleet/issues/8223 Changes: - Updated the deploy Fleet website workflow to: - Add Go as a dependency - Build the mdm-gen-cert binary in `/website/.tools/` - add the `/.tools/` folder to the Heroku app - Added `deliver-apple-csr.js` - an API that: - can be called by making a `POST` request to `/api/v1/deliver-apple-csr` - accepts `csr` as an input - runs the `mdm-gen-cert` command with the `csr` set as an environment variable - returns an `invalidEmailDomain` response if the user's email domain is in the array of banned email domains. - saves the users organization and email address to the website's database - Sends an email to the requesting user's email address with the signed CSR attached as a text file named `apple-apns-request.txt` - Posts a message to a channel in the Fleet Slack. - Added a new model: `CertificateSigningRequests` that contains two required attributes: `emailAddress` and `organization` - Added a new email template `email-signed-csr-for-apns` - Updated routes, policies, eslintrc, and rebuilt cloud-sdk Before this can be merged, we will need to: - [x] Add new config variables in Heroku - [x] `sails.config.custom.mdmVendorCertPem` - [x] `sails.config.custom.mdmVendorKeyPem` - [x] `sails.config.custom.mdmVendorKeyPassphrase` - [x] `sails.config.custom.slackWebhookUrlForMDMSignups` - [x] Add the `CertificateSigningRequests` model to the website's database
60 lines
1.3 KiB
JavaScript
Vendored
60 lines
1.3 KiB
JavaScript
Vendored
module.exports = {
|
|
|
|
|
|
friendlyName: 'View email templates',
|
|
|
|
|
|
description: 'Display "Email templates" page.',
|
|
|
|
|
|
exits: {
|
|
|
|
success: {
|
|
viewTemplatePath: 'pages/admin/email-templates'
|
|
}
|
|
|
|
},
|
|
|
|
|
|
fn: async function () {
|
|
|
|
|
|
var path = require('path');
|
|
|
|
// Sniff for top level email templates
|
|
let templatePaths = await sails.helpers.fs.ls.with({
|
|
dir: path.join(sails.config.paths.views, 'emails/'),
|
|
depth: 1,
|
|
includeDirs: false,
|
|
includeSymlinks: false,
|
|
});
|
|
|
|
let markdownEmailPaths = await sails.helpers.fs.ls.with({
|
|
dir: path.join(sails.config.paths.views, 'emails/newsletter'),
|
|
depth: 99,
|
|
includeDirs: false,
|
|
includeSymlinks: false,
|
|
});
|
|
|
|
markdownEmailPaths = markdownEmailPaths.map((templatePath)=>{
|
|
let relativePath = path.relative(path.join(sails.config.paths.views, 'emails/'), templatePath);
|
|
let extension = path.extname(relativePath);
|
|
return relativePath.split(extension)[0];
|
|
});
|
|
|
|
templatePaths = templatePaths.map((templatePath)=>{
|
|
let relativePath = path.relative(path.join(sails.config.paths.views, 'emails/'), templatePath);
|
|
let extension = path.extname(relativePath);
|
|
return relativePath.split(extension)[0];
|
|
});
|
|
|
|
// Respond with view.
|
|
return {
|
|
templatePaths,
|
|
markdownEmailPaths
|
|
};
|
|
|
|
}
|
|
|
|
|
|
};
|