Aller au contenu principal
Version: Next

WA SET URL FILTERS

WA SET URL FILTERS ( {* ;} objet ; tabFiltres ; tabAutorisRefus )

ParamètreTypeDescription
*OpérateurSi spécifié, objet est un nom d'objet (chaîne) Si omis, objet est une variable
objetanyNom d'objet (si * est spécifié) ou Variable (si * est omis)
tabFiltresText arrayTableau de filtres
tabAutorisRefusBoolean arrayTableau autoriser-refuser

Cette commande n'est pas thread-safe, elle ne peut pas être utilisée dans du code préemptif.

Description

La commande WA SET URL FILTERS permet de mettre en place un ou plusieurs filtre(s) pour la zone Web désignée par les paramètres * et objet.

Avant le chargement de toute page, 4D consulte la liste des filtres afin de vérifier si l’URL cible est autorisé ou non. L’évaluation de l’URL est basée sur le contenu des tableaux tabFiltres et tabAutorisRefus s'ils ont été définis.

Si l’URL demandé n’est pas autorisé, il n’est pas chargé et l’événement formulaire On URL Filtering est généré (cf. commande Form event code).

Les tableaux tabFiltres et tabAutorisRefus doivent être synchronisés.

  • Chaque ligne du tableau tabFiltres doit contenir un URL devant être filtré. Vous pouvez utiliser le * comme joker de remplacement pour un ou plusieurs caractère(s).
  • Chaque ligne correspondante dans le tableau tabAutorisRefus doit contenur un booléen indiquant si l’URL doit être autorisé (Vrai) ou refusé (Faux).

En cas de contradiction au niveau des paramétrages (autorisation et refus d’un même URL), le paramétrage pris en compte est le dernier.

Pour désactiver le filtrage des URLs, appelez la commande en lui passant des tableaux vides ou en passant respectivement les valeurs "*" et Vrai dans la dernière ligne des tableaux tabFiltres et tabAutorisRefus.

Une fois la commande exécutée, les filtres deviennent une propriété de la zone Web. Si les tableaux tabFiltres et tabAutorisRefus sont supprimés ou réinitialisés, les filtres restent actifs tant que la commande n’a pas été exécutée à nouveau. Pour connaître les filtres actifs pour une zone, vous devez utiliser la commande WA GET URL FILTERS.

Important : Le filtrage des URLs effectué par cette commande s’applique à toute demande de changement de l'URL principal de la page, qu'elle provienne de l'utilisateur, du code javascript ou du code 4D, à l'exception de la commande WA OPEN URL et des URLs commençant par "javascript:".

Exemple 1

Vous souhaitez interdire l’accès à tous les sites web .org, .net et .fr :

 ARRAY TEXT($filters;0)
 ARRAY BOOLEAN($AllowDeny;0)
 APPEND TO ARRAY($filters;"*.org")
 APPEND TO ARRAY($AllowDeny;False)
 APPEND TO ARRAY($filters;"*.net")
 APPEND TO ARRAY($AllowDeny;False)
 APPEND TO ARRAY($filters;"*.fr")
 APPEND TO ARRAY($AllowDeny;False)
 WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)

Exemple 2

Vous souhaitez interdire l’accès à tous les sites web sauf les sites russes (.ru) :

 ARRAY TEXT($filters;0)
 ARRAY BOOLEAN($AllowDeny;0)
 APPEND TO ARRAY($filters;"*") //Tout sélectionner
 APPEND TO ARRAY($AllowDeny;False) //Tout interdire
 APPEND TO ARRAY($filters;"www.*.ru") //Sélectionner *.ru
 APPEND TO ARRAY($AllowDeny;True) //Autoriser
 WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)

Exemple 3

Vous souhaitez donner accès aux sites Web 4D uniquement (.com, .fr, .es, etc.) :

 ARRAY TEXT($filters;0)
 ARRAY BOOLEAN($AllowDeny;0)
 APPEND TO ARRAY($filters;"*") //Tout sélectionner
 APPEND TO ARRAY($AllowDeny;False) //Tout interdire
 APPEND TO ARRAY($filters;"www.4D.*") //Sélectionner 4d.fr, 4d.com...
 APPEND TO ARRAY($AllowDeny;True) //Autoriser
 WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)

Exemple 4

Vous souhaitez autoriser l’accès local à la documentation uniquement (située dans le dossier C://doc) :

 ARRAY TEXT($filters;0)
 ARRAY BOOLEAN($AllowDeny;0)
 APPEND TO ARRAY($filters;"*") //Tout sélectionner
 APPEND TO ARRAY($AllowDeny;False) //Tout interdire
 APPEND TO ARRAY($filters;"file://C:/doc/*") //Sélectionner le chemin file:// autorisé
 APPEND TO ARRAY($AllowDeny;True)->Autoriser
 WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)

Exemple 5

Vous souhaitez autoriser tous les sites sauf un, par exemple celui d’Elcaro :

 ARRAY TEXT($filters;0)
 ARRAY BOOLEAN($AllowDeny;0)
 APPEND TO ARRAY($filters;"*")
 APPEND TO ARRAY($AllowDeny;True) //Tout autoriser
 APPEND TO ARRAY($filters;"*elcaro*") //Interdire tout ce qui contient elcaro
 APPEND TO ARRAY($AllowDeny;False)
 WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)

Exemple 6

Vous souhaitez interdire des adresses IP spécifiques :

 ARRAY TEXT($filters;0)
 ARRAY BOOLEAN($AllowDeny;0)
 APPEND TO ARRAY($filters;"*") //Tout sélectionner
 APPEND TO ARRAY($AllowDeny;True) //Tout autoriser
 APPEND TO ARRAY($filters;"86.83.*") //Sélectionner les IP débutant par 86.83.
 APPEND TO ARRAY($AllowDeny;False) //Interdire
 APPEND TO ARRAY($filters;"86.1*") //Sélectionner les IP débutant par 86.1 (86.10, 86.135 etc.)
 APPEND TO ARRAY($AllowDeny;False) //Interdire
  //A noter que l’adresse IP d’un domaine peut varier
 WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)

Voir aussi

WA GET URL FILTERS
WA SET EXTERNAL LINKS FILTERS