fix: normaliser les URLs des connecteurs web
This commit is contained in:
24
shared/webPortalUrl.ts
Normal file
24
shared/webPortalUrl.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
/**
|
||||
* Ajoute HTTPS aux adresses de portail saisies sous forme de domaine simple.
|
||||
* Les protocoles explicites sont conservés afin que la validation puisse refuser
|
||||
* proprement ceux qui ne sont pas HTTP(S).
|
||||
*/
|
||||
export function normalizeWebPortalUrl(value: string): string {
|
||||
const trimmed = value.trim();
|
||||
if (!trimmed) return "";
|
||||
if (trimmed.startsWith("//")) return `https:${trimmed}`;
|
||||
if (/^[a-z][a-z\d+.-]*:\/\//i.test(trimmed) || /^(?:mailto|tel|data):/i.test(trimmed)) {
|
||||
return trimmed;
|
||||
}
|
||||
return `https://${trimmed}`;
|
||||
}
|
||||
|
||||
/** Vérifie qu’une URL de portail est une adresse HTTP(S) avec un hôte. */
|
||||
export function isValidWebPortalUrl(value: string): boolean {
|
||||
try {
|
||||
const url = new URL(value);
|
||||
return (url.protocol === "https:" || url.protocol === "http:") && Boolean(url.hostname);
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user