# Services SOAP

Lemonldap::NG provides 2 SOAP servers :

- le portail
- le manager (à usage interne seulement)

## Services SOAP du portail

SOAP functions are not accessible by network by default. SOAP functions are protected by Apache, you can change this in Apache portal configuration:

        # Gestion des fonctions SOAP functions pour la gestion des sessions (désactivée par défaut)
        <Location /index.pl/adminSessions>
            Order deny,allow
            Allow from all
        </Location>

        # Fonctions SOAP pour l'accès aux sessions (désactivées par défaut)
        <Location /index.pl/sessions>
            Order deny,allow
            Allow from all
        </Location>

        # Fonctions SOAP pour accéder à la configuration (désactivées par défaut)
        <Location /index.pl/config>
            Order deny,allow
            Allow from all
        </Location>

        # Fonctions SOAP pour insérer des notifications (désactivées par défaut)
        <Location /index.pl/notification>
            Order deny,allow
            Allow from all
        </Location>

You can create a SOAP only portal by setting “soapOnly = 1” in lemonldap-ng.ini (section PORTAL)

- Fonctions en lecture seule (chemins index.pl/sessions ou index.pl/adminSessions) :
  - getCookies(user,password) : système d'authentification. Retourne nom(s) et valeur(s) du(des) cookie(s)
  - getAttributes(cookieValue) : retourne les éléments stockés dans la session
  - isAuthorizedURI(cookieValue,url) : vérifie si l'utilisateur est autorisé à accéder à la fonction
  - getMenuApplications(cookieValue): retourne une liste des applications autorisées (basée sur le calcul du menu)
- Fonctions en lecture/écriture (chemin index.pl/adminSessions) :
  - setAttributes(cookieValue,hashtable) : met à jour une session
  - newSession : crée une session (retourne les attributs)
  - deleteSession : efface une session
  - get_key_from_all_sessions : liste toutes les sessions et retourne les clefs demandées
- Fonction d'envoi de notifications (index.pl/notification):
  - newNotification(xmlString) : insert une notification pour un utilisateur (voir le système de notifications pour plus d'information)
- Fonction d'effacement de notification :
  - deleteNotification : efface une ou plusieurs notifications d'un utilisateur (voir le système des notifications)

Lorsqu'on utilise le backend de session SOAP, il est recommandé d'utiliser l'URL en lecture seule (http://portal/index.pl/sessions). Le chemin d'écriture de session n'est nécessaire que si on utilise un explorateur de session ou un portail distant

## Fichier WSDL

Lorsque le portail est installé, un fichier nommé portal.wsdl est créé. Il peut être mis à jour en utilisant le script buildPortalWSDL.