Fonctions personnalisées

Les fonctions personnalisées permettent d'étendre LL::NG, elles peuvent être utilisées dans les règles, les en-têtes et les données à rejouer dans les formulaires.

Écrire une librairie de fonctions personnalisées

Create your Perl module with custom functions. You can name your module as you want, for example SSOExtensions.pm:

vi /root/SSOExtensions.pm
package SSOExtensions;
 
sub function1 {
  my $url = shift;
  my $param = shift;
 
  # Le joli code ici :
 
  return $param
}
 
1;

Le premier paramètre passé à la fonction personnalisée est l'URL demandée, c'est à dire

  • l'URL complète du portail si la fonction personnalisée est appelée par le portail (i.e. https://auth.example.com/)
  • l'URL absolue si elle est appelée par un agent (e.g. /admin/index.php?param=foo).

Importer les fonctions personnalisées dans LemonLDAP::NG

Declarer le module dans la configuration d'Apache

Le module doit être chargé par Apache (par exemple après le chargement de l'agent) :

# Perl environment
PerlRequire Lemonldap::NG::Handler
PerlRequire /root/SSOExtensions.pm
PerlOptions +GlobalRequest

Declarer les fonctions personnalisées

Aller dans le manager, Paramètres généraux » Paramètres avancés » Fonctions personnalisées et indiquer :

SSOExtensions::function1

Si la fonction n'est pas compatible avec la cage saine, il faut désactiver la mise en cage.

Les utiliser

Les fonctions peuvent être utilisées dans une macro, un en-tête ou une règle d'accès, par exemple:

Custom-Header => function1($uid)