fleet/website/config/policies.js
Eric be14f7c10d
Website: Add webinar article template page. (#43627)
Changes:
- Added support for a new article category: `webinar`.
- Added a template page for webinar articles.
- Added an additional route for webinar articles that users are taken to
to watch the webinar recording.
- Added `deliver-webinar-access-request`, an action that updates CRM
records when users fill out the form on the webinar template page.
- Updated the accepted `intentSignal` values in the
create-historical-event helper.
- Added an article for the "Beyond the hype, practical AI for device
management" webinar.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Public webinar pages (/webinars/:slug and /watch) with optional
embedded video and a new page template, script, and styles.
* Sidebar signup form (first name, last name, work email) with prefill
for signed-in users and improved scroll behavior.
* POST API to request webinar access: validates email domain, records a
webinar-request event, triggers background CRM sync, and returns a watch
view on success.
* Static-site build now recognizes webinar articles and enforces
embedded-video URL validation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Copilot <[email protected]>
2026-04-16 09:14:28 -05:00

81 lines
2.6 KiB
JavaScript
Vendored

/**
* Policy Mappings
* (sails.config.policies)
*
* Policies are simple functions which run **before** your actions.
*
* For more information on configuring policies, check out:
* https://sailsjs.com/docs/concepts/policies
*/
module.exports.policies = {
'*': 'is-logged-in',
'admin/*': 'is-super-admin',
'query-generator/*': 'has-query-generator-access',
'microsoft-proxy/*': 'is-cloud-customer',
// Bypass the `is-logged-in` policy for:
'entrance/*': true,
'webhooks/*': true,
'account/logout': true,
'view-homepage-or-redirect': true,
'view-faq': true,
'view-contact': true,
'view-pricing': true,
'legal/view-terms': true,
'legal/view-privacy': true,
'deliver-contact-form-message': true,
'docs/*': true,
'handbook/*': true,
'download-sitemap': true,
'view-transparency': true,
'view-press-kit': true,
'deliver-demo-signup': true,
'articles/*': true,
'reports/*': true,
'try-fleet/view-sandbox-teleporter-or-redirect-because-expired-or-waitlist': true,
'create-or-update-one-newsletter-subscription': true,
'unsubscribe-from-all-newsletters': true,
'unsubscribe-from-marketing-emails': true,
'view-connect-vanta': true,
'view-vanta-authorization': true,
'create-vanta-authorization-request': true,
'view-device-management': true,
'deliver-mdm-beta-signup': true,
'deliver-apple-csr': true,
'download-rss-feed': true,
'view-observability': true,
'view-software-management': true,
'deliver-mdm-demo-email': true,
'view-support': true,
'view-integrations': true,
'deliver-talk-to-us-form-submission': true,
'get-human-interpretation-from-osquery-sql': true,
'customers/view-new-license': true,
'redirect-vanta-authorization-request': true,
'view-deals': true,
'deliver-deal-registration-submission': true,
'get-est-device-certificate': true,
'view-customers': true,
'view-meetups': true,
'view-fleetctl-preview': true,
'get-llm-generated-configuration-profile': true,
'account/update-start-cta-visibility': true,
'microsoft-proxy/receive-redirect-from-microsoft': true,
'view-configuration-builder': true,
'android-proxy/*': true,
'microsoft-proxy/view-remediate': true,
'microsoft-proxy/view-turn-on-mdm': true,
'view-okta-conditional-access-error': true,
'view-fast-track': true,
'vpp-proxy/*': true,
'deliver-application-submission': true,
'landing-pages/*': true,
'deliver-gitops-workshop-request': true,
'view-infrastructure-as-code': true,
'deliver-whitepaper-download-request': true,
'deliver-partner-registration-submission': true,
'view-partners': true,
'deliver-webinar-access-request': true,
};