fix: surface vuln_scanning across licence, staff and pricing UI
The catalogue row alone was not enough; the feature was invisible in three places and mislabelled in a fourth. PlanConfigurator rendered every key that was not "console" as "Single sign-on", so the staff checkbox granting vulnerability scanning was labelled single sign-on. Feature wording was duplicated between the staff configurator and the purchase form and the copies had drifted, so it now lives in adminsite/lib/features.ts and both read from it. The customer licence panel showed raw keys; it now labels them. Pricing gains a comparison row. The add-on block with a monthly price is deliberately NOT added: that is a pricing decision, and the Paddle price IDs for the new catalogue rows have to be pasted in before it can be sold anyway.
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
/* Human wording for licence feature keys.
|
||||
*
|
||||
* One place, because there were two and they disagreed: the staff configurator
|
||||
* rendered every key that was not "console" as "Single sign-on", so adding a
|
||||
* third feature silently mislabelled the checkbox that grants it. A map with a
|
||||
* fallback degrades to the raw key, which is ugly but never wrong.
|
||||
*
|
||||
* Keys must match shared/license/license.go. */
|
||||
export const FEATURE_LABEL: Record<string, string> = {
|
||||
console: "Browser console",
|
||||
oidc: "Single sign-on",
|
||||
vuln_scanning: "Vulnerability scanning",
|
||||
};
|
||||
|
||||
export const FEATURE_DESC: Record<string, string> = {
|
||||
console: "In-browser SSH, RDP and VNC sessions",
|
||||
oidc: "OIDC sign-in for your whole team",
|
||||
vuln_scanning: "Package inventory matched against distribution security advisories",
|
||||
};
|
||||
|
||||
export function featureLabel(key: string): string {
|
||||
return FEATURE_LABEL[key] ?? key;
|
||||
}
|
||||
|
||||
export function featureDesc(key: string): string {
|
||||
return FEATURE_DESC[key] ?? "";
|
||||
}
|
||||
Reference in New Issue
Block a user