<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://doc2-fr.openflyers.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bbarbe</id>
		<title>Documentation de la solution web de gestion OpenFlyers version 2 - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://doc2-fr.openflyers.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bbarbe"/>
		<link rel="alternate" type="text/html" href="https://doc2-fr.openflyers.com/Sp%C3%A9cial:Contributions/Bbarbe"/>
		<updated>2026-04-30T18:13:35Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://doc2-fr.openflyers.com/index.php?title=Contr%C3%B4le-d%27identification-par-OpenFlyers-pour-un-logiciel-tiers&amp;diff=14196</id>
		<title>Contrôle d'identification par OpenFlyers pour un logiciel tiers</title>
		<link rel="alternate" type="text/html" href="https://doc2-fr.openflyers.com/index.php?title=Contr%C3%B4le-d%27identification-par-OpenFlyers-pour-un-logiciel-tiers&amp;diff=14196"/>
				<updated>2016-12-02T16:00:09Z</updated>
		
		<summary type="html">&lt;p&gt;Bbarbe : /* Présentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
Cette page explique comment vérifier qu'un couple identifiant/mot de passe envoyé, par vos propres scripts, est conforme à la base de données d'OpenFlyers.&lt;br /&gt;
&lt;br /&gt;
Le script retourne une valeur indiquant si la connexion, avec des identifiants données, a réussi et son état. Un cookie OpenFlyers est aussi retourné, permettant de gérer une session utilisateur sur votre site, en utilisant le compte utilisateur OpenFlyers de l'utilisateur connecté.&lt;br /&gt;
&lt;br /&gt;
=Comment ça marche=&lt;br /&gt;
Si votre plateforme OpenFlyers se situe sur le lien http://openflyers.com/nom-plateforme/, envoyez simplement une requête POST sur le lien http://openflyers.com/nom-plateforme/checkIdent.php avec comme paramètres les variables '''login''' et '''rawPassword'''.&lt;br /&gt;
&lt;br /&gt;
'''Attention:''' Les versions 2 d'OpenFlyers ou plus nécessitent un mot de passe chiffré en MD5 (cf. la ligne $postData commentée ci-dessous, dans le script PHP).&lt;br /&gt;
&lt;br /&gt;
==Valeurs de retour possibles==&lt;br /&gt;
Le script retourne un chiffre parmi les suivant :&lt;br /&gt;
*0: OK&lt;br /&gt;
*1: OK mais plusieurs profils disponibles. OpenFlyers sélectionne automatiquement le meilleur profil.&lt;br /&gt;
*2: Expiré mais autorisé&lt;br /&gt;
*3: Expiré mais autorisé, avec un profil expiré&lt;br /&gt;
*4: Abonnement expiré, refusé&lt;br /&gt;
*5: Mauvais identifiants, refusé&lt;br /&gt;
*6: IP ou identifiants bloqués, refusé&lt;br /&gt;
*7: Aucun identifiant donné, ils sont demandés&lt;br /&gt;
&lt;br /&gt;
Nous vous recommandons de considérer un code de retour entre 0 et 2 comme bon et mauvais entre 3 et 7.&lt;br /&gt;
&lt;br /&gt;
'''Attention:''' Vous devez filtrer les identifiants de connexion libres (sans droits) puisque pour OpenFlyers, ils correspondent à des accès autorisés !!!&lt;br /&gt;
&lt;br /&gt;
=JavaScript=&lt;br /&gt;
Si vous utilisez votre propre formulaire d'authentification, utilisez la fonction javascript submit_pwd() située dans \javascript\submitPwd.js .&lt;br /&gt;
&lt;br /&gt;
=Exemple de code PHP=&lt;br /&gt;
Voici un exemple de code PHP permettant d'envoyer une requête POST :&lt;br /&gt;
&amp;lt;php&amp;gt;function httpPostRequest($host, $path, $postData) { &lt;br /&gt;
  $result= &amp;quot;&amp;quot;; &lt;br /&gt;
&lt;br /&gt;
  $request = &amp;quot;POST $path HTTP/1.1\n&amp;quot;. &lt;br /&gt;
  &amp;quot;Host: $host\n&amp;quot;. &lt;br /&gt;
  (isset($referer) ? &amp;quot;Referer: $referer\n&amp;quot; : &amp;quot;&amp;quot;). &lt;br /&gt;
  &amp;quot;Content-type: Application/x-www-form-urlencoded\n&amp;quot;.&lt;br /&gt;
  &amp;quot;Content-length: &amp;quot;.strlen($postData).&amp;quot;\n&amp;quot;. &lt;br /&gt;
  &amp;quot;Connection: close\n\n&amp;quot;. &lt;br /&gt;
  $postData.&amp;quot;\n&amp;quot;; &lt;br /&gt;
  &lt;br /&gt;
  // Some debug informations:&lt;br /&gt;
  // print(&amp;quot;&amp;lt;pre&amp;gt;Request:\n&amp;quot;.htmlentities($request).&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;); &lt;br /&gt;
&lt;br /&gt;
  if ($fp = fsockopen($host, 80, $errno, $errstr, 3))&lt;br /&gt;
  // for PHP release &amp;lt; 5.3.0, use the following syntax:&lt;br /&gt;
  // if ($fp = fsockopen($host, 80, &amp;amp;$errno, &amp;amp;$errstr, 3))&lt;br /&gt;
    { &lt;br /&gt;
    if (fputs($fp, $request)) &lt;br /&gt;
    { &lt;br /&gt;
      while(! feof($fp)) &lt;br /&gt;
      { &lt;br /&gt;
       $result.= fgets($fp, 128); &lt;br /&gt;
      } &lt;br /&gt;
      fclose($fp); &lt;br /&gt;
//      print($result);&lt;br /&gt;
      return $result; &lt;br /&gt;
    } &lt;br /&gt;
  } &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//$postData='login=jbond&amp;amp;rawPassword='.md5('007'); // for OpenFlyers release 2 or higher&lt;br /&gt;
$postData='login=jbond&amp;amp;rawPassword=007';&lt;br /&gt;
$rawContent = httpPostRequest('openflyers.com','http://openflyers.com/plateform-name/checkIdent.php',$postData); [^]&lt;br /&gt;
&lt;br /&gt;
list($header, $content) = explode(&amp;quot;\r\n\r\n&amp;quot;, $rawContent, 2);&lt;br /&gt;
list($byteQty, $realContent, $dummy) = explode(&amp;quot;\r\n&amp;quot;, $content, 3);&lt;br /&gt;
&lt;br /&gt;
// the answer is in $realContent&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Plugin d'authentification Joomla=&lt;br /&gt;
Si vous avez un site Joomla et que vous désirer de permettre aux utilisateurs OpenFlyers de se connecter à votre espace restreint Joomla, vous devriez ajouter ce plugin de manière à avoir une unique base de données de comptes utilisateurs : celle d'OpenFlyers.&lt;br /&gt;
&lt;br /&gt;
Vous n'avez pas besoin de mettre à jour votre base de données Joomla, ce plugin interroge directement OpenFlyers grâce au script PHP CheckIdent.php.&lt;br /&gt;
&lt;br /&gt;
*[[Media:Joomla_authentication_plugin.zip|Joomla plugin for OpenFlyers]]&lt;/div&gt;</summary>
		<author><name>Bbarbe</name></author>	</entry>

	<entry>
		<id>https://doc2-fr.openflyers.com/index.php?title=FAQ-utilisateur&amp;diff=14195</id>
		<title>FAQ utilisateur</title>
		<link rel="alternate" type="text/html" href="https://doc2-fr.openflyers.com/index.php?title=FAQ-utilisateur&amp;diff=14195"/>
				<updated>2016-12-02T15:41:04Z</updated>
		
		<summary type="html">&lt;p&gt;Bbarbe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Connexion=&lt;br /&gt;
==Impossible de me connecter à la plateforme OpenFlyers de ma structure aéronautique==&lt;br /&gt;
Si vous n'arrivez pas à accéder une plateforme OpenFlyers il faut en rechercher la raison. Voici un certain nombre de questions qui peuvent vous permettre de solutionner votre problème :&lt;br /&gt;
*Accédez-vous à la page d'identification de la plateforme OpenFlyers ?&lt;br /&gt;
**Si non, alors il faut regarder la FAQ [[#Page_indisponible|Page indisponible]]&lt;br /&gt;
*Lorsque vous vous identifiez, avez-vous un message de rejet indiquant que votre identifiant et/ou votre mot de passe ne sont pas corrects ?&lt;br /&gt;
**Si oui, alors le problème peut venir du mot de passe qui a changé. Dans ce cas là, vous pouvez ré-initialiser votre mot de passe en suivant la procédure [[#J.27ai_oubli.C3.A9_mon_mot_de_passe.2C_comment_le_r.C3.A9cup.C3.A9rer_.3F|de réinitialisation de mot de passe]]. Cela peut également venir de votre identifiant qui n'est pas bon. Dans ce cas, il faut demander à la personne en charge de la gestion d'OpenFlyers au sein de votre structure aéronautique&lt;br /&gt;
*Une fois connecté, revenez-vous sur la page d'identification lorsque vous changez de page ?&lt;br /&gt;
**Si oui, alors il faut regarder la [[#A_chaque_fois_que_je_change_de_page.2C_je_reviens_sur_la_page_d.27identification_.3F|procédure de gestion des cookies du navigateur]].&lt;br /&gt;
Si vous n'êtes dans aucun des cas répertoriés ci-dessus, alors vous pouvez rapporter votre problème en nous envoyant un e-mail et en décrivant le plus précisément possible le problème que vous rencontrez :&lt;br /&gt;
*Navigateur utilisé&lt;br /&gt;
*Système d'exploitation&lt;br /&gt;
*type de PC, smartphone ou tablette&lt;br /&gt;
*Nom du fournisseur d'accès internet&lt;br /&gt;
*Actions effectuées&lt;br /&gt;
*Message d'erreur s'affichant&lt;br /&gt;
&lt;br /&gt;
==Page indisponible==&lt;br /&gt;
Si vous n'arrivez pas à accéder à la plateforme OpenFlyers de votre structure aéronautique. Voici une liste d'actions à effectuer :&lt;br /&gt;
*Redémarrer votre ordinateur&lt;br /&gt;
*Redémarrer la &amp;quot;box&amp;quot; ADSL&lt;br /&gt;
*Si cela ne fonctionne toujours pas, il faut [[#Tester_les_r.C3.A9solutions_DNS|tester les résolutions DNS]].&lt;br /&gt;
===Tester les résolutions DNS===&lt;br /&gt;
Pour effectuer les tests suivants, il faut ouvrir une fenêtre &amp;quot;[[#Ouvrir_une_fen.C3.AAtre_en_ligne_de_commande|en ligne de commandes]]&amp;quot;. En cas de problème, il faut nous rapporter les résultats en ouvrant un rapport de bug sur le [http://bts.openflyers.org BTS]. Pour cela, il est pratique de procéder par [[#Copier.2FColler_dans_une_fen.C3.AAtre_en_ligne_de_commande|copier/coller]].&lt;br /&gt;
*Dans la fenêtre en ligne de commande taper ce qui suit (en remplaçant '''structure_aéro''' par le sous-domaine correspondant à votre structure aéronautique) :&lt;br /&gt;
&amp;lt;bash&amp;gt;ping structure_aéro.openflyers.fr&amp;lt;/bash&amp;gt;&lt;br /&gt;
La réponse normale est pour OpenFlyers 3.0 :&lt;br /&gt;
 Envoi d'une requête 'ping' sur serveur6-of3.openflyers.net [87.98.143.237] avec 32 octets de données :&lt;br /&gt;
 Réponse de 87.98.143.237 : octets=32 temps=37 ms TTL=55&lt;br /&gt;
Si vous n'avez pas &amp;quot;serveur6-of3.openflyers.net&amp;quot; ou &amp;quot;Réponse de 87.98.143.237&amp;quot; cela veut dire que vous avez un [[#Vérifier la configuration de résolution des DNS|problème de résolution de DNS]].&lt;br /&gt;
&lt;br /&gt;
La réponse normale est pour OpenFlyers 2.1 :&lt;br /&gt;
 Envoi d'une requête 'ping' sur serveur6-of21.openflyers.net [91.121.47.179] avec 32 octets de données :&lt;br /&gt;
 Réponse de 91.121.47.179 : octets=32 temps=37 ms TTL=55&lt;br /&gt;
Si vous n'avez pas &amp;quot;serveur5-of21.openflyers.net&amp;quot; ou &amp;quot;Réponse de 91.121.47.179&amp;quot; cela veut dire que vous avez un [[#Vérifier la configuration de résolution des DNS|problème de résolution de DNS]].&lt;br /&gt;
&lt;br /&gt;
La réponse normale est pour OpenFlyers 1.3 :&lt;br /&gt;
 Envoi d'une requête 'ping' sur serveur6-of1.openflyers.net [178.33.105.217] avec 32 octets de données :&lt;br /&gt;
 Réponse de 178.33.105.217 : octets=32 temps=41 ms TTL=55&lt;br /&gt;
Si vous n'avez pas &amp;quot;serveur6-of1.openflyers.net&amp;quot; ou &amp;quot;Réponse de 178.33.105.217&amp;quot; cela veut dire que vous avez un [[#Vérifier la configuration de résolution des DNS|problème de résolution de DNS]].&lt;br /&gt;
====Tests plus poussés====&lt;br /&gt;
*Faire un :&lt;br /&gt;
&amp;lt;bash&amp;gt;nslookup structure_aéro.openflyers.fr&amp;lt;/bash&amp;gt;&lt;br /&gt;
*Et un :&lt;br /&gt;
&amp;lt;bash&amp;gt;tracert structure_aéro.openflyers.fr&amp;lt;/bash&amp;gt;&lt;br /&gt;
*Faire le test avec '''dig +trace''' :&lt;br /&gt;
&amp;lt;bash&amp;gt;dig +trace structure_aéro.openflyers.fr&amp;lt;/bash&amp;gt;&lt;br /&gt;
Sous Windows, il faudra au préalable récupérer l'utilitaire (par exemple dans un package [http://www.isc.org./downloads bind]). Une fois téléchargé le package, il faut copier/coller le programme dig ainsi que les fichiers .dll dans un répertoire commun et se positionner dans ce répertoire depuis la fenêtre en ligne de commandes avec la commande dir '''&amp;quot;nom du chemin du répertoire&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
====Tester les résolutions DNS sous Mac====&lt;br /&gt;
De plus, nous disposons de commandes plus puissantes qui permettent d'avoir d'avantage d'informations :&lt;br /&gt;
*cat /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
===Vérifier la configuration de résolution des DNS===&lt;br /&gt;
====Vérifier la configuration de résolution des DNS sous Windows====&lt;br /&gt;
Si vous avez un problème de résolution DNS sous windows, il peut être utile de vérifier que la résolution DNS est dynamique :&lt;br /&gt;
#Double-cliquer sur la connexion réseau concernée (par exemple le symbole &amp;quot;WIFI&amp;quot;)&lt;br /&gt;
#Cliquer sur '''Propriétés''' dans l'onglet '''Général''' de l''''Etat de Connexion réseau sans fil''' (si WIFI))&lt;br /&gt;
#Sélectionner '''Protocole internet TCP/IP'''&lt;br /&gt;
#Cliquer sur '''Propriétés'''&lt;br /&gt;
#Vérifier qu'est sélectionné '''Obtenir les adresses des serveurs DNS automatiquement'''. (si ce n'est pas le cas, modifier).&lt;br /&gt;
#En dernier ressort, [[#Changer de serveur DNS|Changer de serveur DNS]] ou [[#Forcer_les_DNS|Forcer les DNS]].&lt;br /&gt;
&lt;br /&gt;
===Nous communiquez les adresses IP des serveurs DNS===&lt;br /&gt;
====Nous communiquez les adresses IP des serveurs DNS sous Windows====&lt;br /&gt;
#[[#Ouvrir_une_fen.C3.AAtre_en_ligne_de_commande|Ouvrir une fenêtre en ligne de commande]]&lt;br /&gt;
#Taper : '''ipconfig /all'''&lt;br /&gt;
Les adresses IP des serveurs DNS se trouvent au droit de '''Serveurs DNS'''&lt;br /&gt;
&lt;br /&gt;
===Changer de serveur DNS===&lt;br /&gt;
Si vous rencontrez un problème de résolution de DNS avec votre fournisseur d'accès, vous pouvez changer les serveurs qui effectue la résolution des DNS pour votre accès.&lt;br /&gt;
====Changer de serveur DNS sous Mac====&lt;br /&gt;
*Dans '''Préférences Systèmes''', choisir '''Réseau''', puis une fois la bonne carte réseau sélectionnée, appuyer sur Avancé.&lt;br /&gt;
*Dans la fenêtre qui apparaît, aller sur l'onglet '''DNS''' et dans '''Serveurs DNS''' appuyer sur le + pour ajouter '''8.8.8.8''' et une autre fois pour ajouter '''8.8.4.4''' (ce sont les [http://code.google.com/speed/public-dns/|serveurs DNS public Google])&lt;br /&gt;
*Il ne reste plus qu'à '''Appliquer''' et à tester.&lt;br /&gt;
&lt;br /&gt;
====Changer de serveur DNS sous Windows XP====&lt;br /&gt;
*'''Démarrer &amp;gt; Connexions''' puis cliquer sur la connexion réseau active (par exemple la connexion WIFI)&lt;br /&gt;
*Cliquer sur '''Propriétés'''&lt;br /&gt;
*Sélectionner '''Protocole Internet (TCP/IP)'''&lt;br /&gt;
*Cliquer sur '''Propriétés'''&lt;br /&gt;
*En général, en bas de la fenêtre '''Propriétés de Protocole Internet (TCP/IP)''' la configuration active est : '''Obtenir les adresses des serveurs DNS automatiquement'''&lt;br /&gt;
*Cocher '''Utiliser l'adresse de serveur DNS suivante :'''&lt;br /&gt;
*Pour '''Serveur DNS préféré''', saisir '''8.8.8.8'''&lt;br /&gt;
*Pour '''Serveur DNS auxiliaire''', saisir '''8.8.4.4''' (ce sont les [http://code.google.com/speed/public-dns/|serveurs DNS public Google])&lt;br /&gt;
*Cliquer sur '''OK'''&lt;br /&gt;
*Cliquer sur '''OK'''&lt;br /&gt;
*Cliquer sur '''Fermer'''&lt;br /&gt;
&lt;br /&gt;
===Forcer les DNS===&lt;br /&gt;
====Forcer les DNS sous Windows====&lt;br /&gt;
Attention, avec Vista, il faut appliquer une [[#Particularit.C3.A9_avec_Windows_Vista|procédure préalable]].&lt;br /&gt;
*Il est possible de résoudre ce problème de DNS en éditant le fichier C:\WINDOWS\system32\drivers\etc\hosts (avec le bloc-notes) en rajoutant la ligne (il faut remplacer structure_aéro par le sous-domaine de l'espace OpenFlyers de votre structure aéronautique) :&lt;br /&gt;
**Pour OF 1.3 :&lt;br /&gt;
&amp;lt;pre&amp;gt;178.33.105.217 structure_aéro.openflyers.fr&amp;lt;/pre&amp;gt;&lt;br /&gt;
**Pour OF 2.1 :&lt;br /&gt;
&amp;lt;pre&amp;gt;91.121.47.179  structure_aéro.openflyers.fr&amp;lt;/pre&amp;gt;&lt;br /&gt;
**Pour OF 3.0alpha :&lt;br /&gt;
&amp;lt;pre&amp;gt;87.98.143.237  structure_aéro.openflyers.fr&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Ensuite, il faut relancer votre PC&lt;br /&gt;
*Une fois la connexion correctement effectuée, il est parfois possible de supprimer cette entrée dans le fichier hosts tout en gardant la connexion.&lt;br /&gt;
&lt;br /&gt;
====Particularité avec Windows Vista====&lt;br /&gt;
*Il faut être administrateur pour pouvoir modifier le fichier hosts.&lt;br /&gt;
*Il faut également copier le fichier hosts sur le bureau pour le modifier puis ensuite le recopier dans le bon répertoire (si on édite directement le fichier hosts depuis (system32\drivers\etc\) on ne peut pas le ré-enregistrer).&lt;br /&gt;
&lt;br /&gt;
====Forcer les DNS sous Mac====&lt;br /&gt;
*lancer Terminal (dans Applications/Utilitaires)&lt;br /&gt;
*taper &amp;quot;sudo nano /etc/hosts&amp;quot; (il demande le mot de passe de l'utilisateur qui a les droits admin sur la machine)&lt;br /&gt;
*Ajouter les entrées sur le modèle de la [[#Forcer_les_DNS_sous_Windows|procédure sous Windows]]&lt;br /&gt;
*Faire controle-o pour enregistrer puis controle-x pour quitter&lt;br /&gt;
*Eventuellement, faire &amp;quot;dscacheutil -flushcache&amp;quot; si le changement n'est pas encore pris en compte.&lt;br /&gt;
&lt;br /&gt;
==A chaque fois que je change de page, je reviens sur la page d'identification ?==&lt;br /&gt;
Si le retour à la page d'identification est systématique, alors il doit s'agir d'un problème de '''cookies'''. Il faut modifier la configuration du navigateur de manière à [[#Autoriser_les_cookies|autoriser les cookies]].&lt;br /&gt;
&lt;br /&gt;
===Variante du problème : la déconnexion n'est pas systématique mais aléatoire===&lt;br /&gt;
Dans ce cas, il peut s'agir aussi d'un problème de proxy (si vous êtes sur un réseau d'entreprise par exemple) ou de fournisseurs d'accès (accès depuis un mobile, depuis un hôtel, bref, tout type d'accès qui change régulièrement l'adresse IP et ainsi ne permet de maintenir un accès authentifié dans la durée. La solution est présentée dans la procédure [[#Utiliser_OpenFlyers_sur_un_smartphone|Utiliser OpenFlyers sur un smartPhone]].&lt;br /&gt;
&lt;br /&gt;
==Plusieurs membres peuvent-ils ouvrir des sessions en même temps (sans le savoir) ?==&lt;br /&gt;
Oui, c'est même le but premier : permettre à plusieurs personnes de consulter en même temps le cahier de réservation.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez même avoir une personne qui ouvre plusieurs sessions avec son identifiant. Mais pour cela, elle doit utiliser des ordinateurs ou des navigateurs différents.&lt;br /&gt;
==Suite à une migration, impossible de naviguer dans la nouvelle version d'OpenFlyers==&lt;br /&gt;
Lorsque nous migrons d'une version vers une autre, bien souvent nous le faisons en changeant les &amp;quot;DNS&amp;quot;. Cela peut occasionner des problèmes d'accès. Il peut également apparaitre des problèmes de &amp;quot;cache&amp;quot; qui se résolvent d'eux sous 24 à 48 heures. Ces problèmes peuvent survenir lorsque l'ordinateur concerné a été connecté à l'ancienne plateforme OpenFlyers juste avant la migration.&lt;br /&gt;
&lt;br /&gt;
Voici différentes techniques qui permettent d'imposer à votre navigateur d'utiliser des DNS actualisées et d'utiliser un cache à jour :&lt;br /&gt;
#Penser à éteindre et rallumer complètement l'ordinateur&lt;br /&gt;
#Faites un CTRL+R (ou icône de &amp;quot;rafraichissement&amp;quot;). Bien souvent cela suffit au navigateur pour qu'il vide son cache et le ré-actualise&lt;br /&gt;
#Vider le cache dans le navigateur&lt;br /&gt;
#Supprimer les cookies dans le navigateur&lt;br /&gt;
Plus technique :&lt;br /&gt;
#Faites un ipconfig /flushdns en ligne de commande (menu démarrer, puis &amp;quot;Exécutez&amp;quot;, taper &amp;quot;cmd&amp;quot;)&lt;br /&gt;
#Forcer les nouvelles DNS dans le fichier C:\WINDOWS\system32\drivers\etc\hosts en ajoutant une ligne du genre : xxx.xxx.xxx.xxx xxx.openflyers.zz (nous demandez pour connaitre les valeurs à utiliser)&lt;br /&gt;
&lt;br /&gt;
De plus, afin de permettre quand même d'accéder à la nouvelle plateforme, nous mettons en place une deuxième URL temporaire pendant 1 semaine. Ainsi pour l'URL plateforme.openflyers.fr nous mettrons en place une URL temporaire plateforme2.openflyers.fr&lt;br /&gt;
&lt;br /&gt;
=Navigation dans OpenFlyers=&lt;br /&gt;
OpenFlyers est un logiciel qui s'utilise grâce à votre navigateur internet. Les plus connus sont Chrome, Firefox, Internet Explorer ou Safari.&lt;br /&gt;
Une certaine configuration est nécessaire afin de faire fonctionner OpenFlyers : la configuration des cookies.&lt;br /&gt;
Si vous rencontrez des problèmes d'utilisations tels que :&lt;br /&gt;
&lt;br /&gt;
*Impossibilité de se connecter alors que votre identifiant et mot de passe est correct&lt;br /&gt;
*Impossibilité d'aller d'un page à l'autre une fois connecté (et retour sur la page de connexion)&lt;br /&gt;
&lt;br /&gt;
Voila comment régler votre navigateur.&lt;br /&gt;
&lt;br /&gt;
==[https://support.google.com/chrome/answer/95647?hl=fr Comment autoriser les cookies sous Chrome]==&lt;br /&gt;
&lt;br /&gt;
==Autoriser les cookies sous Internet Explorer==&lt;br /&gt;
*'''Outils &amp;gt; Options internet'''&lt;br /&gt;
*Onglet '''Confidentialité'''&lt;br /&gt;
*Positionner le niveau de sécurité au maximum à '''Moyenne'''&lt;br /&gt;
*Bouton '''OK'''&lt;br /&gt;
&lt;br /&gt;
==Autoriser les cookies sous iPhone / Safari==&lt;br /&gt;
*'''Réglages &amp;gt; Safari'''&lt;br /&gt;
*Régler '''Accepter les cookies'''&lt;br /&gt;
[[Fichier:Accepter-cookies-iPhone-Safari.png]]&lt;br /&gt;
&lt;br /&gt;
==Autoriser les cookies sous Firefox==&lt;br /&gt;
*'''Outils &amp;gt; Options'''&lt;br /&gt;
*Onglet '''vie privée'''&lt;br /&gt;
*Cocher '''Accepter les cookies'''&lt;br /&gt;
*Bouton '''OK'''&lt;br /&gt;
&lt;br /&gt;
==Problème de navigation sur un réseau GSM==&lt;br /&gt;
OpenFlyers est accessible sur les smartphones par le biais du navigateur embarqué. Cependant, des problèmes de session peuvent survenir du fait du changement dynamique de l'adresse IP du smartphone du fait du réseau GSM. Pour palier à ce problème et éviter des déconnexions intempestives, il faut se connecter en HTTPS.&lt;br /&gt;
&lt;br /&gt;
De plus, et toujours en HTTPS, il est possible de [[#Transmettre_l.27identifiant_et_le_mot_de_passe_dans_l.27URL|rajouter le couple identifiant/mot de passe à la suite de l'URL sécurisée]] et d'enregistrer cette URL en favori. Ainsi, il n'est plus nécessaire de saisir systématiquement son identifiant et son mot de passe.&lt;br /&gt;
&lt;br /&gt;
==Problèmes de navigation sous iPhone==&lt;br /&gt;
*Penser à mettre à jour le logiciel de l'iPhone. OpenFlyers fonctionne correctement pour une version au moins 4.02.&lt;br /&gt;
*Activer l'[[#Autoriser_les_cookies_sous_iPhone_.2F_Safari|acceptation des cookies]]&lt;br /&gt;
*Si la navigation était possible sur une version précédente d'OpenFlyers et qu'elle n'est plus possible sur une nouvelle version d'OpenFlyers, alors il peut être nécessaire de vider le cache du navigateur Safari de l'iPhone :&lt;br /&gt;
**'''Réglages &amp;gt; Safari'''&lt;br /&gt;
**'''Effacer cookies et données'''&lt;br /&gt;
&lt;br /&gt;
=Transmettre l'identifiant et le mot de passe dans l'URL=&lt;br /&gt;
Si vous souhaitez transmettre le couple identifiant/mot de passe dans l'URL dans le but de pouvoir les sauver facilement, vous avez besoin d'un [http://www.openflyers.com/doc/catalogue-tarifaire.pdf abonnement HTTPS] et alors l'URL doit avoir la forme :&lt;br /&gt;
 https://openflyers.com/mySpaceName?login=myLogin&amp;amp;password=myPassword&lt;br /&gt;
où :&lt;br /&gt;
*mySpaceName doit être remplacé par le nom du compte openflyers&lt;br /&gt;
*myLogin doit être remplacé par votre identifiant&lt;br /&gt;
*myPassword doit être remplacé par votre mot de passe&lt;br /&gt;
&lt;br /&gt;
=Cahier de réservation=&lt;br /&gt;
==Que se passe t-il en cas de conflit de réservation ?==&lt;br /&gt;
Il ne peut y avoir de conflit de réservation. C'est l'un des principes durs d'OpenFlyers : à chaque instant donné, il ne peut y avoir plus d'une réservation pour chaque pilote, chaque avion ou chaque instructeur.&lt;br /&gt;
&lt;br /&gt;
Si vous arrivez à faire des réservations qui se chevauchent (pour un avion, un instructeur ou un pilote), alors vous avez mis en évidence un bug, et il faut nous le signaler pour que nous y remédions.&lt;br /&gt;
&lt;br /&gt;
==Si je suis en train de consulter une page, et que quelqu'un fait une modif sur cette page, vais-je voir la modif sans lancer un rafraichissement ?==&lt;br /&gt;
Non vous ne verrez pas la modification. Cependant, ce n'est pas grave car au moment où vous essayerez de faire votre réservation, OpenFlyers vérifiera à ce moment-là que le créneau que vous souhaitez est toujours disponible (pour empêcher les conflits justement).&lt;br /&gt;
&lt;br /&gt;
==Comment saisir une date rapidement dans la gestion des qualifications ?==&lt;br /&gt;
En cliquant sur l'icône &amp;quot;calendrier&amp;quot; placé par défaut au mois courant, vous pourrez vous déplacer mois par mois ou année par année en cliquant sur les flèches respectives. Pour des dates plus anciennes, passez le curseur de votre souris sur l'endroit où se trouve le texte correspondant à &amp;quot;Mois Année&amp;quot;. Ce texte s'encadre alors d'une bordure. Faites un clic dessus et une nouvelle petite fenêtre va s'ouvrir. Là vous pourrez saisir l'année en tapant les chiffres avec votre clavier.&lt;br /&gt;
&lt;br /&gt;
==A propos des horaires de la nuit aéronautique==&lt;br /&gt;
&lt;br /&gt;
Nous calculons les éphémérides d'après les définitions officielles.&lt;br /&gt;
&lt;br /&gt;
Ainsi, les heures de lever et de coucher du soleil correspondent au passage du centre du soleil sous l'horizon (donc 3 degrés sous l'horizon puisqu'il est considéré, en première approximation que le soleil a un diamètre apparent de 6 degrés).&lt;br /&gt;
&lt;br /&gt;
Les heures du jour et de la nuit aéronautique correspondent au passage du soleil 6 degrés sous l'horizon. Il s'agit de la définition officielle, aussi bien française, qu'internationale (OACI). Le calcul est validé pour les latitudes inférieures à 65 degrés. Sa précision est de l'ordre de la minute sous des latitudes inférieures à 50 degrés. La précision diminue au fur et à mesure que la latitude augmente (c'est à dire que l'on se rapproche des pôles).&lt;br /&gt;
&lt;br /&gt;
Conséquence du calcul : les résultats trouvés ne correspondent pas (forcément) à la simple addition de + ou - 30 minutes. Mais il n'a jamais été écrit dans un texte officiel que la journée aéronautique correspondait au lever du soleil moins trente minutes, et que la nuit aéronautique correspondait au coucher du soleil plus trente minutes. La seule chose que vous trouverez, si vous vous penchez sur les textes, c'est qu'il est admis d'utiliser + ou - 30 minutes pour faire les calculs sous des latitudes comprises entre 30 et 60 degrés et 15 minutes sous les latitudes inférieures à 30 degrés). Voir [http://www.anpi.asso.fr/Reglesair.pdf Règles de l'air - Chapitre 1er - Définitions]&lt;br /&gt;
Attention: certains pays n'utilisent pas la nuit aéronautique et ne permettent pas le vol en dehors du lever et du coucher du soleil&lt;br /&gt;
&lt;br /&gt;
Le résultat proposé est donc le bon résultat. Si vous ne souhaitez pas utiliser ce résultat, il vous suffit de retrancher ou d'ajouter 30 minutes au calcul du lever et du coucher du soleil.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous attirons votre attention sur l'intérêt d'utiliser le bon calcul : il vous met du bon côté du point de vue de la sécurité. En effet, si en été vous y gagnez, c'est parce que le soleil met plus de temps à se coucher. Par contre en hiver, notre calcul fait &amp;quot;perdre&amp;quot; une dizaine de minutes : c'est parce que le soleil met moins de temps à se coucher. Calculer l'écart entre la nuit aéronautique et le coucher du soleil (et comparer avec les 30 minutes) vous permettra d'avoir une idée de la &amp;quot;vitesse&amp;quot; avec laquelle se couche le soleil, donc de vous méfier encore plus de l'arrivée de la nuit et de ne pas vous faire surprendre par le crépuscule.&lt;br /&gt;
&lt;br /&gt;
Qui ne s'est jamais retrouvé au sol en ayant voulu &amp;quot;tangenter&amp;quot; avec la nuit et s'est surpris à constater qu'il faisait bien sombre, tout d'un coup ?&lt;br /&gt;
&lt;br /&gt;
Le programme calcule les heures de coucher/lever du soleil à partir des coordonnées géographique du terrain de base. Si vous constatez que vos heures sont erronées, demander à votre administrateur qu'il vérifie le code OACI dans les paramètres de la structure aéronautique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Saisie des vols=&lt;br /&gt;
==Nos avions ont des compteurs en heures, centièmes, peut-on avoir un affichage en heures, minutes ?==&lt;br /&gt;
Chaque utilisateur paramètre son affichage comme il le souhaite dans Données/Affichage et fiche personnelle&lt;br /&gt;
[[http://doc-en.openflyers.com/index.php?title=Documentation utilisateur 2.0#Date_and_time_format Patron de date et heure]]&lt;br /&gt;
&lt;br /&gt;
== Comment saisir plusieurs pilotes pour un vol ?==&lt;br /&gt;
Saisir les vols dans OF comme dans le carnet de route de l'avion&lt;br /&gt;
== Comment partager les coûts d'un vol ?==&lt;br /&gt;
Si un pilote veux partager les frais du vol (sans être pilote) il doit faire un transfert de son compte vers le compte du pilote&lt;br /&gt;
Menu Comtes/Transférer&lt;br /&gt;
&lt;br /&gt;
=Divers=&lt;br /&gt;
==Peut-il y avoir des accès à plusieurs sur la base ?==&lt;br /&gt;
Oui, sinon deux membres ne pourraient pas consulter le cahier en même temps.&lt;br /&gt;
&lt;br /&gt;
Par contre, lorsqu'un membre réserve un avion, au moment où OpenFlyers teste la disponibilité du créneau, il empêche toute autre écriture sur la base concernant les réservations. Le but est d'empécher justement les conflits de réservation.&lt;br /&gt;
&lt;br /&gt;
=Actions dynamiques non prises en compte par OpenFlyers=&lt;br /&gt;
OpenFlyers met en oeuvre des actions dites &amp;quot;dynamiques&amp;quot; c'est à dire qui ne nécessite pas un rafraîchissement complet de la page pour être prises en comptes. Ces actions sont basées sur le principe &amp;quot;[http://fr.wikipedia.org/wiki/Asynchronous_JavaScript_and_XML AJAX]&amp;quot;. Elles nécessitent l'activation du moteur [http://fr.wikipedia.org/wiki/JavaScript JavaScript] du navigateur pour être opérationnelles.&lt;br /&gt;
&lt;br /&gt;
De plus, certaines commandes [http://fr.wikipedia.org/wiki/JavaScript JavaScript] ne sont pas reconnues par tous les navigateurs.&lt;br /&gt;
&lt;br /&gt;
Ainsi, lorsque vous lancez une action dynamique dans OpenFlyers qui reste sans résultat, avant de rapporter l'anomalie sur le [http://bts.openflyers.org BTS] il faut vérifier :&lt;br /&gt;
#L'activation de [http://fr.wikipedia.org/wiki/JavaScript JavaScript] dans le navigateur utilisé.&lt;br /&gt;
#Tester avec un autre navigateur&lt;br /&gt;
#Dans le cas où JavaScript est activé, il faut rapporter l'anomalie sur le [http://bts.openflyers.org BTS] en précisant le navigateur sur lequel l'action est inefficace et le navigateur sur lequel l'action est efficace.&lt;br /&gt;
Vous pouvez également nous facilitez la correction de l'anomalie en nous rapportant le message d'erreur [http://fr.wikipedia.org/wiki/JavaScript JavaScript] s'il y a lieu.&lt;br /&gt;
&lt;br /&gt;
=Comment exporter les données ?=&lt;br /&gt;
OF affiche une page XHTML ce qui signifie un texte correctement formaté qui peut être récupéré par un simple copier coller. Le tableur Calc de Open Office ou Libre Office interprète correctement ce HTML et le formate en colonne conformément à la présentation de votre page.&lt;br /&gt;
 &lt;br /&gt;
Il a cependant un paramétrage à faire pour que les textes soit correctement encodé (affichage des caractères accentués) et que les cellules numériques affichent le format correct&lt;br /&gt;
&lt;br /&gt;
*Allez dans l'onglet Outils/Options/Chargement&amp;amp;Enegistrement/Compatibilité HTML (Tools/Options/Load&amp;amp;Save/HTML Compatibility)&lt;br /&gt;
*Cocher &amp;quot;Utiliser l'environnement linguistique Anglais (USA) pour les nombres&amp;quot;, (&amp;quot;Use English (USA) locale numbers&amp;quot;)&lt;br /&gt;
*Par la même occasion vous pouvez aussi changer le Jeu d'encodage (Character set) par Unicode (UTF-8) &lt;br /&gt;
&lt;br /&gt;
Le programme interprète alors le point comme le séparateur décimal et vous avez directement le bon copier/coller Si vous avec choisi l'encodage UTF-8 les caractères accentués seront aussi correctement traduits (A rechanger si vous avez à faire des copier coller depuis des programmes à l'encodage CP1252 &amp;quot;Windows Microsoft&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Pour les exports au format csv voir [[FAQ csv reading with Oo]]&lt;br /&gt;
&lt;br /&gt;
=Paramétrage et données personnelles=&lt;br /&gt;
&lt;br /&gt;
==Peut-on être averti automatiquement des réservations annulées ?==&lt;br /&gt;
Dans la version 3 d'OpenFlyers, il est possible pour chaque utilisateur de paramétrer OpenFlyers de sort à être averti par e-mail lorsqu'un créneau se libère. Voici comment configurer cela :&lt;br /&gt;
*'''Données &amp;gt; Affichage et fiche personnelle'''&lt;br /&gt;
*Dans '''Fiche personnelle''', sélectionner '''Notification des réservations annulées'''&lt;br /&gt;
*Cliquer sur le bouton '''Sauver'''&lt;br /&gt;
&lt;br /&gt;
==Peut-on être averti des réservations sur plusieurs adresses e-mail ?==&lt;br /&gt;
&lt;br /&gt;
Il est possible d'utiliser plusieurs adresses e-mails afin d'être averti des réservations.&lt;br /&gt;
&lt;br /&gt;
Voici comment procéder :&lt;br /&gt;
*'''Données &amp;gt; Affichage et fiche personnelle'''&lt;br /&gt;
*Dans '''Fiche personnelle''' puis au niveau du champ '''E-mail'''&lt;br /&gt;
*Rentrer chacune des adresses e-mails en les séparant d'une virgule&lt;br /&gt;
'''Attention : il ne faut jamais mettre d'espace : ni dans l'adresse e-mail elle même, ni avant ou après les virgules de séparation des adresses e-mails'''&lt;br /&gt;
&lt;br /&gt;
Exemple valide :&lt;br /&gt;
&amp;lt;pre&amp;gt;jesuisuntest@test.fr,jesuisuntest@test.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemples non valides :&lt;br /&gt;
&amp;lt;pre&amp;gt;jesuisuntest@test.fr , jesuisuntest@test.com&lt;br /&gt;
jesuisuntest@test.fr , jesuisuntest@test.com&lt;br /&gt;
jesuisuntest@test.fr, jesuisuntest@test.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accéder à l'application et aller dans le menu Données &amp;gt; Affichage et fiche personnelle&lt;br /&gt;
&lt;br /&gt;
==Comment changer mes options d'affichage ?==&lt;br /&gt;
Aller dans le menu '''Données &amp;gt; Affichage et fiche personnelle''' rubrique '''Option d'affichage'''&lt;br /&gt;
&lt;br /&gt;
Dans les champs choisissez les paramètres selon vos souhaits: langue, heure local ou UTC, format monétaire,...&lt;br /&gt;
&lt;br /&gt;
Sélectionner les avions et instructeurs que sous voulez afficher&lt;br /&gt;
&lt;br /&gt;
==Affichage des dates et des heures==&lt;br /&gt;
Chaque utilisateur paramètre son affichage des dates et des heures comme il le souhaite dans '''Données &amp;gt; Affichage et fiche personnelle'''&lt;br /&gt;
&lt;br /&gt;
Ressources sur les [[http://doc-en.openflyers.com/index.php?title=Documentation utilisateur 2.0#Date_and_time_format patrons de date et heure]]&lt;br /&gt;
&lt;br /&gt;
==Comment modifier mes paramétrages ?==&lt;br /&gt;
Aller dans le menu '''Données &amp;gt; Affichage et fiche personnelle''' rubrique '''Fiche personnelle'''&lt;br /&gt;
&lt;br /&gt;
Charger une photo pour le trombinoscope&lt;br /&gt;
&lt;br /&gt;
La date de naissance, le sexe et la nationalité sont obligatoire pour que les statistiques DGAC puisse être calculés &lt;br /&gt;
&lt;br /&gt;
Mettez votre email et vos numéros de téléphone pour qu'on puisse vous contacter. Vous pouvez choisir ceux qui sont public ou non. &lt;br /&gt;
&lt;br /&gt;
Dans ce dernier cas seul les personnes avec des droits administrateur pourrons voir ces infos.&lt;br /&gt;
&lt;br /&gt;
==J'ai oublié mon mot de passe, comment le récupérer ?==&lt;br /&gt;
Il n'est pas possible de &amp;quot;retrouver&amp;quot; son mot de passe perdu dans OpenFlyers. En effet, ces derniers sont cryptés dans la base de données pour des raisons de confidentialités.&lt;br /&gt;
&lt;br /&gt;
Si vous avez oublié votre mot de passe, vous n'avez pas besoin de demander à votre administrateur une ré-initialisation, OpenFlyers dispose d'une procédure de ré-initialisation automatique :&lt;br /&gt;
&lt;br /&gt;
*Sur la page de connexion d'une plateforme OpenFlyers, cliquer sur le lien &amp;quot;Mot de passe oublié&amp;quot;&lt;br /&gt;
*:[[Fichier:FAQ_user_forgottenPassword.png]]&lt;br /&gt;
*Sur la page qui s'affiche il y a deux zones de saisie. Saisissez l'email que vous avez indiqué dans votre page personnelle. Il vous sera envoyé un email vous donnant votre identifiant et un code d'activation&lt;br /&gt;
*Revenez sur la page de ré-initialisation et mettez ces informations. Un nouvel email vous sera envoyé avec votre mot de passe&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant accéder à l'application. Pour mettre un mot de passe personnalisé voir [[#Comment_changer_de_mot_de_passe|Comment changer son mot de passe]]&lt;br /&gt;
&lt;br /&gt;
==Comment changer de mot de passe==&lt;br /&gt;
*Dans '''Données &amp;gt; Affichage et fiche personnelle'''&lt;br /&gt;
*Aller en bas de la page, dans le formulaire '''Changer de mot de passe''' et saisissez votre nouveau mot de passe&lt;br /&gt;
&lt;br /&gt;
Un indicateur vous indique le niveau de fiabilité. Mélanger les minuscules/majuscules/chiffres et sigles pour augmenter la difficulté pour des robots de trouver votre mot de passe. La sécurité de l'application de votre club sera ainsi accrue.&lt;br /&gt;
&lt;br /&gt;
=Trucs et astuces=&lt;br /&gt;
==Fenêtre en ligne de commande==&lt;br /&gt;
===Ouvrir une fenêtre en ligne de commande===&lt;br /&gt;
====Ouvrir une fenêtre en ligne de commande sous Windows====&lt;br /&gt;
*Aller dans le menu &amp;quot;Démarrer&amp;quot;&lt;br /&gt;
*Puis Tous les programmes/Accessoires&lt;br /&gt;
*Lancer l'&amp;quot;invite de commandes&amp;quot;&lt;br /&gt;
====Ouvrir une fenêtre en ligne de commande sous Mac====&lt;br /&gt;
Sous OSX (mac) il faut lancer un Terminal. Pour cela 2 solutions :&lt;br /&gt;
*Taper &amp;quot;terminal&amp;quot; dans spotlight&lt;br /&gt;
ou&lt;br /&gt;
*lancer l'application qui est dans Applications &amp;gt; Utilitaires.&lt;br /&gt;
&lt;br /&gt;
===Copier/Coller dans une fenêtre en ligne de commande===&lt;br /&gt;
====Copier/Coller dans une fenêtre en ligne de commande sous Windows====&lt;br /&gt;
Vous pouvez faire un copier/coller en utilisant le bouton droit de la souris dans la fenêtre de l'invite de commandes puis en choisissant '''sélectionner''' et ensuite en appuyant sur le bouton gauche et en le laissant appuyer tout en sélectionnant la zone souhaitée)&lt;br /&gt;
&lt;br /&gt;
====Copier/Coller dans une fenêtre en ligne de commande sous Mac====&lt;br /&gt;
Pour faire un copier/coller de ces informations et nous les communiquer, il suffit d'utiliser commande-C dans le terminal.&lt;br /&gt;
&lt;br /&gt;
=Comment imprimer la doc ?=&lt;br /&gt;
Si vous souhaitez imprimer la doc, il vous suffit de :&lt;br /&gt;
*cliquer sur le lien &amp;quot;version imprimable&amp;quot; de la &amp;quot;boîte à outils&amp;quot; présente sur le côté gauche des pages du wiki. Vous obtiendrez ainsi une version des pages destinée à être imprimer.&lt;br /&gt;
*ou bien, utiliser la fonction imprimer de votre navigateur. Une mise en page spécifique est générée pour obtenir un format papier&lt;br /&gt;
&lt;br /&gt;
Si vous imprimer avec une Imprimante pdf ([http://www.pdfforge.org/pdfcreator pdfCreator] par exemple) vous générerez alors un format pdf pour archivage&lt;br /&gt;
&lt;br /&gt;
=Problèmes=&lt;br /&gt;
==Signaler un problème==&lt;br /&gt;
Si vous rencontrer une anomalie ou un bug dans l'application OpenFlyers, il faut le rapporter sur le [http://bts.openflyers.org BTS] pour une prise en compte la plus rapide possible et pour permettre un meilleur traitement et suivi.&lt;br /&gt;
&lt;br /&gt;
Pour rapporter une anomalie il faut :&lt;br /&gt;
*Aller sur la page http://bts.openflyers.org&lt;br /&gt;
*S'inscrire sur le BTS en cliquant sur '''Signup for a new account''' : il faut choisir un identifiant, une adresse e-mail puis cliquer sur '''Signup'''.&lt;br /&gt;
Un e-mail est envoyé par le BTS permettant de valider votre adresse e-mail. Cliquer sur le lien présent sur cet e-mail.&lt;br /&gt;
*Sur le formulaire qui apparait, Choisir :&lt;br /&gt;
**Un mot de passe dans les champs '''Password''' et '''Confirm Password'''&lt;br /&gt;
**Compléter éventuellement le champ '''Real Name'''&lt;br /&gt;
*Cliquer sur le bouton '''Update account'''&lt;br /&gt;
Votre compte pour rapporter un problème sur le BTS est ainsi créé. Un nouveau formulaire d'identification s'affiche automatiquement :&lt;br /&gt;
*Renseigner les champs '''Username''' et '''Password'''&lt;br /&gt;
*Sélectionner éventuellement sur '''Remember my login in this browser''' afin de ne plus avoir à s'identifier lors d'une nouvelle connexion depuis le même navigateur internet.&lt;br /&gt;
*Dé-sélectionner éventuellement le champ '''Only allow your session to be used from this IP address.''' qui limite les possibilités de connexion&lt;br /&gt;
*Cliquer sur '''Login'''&lt;br /&gt;
*Aller dans l'onglet '''Preferences'''&lt;br /&gt;
*En bas du formulaire, modifier le champ '''Language''' pour choisir '''french'''.&lt;br /&gt;
*Cliquer sur '''Update Prefs'''&lt;br /&gt;
Vous pouvez alors tranquillement rapporter un bug depuis le formulaire '''Rapporter un bogue'''&lt;br /&gt;
&lt;br /&gt;
==Problème d'auto-complétion des terrains==&lt;br /&gt;
*Si les terrains d'arrivée et de départ ne s'affichent pas, vérifier la [[Compatibilité des navigateurs#Versions_support.C3.A9es|compatibilité de votre navigateur]].&lt;br /&gt;
*La version 2.1 d'OpenFlyers n'est pas supportée par Internet Explorer 10.&lt;br /&gt;
*En revanche, la version 3.0.3 d'OpenFlyers est supportée par les versions d'Internet Explorer supérieures à 8.&lt;br /&gt;
Si vous êtes sous la version 2.1 d'OpenFlyers avec comme navigateur Internet Explorer alors vous avez 2 solutions :&lt;br /&gt;
*Changer de navigateur&lt;br /&gt;
*[[FAQ_client#Comment_se_fait_la_migration_vers_une_version_sup.C3.A9rieure_.3F|Demander à migrer]] sous la version 3.0.3 d'OpenFlyers.&lt;/div&gt;</summary>
		<author><name>Bbarbe</name></author>	</entry>

	<entry>
		<id>https://doc2-fr.openflyers.com/index.php?title=Kiosque-PC&amp;diff=14194</id>
		<title>Kiosque PC</title>
		<link rel="alternate" type="text/html" href="https://doc2-fr.openflyers.com/index.php?title=Kiosque-PC&amp;diff=14194"/>
				<updated>2016-12-02T15:37:37Z</updated>
		
		<summary type="html">&lt;p&gt;Bbarbe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
Le but de cette page est de référencer et de proposer des solutions de configuration pour les ordinateurs en accès public.&lt;br /&gt;
&lt;br /&gt;
Les objectifs d'un mode kiosque sont multiples et peuvent recouvrir les besoins suivants :&lt;br /&gt;
*Empêcher l'utilisateur de fermer le navigateur&lt;br /&gt;
*Empêcher l'utilisateur de changer les pages affichées&lt;br /&gt;
*Empêcher l'utilisateur de surfer sur d'autres sites que ceux autorisés&lt;br /&gt;
*Empêcher l'utilisateur de basculer sur d'autres programmes que le navigateur souhaité&lt;br /&gt;
*Empêcher l'utilisateur de lancer d'autres programmes&lt;br /&gt;
*Empêcher l'utilisateur d'accéder au &amp;quot;Bureau&amp;quot;.&lt;br /&gt;
*Empêcher l'utilisateur de pouvoir éteindre l'ordinateur&lt;br /&gt;
*Permettre à l'utilisateur d'allumer l'ordinateur dans le cas où ce dernier a eu par exemple une coupure d'alimentation mais empêcher ce dernier d'accéder au BIOS.&lt;br /&gt;
&lt;br /&gt;
Un prérequis pour la mise en place d'un ordinateur en mode kiosque consiste à ne proposer que les interfaces nécessaires à l'utilisateur :&lt;br /&gt;
*Souris&lt;br /&gt;
*Clavier&lt;br /&gt;
*Écran&lt;br /&gt;
Les autres éléments attachés à l'unité centrale ne doivent pas être accessibles (ports, lecteurs)&lt;br /&gt;
&lt;br /&gt;
Pour un PC sous Windows, les opérations suivantes permettent de mettre en place un PC kiosque avec le navigateur souhaité :&lt;br /&gt;
*[[#Lancer_un_programme_au_d.C3.A9marrage_de_Windows|Lancer automatiquement un programme au démarrage de Windows]]&lt;br /&gt;
*[[#Configurer_un_navigateur_en_mode_kiosque|Modifier l'icône du raccourci pour que le navigateur soit lancé en mode kiosque]] (à effectuer avec l'icône du navigateur placée dans le répertoire de démarrage&lt;br /&gt;
*[[#Bloquer_.5BAlt.2BF4.5D_avec_Deskman|Paramétrer deskman pour qu'il désactive le raccourci [Alt+F4]]]&lt;br /&gt;
Il pourra être utile d'utiliser également [[Kiosque PC#deskman|Deskman]] pour mettre en place des restrictions d'accès sur certains site internet ou de bloquer l'exécution de programmes ou des fonctionnalités liées à Windows.&lt;br /&gt;
&lt;br /&gt;
=Créer un compte utilisateur &amp;quot;visiteur&amp;quot;=&lt;br /&gt;
Il est possible de créer un compte utilisateur &amp;quot;visiteur&amp;quot; permettant de ne pas avoir de déconnexion automatique et permettant également d'avoir un retour automatique sur la page du planning du jour au bout de 5 minutes d'inactivité. Pour cela il faut effectuer les actions suivantes :&lt;br /&gt;
*Créer un profil &amp;quot;visiteur&amp;quot; ne disposant d'aucun droit.&lt;br /&gt;
*Créer un compte visiteur/visiteur par exemple disposant de ce profil.&lt;br /&gt;
*[[#D.C3.A9finir_la_page_par_d.C3.A9faut_.C3.A0_l.27ouverture_du_navigateur|Mettre en place une page par défaut]] sur le navigateur du PC en accès public permettant une connexion automatique avec le compte visiteur.&lt;br /&gt;
&lt;br /&gt;
=Définir la page par défaut à l'ouverture du navigateur=&lt;br /&gt;
En l'absence d'un mode kiosque, il est toujours possible de mettre OpenFlyers en page par défaut du navigateur.&lt;br /&gt;
&lt;br /&gt;
Pour pousser la personnalisation, il est possible de mettre dans l'adresse l'identifiant et le mot de passe de l'utilisateur sans droit ([[#Cr.C3.A9er_un_compte_utilisateur_.22visiteur.22|type visiteur]]) afin de garder la page de cahier journalier affichée en permanence et dès le lancement du navigateur. Pour cela, il faut mettre en lien par défaut du navigateur le lien suivant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;https://&amp;lt;/nowiki&amp;gt;openflyers.com/'''plateforme'''/?login='''identifiant'''&amp;amp;password='''motdepasse'''&lt;br /&gt;
&lt;br /&gt;
En remplaçant :&lt;br /&gt;
*'''plateforme''' par le nom de la plateforme de sorte à obtenir l'URL de la plateforme à la place de &amp;lt;nowiki&amp;gt;https://&amp;lt;/nowiki&amp;gt;openflyers.com/'''plateforme'''/&lt;br /&gt;
*'''identifiant''' par l'identifiant de l'utilisateur ayant un [[#Cr.C3.A9er_un_compte_utilisateur_.22visiteur.22|profil visiteur]] et '''motdepasse''' par son mot de passe&lt;br /&gt;
&lt;br /&gt;
Attention, ceci ne fonctionne que pour les comptes qui n'ont uniquement un profil type &amp;quot;visiteur&amp;quot;, c'est à dire sans aucun droit.&lt;br /&gt;
&lt;br /&gt;
==Page par défaut dans Firefox==&lt;br /&gt;
*Aller dans '''Outils &amp;gt; Options'''&lt;br /&gt;
*Dans l'onglet '''Général''', renseigner le champ '''Page d'accueil''' avec l'URL souhaitée.&lt;br /&gt;
*Cliquer sur le bouton '''Fermer'''&lt;br /&gt;
&lt;br /&gt;
==Page par défaut dans Internet Explorer==&lt;br /&gt;
*Aller dans '''Outils &amp;gt; Options internet'''&lt;br /&gt;
**Dans l'onglet '''Général''', renseigner le champ '''page de démarrage''' avec l'adresse du site.&lt;br /&gt;
*Sélectionner le radio-bouton '''Démarrer avec la page d'accueil'''&lt;br /&gt;
*Cliquer sur le bouton '''OK'''&lt;br /&gt;
&lt;br /&gt;
=Solutions Mac=&lt;br /&gt;
==[http://www.icab.de/ iCab]==&lt;br /&gt;
iCab possède un mode kiosque contenant des fonctionnalités &amp;quot;Outils&amp;quot;, &amp;quot;Mode public&amp;quot;, une protection par mot de passe, et dans lequel ni le Dock de Mac Os X, ni la barre de menu n'apparaissent.&lt;br /&gt;
&lt;br /&gt;
Il faut mettre dans les ouvertures au démarrage un script en applescript, qui démarre automatiquement iCab en ouverture de session, en mode kiosque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;bash&amp;gt;tell application &amp;quot;iCab&amp;quot;&lt;br /&gt;
     Activate&lt;br /&gt;
     enter kiosk mode with password &amp;quot;password&amp;quot; &lt;br /&gt;
        -- ''le mot de passe qui permettra de sortir du mode kiosque avec le raccourci [Commande-k]''&lt;br /&gt;
     OpenURL &amp;quot;http://monsite.org/?login=monidentifiant&amp;amp;password=monmotdepasse&amp;quot; toWindow -1 &lt;br /&gt;
        -- ''ouvre la page en question dans iCab et au premier plan, en introduisant identifiant et MdP de l'utilisateur invité''&lt;br /&gt;
end tell&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut supprimer toutes les barres d'affichage : Adresse, Barre d'état, Signets, Liens standards, dans les Préférences du mode Kiosque PC, et mettre la page d'OF en page d'accueil du navigateur.&lt;br /&gt;
&lt;br /&gt;
Il est néanmoins nécessaire dans le mode kiosque de garder la barre de navigation, pour relancer le navigateur lors des pertes de connexion.&lt;br /&gt;
&lt;br /&gt;
Comme il est possible de n'autoriser la connexion qu'à un ou plusieurs sites nommément désignés par un système de filtres, il est possible de de bloquer le navigateur sur OpenFlyers.&lt;br /&gt;
&lt;br /&gt;
Le mode kiosque doit être lancé depuis une session d'un utilisateur sans mot de passe (permet les ouvertures et extinctions automatiques la nuit), utilisateur qui n'a aucun droit de gestion sur l'ordinateur et qui travaille sur un Finder restreint.&lt;br /&gt;
&lt;br /&gt;
Une version Free existe, une version Pro sans limitations est disponible pour 15 €.&lt;br /&gt;
&lt;br /&gt;
==wKiosque PC Browser==&lt;br /&gt;
Il existe également [http://www.app4mac.com/wkioskbrowser.html wKiosque PC Browser], créé spécifiquement pour cet usage, mais payant ($69 pour un seul poste, la version d'essai quitte après une heure ). Il a des paramétrages très complets et en particulier relance la connexion lors du boot jusqu'à la connexion au site.&lt;br /&gt;
=Solutions Windows=&lt;br /&gt;
==Configurer un navigateur en mode kiosque==&lt;br /&gt;
===Configurer Firefox en mode kiosque===&lt;br /&gt;
Il existe des thèmes et extensions permettant de transformer Firefox en kiosque.&lt;br /&gt;
Par exemple R-kiosk.&lt;br /&gt;
&lt;br /&gt;
===Configurer Chrome en mode kiosque===&lt;br /&gt;
*Créer un raccourci de Chrome&lt;br /&gt;
*Survoler avec le pointeur de la souris l'icône du raccourci&lt;br /&gt;
*Sélectionner '''Propriétés'''&lt;br /&gt;
*Dans l'onglet '''Raccourci''', champ '''Cible''', rajouter à la fin de la ligne : ''--kiosk http://openflyers.com/plateforme/'' en remplaçant ''plateforme'' par le nom de votre plateforme OpenFlyers&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;C:\Program Files (x86)\Google\Chrome\Application\chrome.exe&amp;quot; --kiosk http://openflyers.com/plateforme/&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Cliquer sur le bouton '''OK'''&lt;br /&gt;
Une fois Chrome lancé, pour le fermer, il faut utiliser la combinaison de touches [Alt+F4]&lt;br /&gt;
&lt;br /&gt;
===Configurer Internet Explorer en mode kiosque===&lt;br /&gt;
*Créer un raccourci d'Internet Explorer&lt;br /&gt;
*Survoler avec le pointeur de la souris l'icône du raccourci&lt;br /&gt;
*Sélectionner '''Propriétés'''&lt;br /&gt;
*Dans l'onglet '''Raccourci''', champ '''Cible''', rajouter à la fin de la ligne : ''-k http://openflyers.com/plateforme/'' en remplaçant ''plateforme'' par le nom de votre plateforme OpenFlyers&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;&amp;quot;C:\Program Files (x86)\Internet Explorer\iexplore.exe&amp;quot; -k http://openflyers.com/plateforme/&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Cliquer sur le bouton '''OK'''&lt;br /&gt;
Une fois Internet Explorer lancé, pour le fermer, il faut utiliser la combinaison de touches [Alt+F4]&lt;br /&gt;
&lt;br /&gt;
==Lancer un programme au démarrage de Windows==&lt;br /&gt;
===Lancer un programme au démarrage de Windows XP===&lt;br /&gt;
Mettre un raccourci vers le navigateur dans le menu '''Démarrer &amp;gt; Programmes &amp;gt; Démarrage'''&lt;br /&gt;
&lt;br /&gt;
===Lancer un programme au démarrage de Windows 8===&lt;br /&gt;
*Ouvrir la fenêtre '''Exécuter''' par la combinaison de touches [Win+R]&lt;br /&gt;
*Saisir ''shell:startup''&lt;br /&gt;
*Dans ce répertoire démarrage, mettre un raccourci vers le navigateur&lt;br /&gt;
&lt;br /&gt;
==Sécuriser Windows==&lt;br /&gt;
===[http://www.anfibia-soft.com/products/deskman/index.html deskman]===&lt;br /&gt;
Deskman permet de contrôler l'accessibilité des fonctionnalités de Windows. Il est disponible pour Windows XP, Vista 7 et 8 en 32 et 64 bits. Il est disponible pour essai gratuitement et son prix est de 35 € pour un poste.&lt;br /&gt;
&lt;br /&gt;
====Installation de Deskman====&lt;br /&gt;
'''Attention''' : ce programme permet de limiter totalement l'accès à un ordinateur notamment en empêchant l'exécution de programmes. S'il est mal configuré, il peut devenir [[#Impossible_de_saisir_le_mot_de_passe_dans_deskman|impossible d'en retrouver le contrôle]].&lt;br /&gt;
*[http://www.anfibia-soft.com/products/deskman/index.html#getdeskman Télécharger deskman] en cliquant sur le bouton '''Donwnload Deskman'''.&lt;br /&gt;
*Exécuter ''deskmansetup.exe'', accepter les conditions générales et lancer Deskman.&lt;br /&gt;
*Cliquer sur l'icône '''Settings'''&lt;br /&gt;
*Dans l'onglet '''Basic''', formulaire '''Deskman Authentication'', renseigner dans '''Main password''' et '''Confirm password''', le mot de passe permettant d'accéder à deskman.&lt;br /&gt;
*Noter le raccourci par défaut permettant d'afficher affiché dans le formulaire '''Open Deskman''', champ '''Primary Hotkey''' : [CTRL + MAJ + F12]&lt;br /&gt;
*Cliquer sur le bouton '''Save'''.&lt;br /&gt;
&lt;br /&gt;
====Activer le contrôle avec Deskman====&lt;br /&gt;
Il faut avoir [[#Installation_de_Deskman|installé]] Deskman et mis en place un mot de passe d'accès&lt;br /&gt;
*Lancer Deskman&lt;br /&gt;
*Cliquer sur l'icône '''Secure'''&lt;br /&gt;
&lt;br /&gt;
====Bloquer [Alt+F4] avec Deskman====&lt;br /&gt;
Il faut avoir [[#Installation_de_Deskman|installé]] Deskman&lt;br /&gt;
*Lancer Deskman&lt;br /&gt;
*Dans l'onglet '''Keys''', cocher '''Key Options &amp;gt; Program Closing Disable Alt-F4'''&lt;br /&gt;
*[[#Activer_le_contr.C3.B4le_avec_Deskman|Activer le contrôle avec Deskman]]&lt;br /&gt;
&lt;br /&gt;
====deskman troubleshooting====&lt;br /&gt;
=====Impossible de saisir le mot de passe dans deskman=====&lt;br /&gt;
Lors de nos essais sur un PC portable avec écran tactile sous Windows 8, il nous a été impossible de saisir le mot de passe permettant de reprendre l'accès car la plupart des touches du clavier étaient reconnues commes des raccourcis pour lancer des programmes au lieu d'afficher le caractères correspondant dans le champ de saisie du mot de passe.&lt;br /&gt;
&lt;br /&gt;
Procédure pour retrouver le contrôle total et les paramètres d'origine :&lt;br /&gt;
&lt;br /&gt;
*Eteindre l'ordinateur&lt;br /&gt;
*Déconnecter le disque dur contenant Windows&lt;br /&gt;
*Déconnecter le disque dur et le connecter depuis un autre ordinateur&lt;br /&gt;
*Renommer les fichiers exécutables correspondants au programme deskman présents dans &amp;quot;Program Files (x86)\anfibia deskman&amp;quot; en rajoutant par exemple un caractère pour en empêcher l'exécution au démarrage.&lt;br /&gt;
*Reconnecter le disque dur le PC d'origine&lt;br /&gt;
*Lancer Windows : vous retrouver l'accès à l'ordinateur&lt;br /&gt;
*Remettre les noms de fichiers initiaux de deskman&lt;br /&gt;
*Désinstaller deskman&lt;br /&gt;
*Ré-installer deskman&lt;br /&gt;
*Activer deskman sans rien restreindre : cela permet de rétablir l'intégralité des accès à Windows notamment au répertoire racine &amp;quot;Ce PC&amp;quot; qui peut ne pas être réapparu.&lt;br /&gt;
*Désactiver deskman&lt;/div&gt;</summary>
		<author><name>Bbarbe</name></author>	</entry>

	<entry>
		<id>https://doc2-fr.openflyers.com/index.php?title=FAQ-client&amp;diff=14193</id>
		<title>FAQ client</title>
		<link rel="alternate" type="text/html" href="https://doc2-fr.openflyers.com/index.php?title=FAQ-client&amp;diff=14193"/>
				<updated>2016-12-02T15:30:48Z</updated>
		
		<summary type="html">&lt;p&gt;Bbarbe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fonctionnement d'OpenFlyers=&lt;br /&gt;
==[[Modèle_commercial_et_compte_client_OpenFlyers#Fonctionnement_.C3.A9conomique|Fonctionnement économique]]==&lt;br /&gt;
&lt;br /&gt;
==Fonctionnement applicatif==&lt;br /&gt;
Les composants logiciels utilisés pour développer notre applicatif sont tous open source (notamment PHP et MySQL).&lt;br /&gt;
&lt;br /&gt;
La version 2.0 du logiciel OpenFlyers, propriété de la S.A.R.L. OpenFlyers, est sous licence semi-libre : il peut être installé et utilisé pour les besoins propres d'une structure aéronautique mais il ne peut être commercialisé par une société tiers sans licence spécifique (même à la demande d'un seul client) ou déployé pour des filiales d'une structure commerciale ou non.&lt;br /&gt;
&lt;br /&gt;
Les versions ultérieures à la version 2.0 du logiciel OpenFlyers, sont commercialisées uniquement par le biais d'un abonnement auprès de la S.A.R.L. OpenFlyers qui en garde l'hébergement exclusif.&lt;br /&gt;
&lt;br /&gt;
==[[Modèle_commercial_et_compte_client_OpenFlyers#Arbitrage_des_demandes_de_d.C3.A9veloppements#Financement_des_d.C3.A9veloppements|Nouveaux développements]]==&lt;br /&gt;
&lt;br /&gt;
==De quoi avons-nous besoin pour faire fonctionner OpenFlyers ?==&lt;br /&gt;
Il suffit de disposer d'un ordinateur avec un accès internet et d'un navigateur moderne tel que Google Chrome, Firefox, Internet Explorer, Opera ou Safari. Aucune installation particulière n'est nécessaire sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
=Les bases de données=&lt;br /&gt;
==Les données stockées sont-elles bien protégées ?==&lt;br /&gt;
Nous tâchons de mettre en œuvre les différentes recommandations concernant la gestion des serveurs afin d'empêcher toute intrusion.&lt;br /&gt;
&lt;br /&gt;
De plus, nous disposons de plusieurs serveurs répartis en plusieurs endroits de la planète.&lt;br /&gt;
&lt;br /&gt;
Chaque nuit, tous les serveurs sauvegardent leurs bases de données et les envoient à tous les autres serveurs.&lt;br /&gt;
&lt;br /&gt;
Ces sauvegardes sont stockées par roulement sur une quinzaine de jours.&lt;br /&gt;
==Comment récupérer notre base de données ?==&lt;br /&gt;
Vous pouvez à tout moment récupérer le contenu de votre base de données :&lt;br /&gt;
*[[AdminDoc3#Configuration_.3E_Export_SQL_.3E_Complet|Procédure version 3]]&lt;br /&gt;
&lt;br /&gt;
==Peut-on avoir un accès de type &amp;quot;phpMyAdmin&amp;quot; à notre base de données ?==&lt;br /&gt;
Vous avez un accès en lecture à la base de données via l'export mais également via la génération des rapports.&lt;br /&gt;
&lt;br /&gt;
La structure de la base de données est documentée ici : http://doc-en.openflyers.com/index.php?title=Database_specification&lt;br /&gt;
&lt;br /&gt;
Par contre, nous nous interdisons de vous fournir un accès en écriture à la base de données. Car nous devons pouvoir garantir l'intégrité de cette base de données vis-à-vis de vous-même, vis-à-vis de vos utilisateurs mais également vis-à-vis de tierces personnes ou encore vis-à-vis des autorités.&lt;br /&gt;
&lt;br /&gt;
Cependant, si vous avez besoin de modifier une saisie en base de données, nous pouvons intervenir sur votre demande par e-mail ou courrier. Cette opération est facturée en fonction de sa complexité (voir [http://www.openflyers.com/pricing/catalog-price le catalogue tarifaire]).&lt;br /&gt;
&lt;br /&gt;
==Peut-on importer notre ancienne base de données externe OF 1.3.x lors du passage en production sur la solution hébergée OpenFlyers ?==&lt;br /&gt;
Oui, il est tout a fait possible de reprendre votre ancienne base de données OF 1.3.x.&lt;br /&gt;
&lt;br /&gt;
Le coût est à partir de 50 € HT/heure, le temps effectif étant déterminé lors de l'import. Il faut nous faire parvenir un export complet de la base SQL de votre plateforme.&lt;br /&gt;
&lt;br /&gt;
Il faut au préalable que vous ayez créé une [https://client.openflyers.com/newSubscription.php?lang=francais plateforme client ], puis nous signaler l'identifiant de votre plateforme.&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite vous créer la ou les factures, selon l'abonnement choisi, à partir de votre [http://client.openflyers.com/ clientmanager]&lt;br /&gt;
&lt;br /&gt;
Vous acquittez les factures correspondant à la migration de votre base de données, de votre abonnement et éventuellement de la migration de votre plateforme de la version 2.1 en 3.0&lt;br /&gt;
&lt;br /&gt;
Puis, l'idéal est de fixer un rendez-vous, par exemple, le XX-XX-2012 à 9 h. Puis, à cette même date :&lt;br /&gt;
*vous bloquez votre accès sur votre plateforme OF le jour J à 9h00 ;&lt;br /&gt;
*vous nous envoyez la base de données en suivant ;&lt;br /&gt;
*nous migrons, dès réception, votre base de données vers la version 2.1 (ou la version 3.0) sur nos serveurs ;&lt;br /&gt;
*une fois cela fait, on vous envoie un e-mail ;&lt;br /&gt;
*vous mettez en place de votre côté une redirection vers la nouvelle URL OF.&lt;br /&gt;
&lt;br /&gt;
Il faut compter environ 2 heures maximum pour procéder à la migration (suivant les difficultés que nous rencontrerons avec votre base de données).&lt;br /&gt;
&lt;br /&gt;
Les opérations d'export/import sont ainsi synchronisées et l'interruption de service est la plus courte possible.&lt;br /&gt;
&lt;br /&gt;
=Compte client OpenFlyers=&lt;br /&gt;
&lt;br /&gt;
==[[Modèle_commercial_et_compte_client_OpenFlyers#Acc.C3.A9der_.C3.A0_son_compte_client_OpenFlyers|Comment accéder à mon compte client ?]]==&lt;br /&gt;
&lt;br /&gt;
==Comment modifier des éléments de la fiche client ?==&lt;br /&gt;
Il vous suffit de vous [[Modèle_commercial_et_compte_client_OpenFlyers#Acc.C3.A9der_.C3.A0_son_compte_client_OpenFlyers|connecter à votre plateforme]] OpenFlyers.&lt;br /&gt;
&lt;br /&gt;
Puis d'éditer la fiche en allant dans Données/Affichage et fiche personnelle.&lt;br /&gt;
&lt;br /&gt;
==[[Modèle_commercial_et_compte_client_OpenFlyers#Changer_de_responsable_en_charge_d.27OpenFlyers|Comment changer de responsable OpenFlyers ?]]==&lt;br /&gt;
&lt;br /&gt;
==[[Modèle_commercial_et_compte_client_OpenFlyers#Renouveler_son_abonnement_OpenFlyers|Comment renouveler l'abonnement ?]]==&lt;br /&gt;
&lt;br /&gt;
==Nous avons renouvelé notre abonnement et nous avons quand même un message d'alerte concernant la cotisation==&lt;br /&gt;
Le message d'alerte '''votre cotisation n'est pas à jour''' correspond à un message lié à la configuration de la plateforme OpenFlyers et non pas à l'abonnement OpenFlyers de cette plateforme. Il signifie que l'utilisateur qui se connecte n'est pas à jour de sa qualification/validité cotisation au sein de la structure.&lt;br /&gt;
&lt;br /&gt;
Dans tous les cas, l'administrateur référent (celui dont l'adresse e-mail doit apparaitre sur la page d'accueil d'OpenFlyers) conserve néanmoins tous ses droits.&lt;br /&gt;
&lt;br /&gt;
Cf. Gestion des validités des utilisateurs dans OpenFlyers [[Validity-management3#Gestion_des_validit.C3.A9s_des_utilisateurs| la version 3]] et la [[Validity-management4#Gestion_des_validit.C3.A9s_des_utilisateurs| la version 4]].&lt;br /&gt;
&lt;br /&gt;
==Changement du nombre de ressources en cours d'année et mise à jour de l'abonnement==&lt;br /&gt;
*[[Modèle_commercial_et_compte_client_OpenFlyers#Ajouter_une_ressource_.C3.A0_son_abonnement_OpenFlyers|Ajouter une ressource à son abonnement OpenFlyers]]&lt;br /&gt;
*[[Modèle_commercial_et_compte_client_OpenFlyers#Enlever_une_ressource_.C3.A0_son_abonnement_OpenFlyers|Enlever une ressource à son abonnement OpenFlyers]]&lt;br /&gt;
*[[Modèle_commercial_et_compte_client_OpenFlyers#Remplacer_une_ressource_par_une_autre_dans_son_abonnement_OpenFlyers|Remplacer une ressource dans son abonnement OpenFlyers]]&lt;br /&gt;
&lt;br /&gt;
==[[Modèle-commercial-et-compte-client-OpenFlyers#Remplacer-une-ressource-par-une-autre-dans-son-abonnement-OpenFlyers|Comment remplacer une ressource par une autre ?]]==&lt;br /&gt;
&lt;br /&gt;
==Facturation des ressources réelles et virtuelles==&lt;br /&gt;
A partir de la version 2.1 d'OpenFlyers, seules les ressources qui génèrent du chiffre d'affaires pour la structure cliente sont intégrées dans l'abonnement. Ainsi, les salles de cours ne sont pas retenues dans le calcul de l'abonnement. Pour qu'OpenFlyers fasse la différence entre une ressource &amp;quot;réelle&amp;quot; et une ressource &amp;quot;virtuelle&amp;quot;, il suffit de décocher &amp;quot;Aéronef réel&amp;quot; au niveau de la ligne associée à l'aéronef ('''Admin &amp;gt; Flotte &amp;gt; Aéronefs''' colonne Aéronefs réels).&lt;br /&gt;
&lt;br /&gt;
==[[Créer_une_plateforme_OpenFlyers_pour_sa_structure#Prise_d.27abonnement|Nous avons créé une plateforme, comment passer en production ?]]==&lt;br /&gt;
&lt;br /&gt;
==J'ai souscrit un abonnement First Price - Peut-on souscrire à tout moment un forfait paramétrage ?==&lt;br /&gt;
Oui, effectivement. Il se peut que le paramétrage de votre plateforme se révèle complexe, ou bien que vous manquiez de temps pour le configurer. Vous pouvez à tout moment opter pour notre forfait paramétrage, dont vous pouvez retrouver le tarif dans notre [http://www.openflyers.com/doc/catalogue-tarifaire.pdf catalogue tarifaire].&lt;br /&gt;
&lt;br /&gt;
Cependant, dans le cas là, nous repartons d'une base de données vierge pour ne pas perdre de temps dans la correction (et la compréhension) du paramétrage initialement effectué.&lt;br /&gt;
&lt;br /&gt;
==J'ai souscrit un abonnement First Price - Peut-on basculer en cours d'année vers un abonnement Business ?==&lt;br /&gt;
Oui, vous pouvez à tout moment basculer vers un abonnement Business. Il faut pour cela nous en faire la demande. Nous vous créons alors la facture correspondant à la différence de tarif. Vous pouvez ensuite régler cette facture depuis votre Client Manager.&lt;br /&gt;
&lt;br /&gt;
==Je m'abonne en cours d'année - Combien vais-je devoir payer ?==&lt;br /&gt;
Pour la première année d'abonnement, le prix est calculé au prorata du nombre de jours civils entre la date de la commande et le trente-et-un (31) décembre de l’année civile en cours cf nos [http://www.openflyers.com/license/conditionsgenerales1_3.pdf conditions générales].&lt;br /&gt;
&lt;br /&gt;
==L'accès First Price dispose-t-il d'une connexion sécurisée ?==&lt;br /&gt;
Non, l'accès First Price ne dispose pas d'une connexion sécurisée. Il peut être pris en option (renouvelable chaque année) selon le tarif en vigueur dans notre [http://www.openflyers.com/doc/catalogue-tarifaire.pdf catalogue tarifaire]. L'accès First Price plus l'option HTTPS est de même niveau que le Business avec HTTPS inclus (256 bits).&lt;br /&gt;
&lt;br /&gt;
=Plateforme OpenFlyers=&lt;br /&gt;
==[[Créer_une_plateforme_OpenFlyers_pour_sa_structure|Comment créer une plateforme ?]]==&lt;br /&gt;
&lt;br /&gt;
==Impossible d'accéder à la plateforme de notre structure après création==&lt;br /&gt;
Attention ! Il ne faut pas confondre le couple identifiant/mot de passe qui permet d'accéder au compte client OpenFlyers de votre structure, depuis [https://client.openflyers.com Client Manager], avec le couple identifiant/mot de passe qui permet d'accéder à la plateforme OpenFlyers.&lt;br /&gt;
&lt;br /&gt;
*Le couple identifiant/mot de passe pour accéder au compte client OpenFlyers de votre structure vous a été communiqué par e-mail.&lt;br /&gt;
*Le couple identifiant/mot de passe pour accéder à votre plateforme OpenFlyers, immédiatement après création, est admin/admin. Vous êtes invité à le modifier des que possible&lt;br /&gt;
&lt;br /&gt;
==Nous avons déjà une plateforme OpenFlyers version X et nous voudrions tester la version Y==&lt;br /&gt;
===Quelles alternatives ?===&lt;br /&gt;
====soit vous migrez directement de la version X vers la version Y====&lt;br /&gt;
'''Nous recommandons cette solution (c'est même un prérequis dans le cadre du [[#Comment_fonctionne_le_forfait_param.C3.A9trage_.3F|forfait paramétrage]])'''&lt;br /&gt;
&lt;br /&gt;
*avantages :&lt;br /&gt;
:*Vous habituez vos utilisateurs à la nouvelle interface sans pour autant leur activer les nouvelles fonctionnalités&lt;br /&gt;
:*Vous paramétrez tranquillement depuis une base de données à jour les éléments&lt;br /&gt;
*inconvénients :&lt;br /&gt;
:*vous payez de suite la tarification de la version Y&lt;br /&gt;
:*vous êtes moins libre car vous travaillez sur une base de données en production (mais vous pouvez supprimer cet inconvénient en travaillant en parallèle sur une autre base de données en test)&lt;br /&gt;
Pour procéder à cette migration, il suffit d'envoyer un e-mail à l'équipe OpenFlyers. A noter, qu'il faudra acquitter une nouvelle facture d'hébergement correspondant à la différence de tarification entre la version X et la version Y.&lt;br /&gt;
&lt;br /&gt;
====soit vous créez une nouvelle plateforme qui vous servira de plateforme de test====&lt;br /&gt;
*avantages :&lt;br /&gt;
:*vous avez toute latitude pour paramétrer sans risque&lt;br /&gt;
:*vous ne payez pas la différence de coût entre la version X et la version Y pendant que vous testez&lt;br /&gt;
*inconvénients :&lt;br /&gt;
:*lors de votre migration de votre plateforme en production, vous devrez reprendre tout le paramétrage&lt;br /&gt;
&lt;br /&gt;
Pour cela, il vous suffit de suivre [[#Comment_cr.C3.A9er_une_plateforme_.3F|la procédure de création de plateforme]].&lt;br /&gt;
&lt;br /&gt;
Ensuite, lorsque vous souhaiterez migrer de la version X à la version Y (passage en production sur la version Y), voici ce qu'il faudra faire :&lt;br /&gt;
*nous envoyer un e-mail de demande de migration (ou passer par le forum)&lt;br /&gt;
Alors nous effectuerons les actions suivantes :&lt;br /&gt;
*migration de la base de données X vers la Y&lt;br /&gt;
*changement du pointage de votre adresse openflyers.com/nom_de_la_plateforme par exemple de la X vers la version Y&lt;br /&gt;
Ensuite vous devrez modifier les paramétrages de la nouvelle Y (en reprenant par exemple ceux de votre version de test)&lt;br /&gt;
&lt;br /&gt;
Une fois que cela sera fait, vous nous le direz et nous supprimerons la base de données de la version Y&lt;br /&gt;
&lt;br /&gt;
Ensuite nous facturons chaque demande de migration de base de données (cf. le [http://www.openflyers.com/doc/catalogue-tarifaire.pdf catalogue tarifaire]).&lt;br /&gt;
&lt;br /&gt;
====Forfait paramétrage====&lt;br /&gt;
N'oubliez-pas que nous proposons [[#Comment_fonctionne_le_forfait_param.C3.A9trage_.3F|le forfait paramétrage]] pour la configuration d'OpenFlyers.&lt;br /&gt;
&lt;br /&gt;
===Quel est le délai pour migrer une base de données ?===&lt;br /&gt;
Il faut compter 1 semaine&lt;br /&gt;
&lt;br /&gt;
==[[Modèle_commercial_et_compte_client_OpenFlyers#D.C3.A9roulement_d.27une_migration|Comment se fait la migration vers une version supérieure ?]]==&lt;br /&gt;
&lt;br /&gt;
==[[Modèle_commercial_et_compte_client_OpenFlyers#Cons.C3.A9quences_d.27une_migration|Quelles sont les conséquences d'une migration ?]]==&lt;br /&gt;
&lt;br /&gt;
==La configuration nous laisse perplexe (paramétrage de la facturation, de la comptabilité, du décompte des temps de vols), comment faire ?==&lt;br /&gt;
Si vous souhaitez utiliser en production rapidement votre plateforme OpenFlyers (par exemple idéalement à l'occasion d'un nouvel exercice comptable, c'est à dire au 1er janvier), et que vous souhaitez avoir un paramétrage fonctionnel rapidement sans avoir à y consacrer des heures pour comprendre, tester et sans doute passer à côté de certaines &amp;quot;subtilités&amp;quot;, alors sachez que nous avons mis en place un &amp;quot;[[#Comment_fonctionne_le_forfait_param.C3.A9trage_.3F|forfait paramétrage]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ce forfait est également valable pour un client utilisateur de la version 1.3.x et qui souhaite migrer sans attendre à la version 3.0.3 en utilisant toutes ses fonctionnalités (comptes pilotes et heures de vols).&lt;br /&gt;
&lt;br /&gt;
==Nous avons une version 3 en test==&lt;br /&gt;
===mais nous souhaiterions reprendre tout à zéro, comment faire ?===&lt;br /&gt;
Vous vous inscrivez à nouveau avec un nouveau nom ici : http://client.openflyers.com&lt;br /&gt;
&lt;br /&gt;
===Peut-on garder la configuration de la version 3 et migrer uniquement les réservations de la 1.3.x ?===&lt;br /&gt;
Non, ce n'est pas possible car les contenus auront évolués différemment.&lt;br /&gt;
&lt;br /&gt;
Voila ce qu'il faut faire :&lt;br /&gt;
*demander la migration par e-mail de la 1.3.x vers la 3 avec passage en prod sur la 3 (c'est transparent pour les utilisateurs : seule l'interface changera pour eux tant que l'administrateur ne leur aura pas donné de droits supplémentaires)&lt;br /&gt;
*reprendre la configuration faite sur la 3 en test sur la nouvelle 3&lt;br /&gt;
*envoyer un nouveau e-mail pour dire que l'on peut supprimer l'ancienne 3 en test&lt;br /&gt;
&lt;br /&gt;
==Comment passer à la gestion des comptes et la comptabilité dans OpenFlyers ?==&lt;br /&gt;
Pour activer la gestion des comptes et de la comptabilité dans OpenFlyers, vous pouvez suivre les FAQ dédiées à la comptabilité ainsi que les documentations qui présentent les modules de comptabilité :&lt;br /&gt;
*[[FAQ comptabilité|FAQ comptabilité version 2.1]]&lt;br /&gt;
*[[FAQ_accounting3|FAQ comptabilité version 3.0]]&lt;br /&gt;
*[[FAQ_accounting4|FAQ comptabilité version 4]]&lt;br /&gt;
*[[Accueil#Comptabilit.C3.A9|Documentations sur la comptabilité]]&lt;br /&gt;
dont [[Comptabilité#Mise_en_place_de_la_comptabilit.C3.A9_dans_OpenFlyers|Quelques conseils sur la mise en place de la comptabilité dans OpenFlyers]]&lt;br /&gt;
&lt;br /&gt;
=Support=&lt;br /&gt;
==Quels sont les supports techniques ?==&lt;br /&gt;
Il existe à ce jour 3 types de support :&lt;br /&gt;
*le support-forum accessible depuis notre site internet http://www.openflyers.com à l'onglet &amp;quot;Support&amp;quot;&lt;br /&gt;
*le support par e-mail réservé aux abonnements &amp;quot;Business&amp;quot; et plus.&lt;br /&gt;
*le [http://www.openflyers.com/support support ponctuel par téléphone] qui peut vous permettre de vous dépanner si nous pouvons vous fournir la réponse en temps réel.&lt;br /&gt;
&lt;br /&gt;
==[[How_to_communicate_with_OpenFlyers#Cr.C3.A9er_un_compte_d.27acc.C3.A8s_au_support-forum|Comment créer son accès au support-forum ?]]==&lt;br /&gt;
&lt;br /&gt;
==Les e-mails envoyés à OpenFlyers sont retournés en erreur==&lt;br /&gt;
Lors de l'envoi de vos messages, vous avez avez eu un message d'erreur en retour.&lt;br /&gt;
&lt;br /&gt;
Le problème peut venir de l'[[Wikipedia-fr:Sender_Policy_Framework|authentification SPF]] que nous avons mis en place.&lt;br /&gt;
&lt;br /&gt;
Ainsi, si le serveur OpenFlyers refuse les e-mails non authentifiés qui parviennent depuis un nom de domaine comme smtp.nom-de-domaine.com pour défaut de SPF, il faut rajouter un enregistrmenet TXT dans le gestionnaire du serveur concerné avec la ligne de commande : v=spf1 include:_spf.nom-de-domaine.com ~all.&lt;/div&gt;</summary>
		<author><name>Bbarbe</name></author>	</entry>

	<entry>
		<id>https://doc2-fr.openflyers.com/index.php?title=Mod%C3%A8le-commercial-et-compte-client-OpenFlyers&amp;diff=14192</id>
		<title>Modèle commercial et compte client OpenFlyers</title>
		<link rel="alternate" type="text/html" href="https://doc2-fr.openflyers.com/index.php?title=Mod%C3%A8le-commercial-et-compte-client-OpenFlyers&amp;diff=14192"/>
				<updated>2016-12-02T15:27:42Z</updated>
		
		<summary type="html">&lt;p&gt;Bbarbe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
=Définitions=&lt;br /&gt;
==Plateforme de démonstration==&lt;br /&gt;
Les plateformes de démonstration sont accessibles au public et servent de bac à sable.&lt;br /&gt;
&lt;br /&gt;
Le sous-domaine de l'URL des plateformes de démonstration est ''demo'' ou commence par ''demo-''. Il existe également des plateformes de démonstration spécifiques dont le sous-domaine est différent.&lt;br /&gt;
&lt;br /&gt;
Elles sont réinitialisées toutes les heures à la minute 44.&lt;br /&gt;
==Plateforme en production==&lt;br /&gt;
Une plateforme est considérée en production lorsque l'abonnement pour l'année en cours a été payé.&lt;br /&gt;
&lt;br /&gt;
La phase de paramétrage qui précède le &amp;quot;passage en production&amp;quot; effectif s'effectue toujours sur une &amp;quot;plateforme en production&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Plateforme en test==&lt;br /&gt;
Les plateformes en test sont de 2 natures :&lt;br /&gt;
*Les plateformes créées par un utilisateur et qui ne sont pas [[#Plateforme_en_production|en production]];&lt;br /&gt;
*[[#Plateforme_suppl.C3.A9mentaire_de_test|Les plateformes supplémentaires de test]];&lt;br /&gt;
&lt;br /&gt;
=Le modèle commercial de la SARL OpenFlyers=&lt;br /&gt;
==Fonctionnement économique==&lt;br /&gt;
OpenFlyers fonctionne sur le modèle économique d'une ASP (=Application Service Provider) ou SaaS (= Software as a Service). On parle également de &amp;quot;cloud computing&amp;quot; (informatique dans les nuages). C'est-à-dire que nous fournissons un service applicatif par le biais d'internet pour lequel nous facturons un abonnement annuel.&lt;br /&gt;
&lt;br /&gt;
Les avantages de ce système pour les clients finaux sont les suivants :&lt;br /&gt;
*la maintenance logiciel est déportée et ne nécessite plus le déplacement d'un technicien. Cela permet également de mettre en œuvre plus rapidement des correctifs à la demande ;&lt;br /&gt;
*le coût des développements est mutualisé entre les différents clients ;&lt;br /&gt;
*nous assurons nous-mêmes la pérennité des données par sauvegardes journalières sur plusieurs serveurs en plusieurs lieux et cela sur 20 jours glissants.&lt;br /&gt;
&lt;br /&gt;
De plus, OpenFlyers existe en plusieurs versions dont certaines sont disponibles en téléchargement. Vous pouvez retrouver [http://wiki.openflyers.org/index.php?title=FAQ#May_I_install_OpenFlyers_on_my_own_server.3F plus d'infos sur notre support libre].&lt;br /&gt;
&lt;br /&gt;
==Arbitrage des demandes de développements==&lt;br /&gt;
Les demandes de développements pour avoir de nouvelles fonctionnalités sont infinies. Au début de son existence OpenFlyers devait arbitrer entre les demandes des différents clients. Pour cela, l'équipe de développement OpenFlyers tenait compte de la taille d'un client ou d'un prospect pour arbitrer les différentes demandes et du potentiel impact qui pouvait en résulter sur le chiffre d'affaire au travers des nouveaux clients qui pouvaient se décider à passer à OpenFlyers du fait de l'existence de telle ou telle fonctionnalité. Ces demandes étant nombreuses, les demandes non retenues étaient nombreuses et cela pouvait conduire à &amp;quot;vexer&amp;quot; un client qui pouvait considérer que sa demande non retenue ou mise en attente était plus pertinente qu'une autre demande retenue.&lt;br /&gt;
&lt;br /&gt;
Afin de ne plus être juge et parti, OpenFlyers a remis au goût du jour le [[Wikipedia-fr:Suffrage_censitaire|vote censitaire]] au travers des heures de bonus développement. Ainsi, les conditions générales d'OpenFlyers donne la possibilité aux clients de choisir eux-mêmes les développements qui leur seront le plus profitable. Le fonctionnement est le suivant :&lt;br /&gt;
*Tout client désireux de voir développer une nouvelle fonctionnalité peut faire '''une unique demande''' de devis développement '''par an'''. Cette demande doit être effectuée par e-mail en précisant le nom de la structure aéronautique cliente.&lt;br /&gt;
*En fonction du coût en heures de développement, ce développement peut être financé par les heures de bonus développement dont bénéficie chaque client. Plusieurs clients peuvent mutualiser leurs heures de bonus de développement. Les développements peuvent être également financés en partie ou en totalité par une facturation spécifique dans le cas où le bonus développement ne permet pas de couvrir l'intégralité du coût en heures.&lt;br /&gt;
*A l'issue d'une demande de devis, un client peut demander un nouveau devis à condition qu'il ait accepté le 1er devis. Le but est de limiter le temps consacré par l'équipe OpenFlyers à effectuer des devis.&lt;br /&gt;
Nous mutualisons les développements : tous nos développements sont intégrés au sein de l'unique version en cours de développement. Ainsi, tous les clients bénéficient des demandes de chacun d'entre-eux.&lt;br /&gt;
*Les développements &amp;quot;votés&amp;quot; sont triés par ordre d'arrivé sauf pour ceux dont une partie est financée en somme &amp;quot;sonnante et trébuchante&amp;quot; qui passent en priorité.&lt;br /&gt;
&lt;br /&gt;
Enfin, les clients peuvent, avant d'effectuer une demande de devis par e-mail, faire part de leur demande sur le [http://support-fr.openflyers.com/ forum] dans la partie '''Evolutions et Adaptations''' en vérifiant qu'elle n'existe pas déjà. C'est aussi un moyen pour le demandeur d'inviter d'autres clients à s'associer à leur demande en mutualisant leurs heures de bonus développement.&lt;br /&gt;
&lt;br /&gt;
==Bonus assistance/développement==&lt;br /&gt;
Chaque client dispose en fonction de son abonnement d'un quota d'heures de bonus qui peuvent être utilisées comme assistance ou comme développement (cf. [[#Arbitrage_des_demandes_de_d.C3.A9veloppements|Arbitrage des demandes de développements]]).&lt;br /&gt;
&lt;br /&gt;
L'assistance permet de couvrir une demande de support téléphonique ou une demande d'intervention sur la plateforme.&lt;br /&gt;
&lt;br /&gt;
Pour utiliser les heures de bonus, il faut :&lt;br /&gt;
*Faire une demande par e-mail d'intervention ou de support.&lt;br /&gt;
''Nous répondons en indiquant le temps à prévoir/déduire des heures de bonus''&lt;br /&gt;
*Confirmer sa demande par retour d'e-mail&lt;br /&gt;
&lt;br /&gt;
Les demandes sont triées par ordre d'arrivé sauf pour celles dont une partie est financée en somme &amp;quot;sonnante et trébuchante&amp;quot; qui passent en priorité.&lt;br /&gt;
&lt;br /&gt;
A noter que les heures non utilisées dans l'année sont perdues (cf. les [https://openflyers.com/fr/entreprise/conditions-generales conditions générales de vente]).&lt;br /&gt;
&lt;br /&gt;
Il n'existe pas à ce jour d'interface permettant de suivre les heures déjà utilisées. Il est néanmoins possible d'en obtenir le suivi sur simple demande par e-mail.&lt;br /&gt;
&lt;br /&gt;
=Compte client OpenFlyers=&lt;br /&gt;
Attention, il ne faut pas confondre son compte client OpenFlyers qui permet d'accéder à sa fiche client OpenFlyers et qui permet de renouveler son abonnement OpenFlyers avec son identifiant personnel permettant d'accéder à sa plateforme OpenFlyers.&lt;br /&gt;
&lt;br /&gt;
==Accéder à son compte client OpenFlyers==&lt;br /&gt;
Aller sur [https://client.openflyers.com l'espace client] OpenFlyers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'identifiant permettant d'accéder à votre compte client correspond au nom de votre plateforme.&lt;br /&gt;
&lt;br /&gt;
Par exemple, si votre plateforme est référencée par l'adresse :&lt;br /&gt;
 http://openflyers.com/mermoz/&lt;br /&gt;
&lt;br /&gt;
Alors le nom de votre plateforme est '''mermoz'''.&lt;br /&gt;
&lt;br /&gt;
C'est donc '''mermoz''' qu'il faut utiliser comme identifiant pour vous connecter au .&lt;br /&gt;
&lt;br /&gt;
Si vous n'avez pas le mot de passe, vous pouvez le réactiver avec la fonction '''Mot de passe oublié ?''' qui est sur la page d'identification.&lt;br /&gt;
&lt;br /&gt;
Une adresse e-mail vous sera demandée. Vous pourrez saisir l'adresse e-mail de la structure aéronautique ou celle du contact qui ont été saisies dans la fiche client (il s'agit des adresses e-mails sur lesquelles sont envoyées nos e-mails d'alerte de renouvellement ou d'information).&lt;br /&gt;
&lt;br /&gt;
Dans le but de ne pas être submergés par les demandes, nous facturons la ré-initialisation manuelle, par nos soins, du mot de passe ou la mise à jour des adresses e-mails présentes sur la fiche client pour les abonnement First Price (cf. le [http://www.openflyers.com/doc/catalogue-tarifaire.pdf catalogue tarifaire]).&lt;br /&gt;
&lt;br /&gt;
==Changer de responsable en charge d'OpenFlyers==&lt;br /&gt;
Lorsqu'il y a un changement de responsable en charge d'OpenFlyers, pour que la passation se passe dans les meilleures conditions, il faut penser à effectuer les 3 changements suivants :&lt;br /&gt;
*Attribuer un profil d'administrateur de la plateforme OpenFlyers au niveau de la plateforme (procédure pour intervenir sur la fiche utilisateur pour la [[User-management3#Modifier_un_utilisateur|version 3]] ou la [[User-management4#Acc.C3.A9der_.C3.A0_l.27interface_de_gestion_des_utilisateurs|version 4]])&lt;br /&gt;
*Mettre à jour le champ du responsable OpenFlyers au niveau de la plateforme (procédure pour la [[AdminDoc3#Responsable_OpenFlyers|version 3]] et la [[AdminDoc4#Responsable_OpenFlyers|version 4]]).&lt;br /&gt;
*Mettre à jour le nom du responsable OpenFlyers au niveau de la fiche client en effectuant la procédure suivante :&lt;br /&gt;
**[[#Acc.C3.A9der_.C3.A0_son_compte_client_OpenFlyers|Se connecter à l'espace client OpenFlyers]]&lt;br /&gt;
**Aller dans '''Fiche contact'''&lt;br /&gt;
**Mettre à jour la fiche&lt;br /&gt;
**Cliquer sur le bouton '''Valider'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas où la passation ne peut pas se faire ainsi car l'ancien responsable OpenFlyers ne peut pas effectuer ces opérations ou transmettre les couples (identifiants, mots de passe) au nouveau responsable pour qu'il effectue ces opérations, vous pouvez nous demandez, uniquement par e-mail, d'effectuer ces changements de responsable OpenFlyers, en joignant à l'e-mail :&lt;br /&gt;
*Un courrier signé du responsable de la structure (gérant, président, etc.) contenant la demande de mise à jour du responsable OpenFlyers désigné et indiquant explicitement le nom du nouveau responsable avec son adresse e-mail&lt;br /&gt;
*Une copie d'un document officiel (extrait K-BIS, procès-verbal d'assemblée générale, etc.) permettant de prouver la qualité du responsable de la structure.&lt;br /&gt;
Le courrier scanné n'est pas nécessaire dans le cas où le nouveau responsable OpenFlyers apparait sur l'extrait K-BIS.&lt;br /&gt;
&lt;br /&gt;
'''Attention :''' dans le cas d'une société, le responsable de la structure doit détenir plus de la moitié des parts dans la société. Dans le cas où il y a cogérance, alors il faut que le courrier soit signé de l'ensemble des responsables de sorte à représenter plus de la moitié des parts de la société.&lt;br /&gt;
&lt;br /&gt;
==Mettre à jour sa fiche client==&lt;br /&gt;
*[[#Acc.C3.A9der_.C3.A0_son_compte_client_OpenFlyers|Se connecter à l'espace client]]&lt;br /&gt;
*Cliquer sur le menu '''Fiche contact'''&lt;br /&gt;
*Mettre à jour le contenu des champs concernés&lt;br /&gt;
*Cliquer sur le bouton valider&lt;br /&gt;
''Conseil OpenFlyers :'' Il est fortement recommandé d'avoir 2 adresses e-mails différentes pour les champs '''E-mail client''' et '''E-mail contact'''&lt;br /&gt;
&lt;br /&gt;
==Migrer vers une nouvelle version OpenFlyers==&lt;br /&gt;
Chez OpenFlyers, nous parlons de migration vers une nouvelle version lorsqu'il s'agit de mettre à jour une plateforme d'une version X vers une version Y incluant des changements majeurs.&lt;br /&gt;
&lt;br /&gt;
Par contre, il existe les mises à jours. Les mises à jour ne changent pas le numéro de version principal (exemple : 3.2 ou 3.5 correspondent à la même version principale). OpenFlyers effectue ces mises à jour automatiquement. Leur objectif est de corriger des bugs ou de rajouter de nouvelles fonctionnalités.&lt;br /&gt;
&lt;br /&gt;
Hormis pour les abonnements Première, qui disposent d'une plateforme avec une version gelée et indépendante d'OpenFlyers, toutes les autres plateformes OpenFlyers sont sur un moteur commun qui est mis à jour de façon transparente plusieurs fois par semaine, voir même par jour.&lt;br /&gt;
&lt;br /&gt;
Nous ne présentons ci-dessous que les migrations &amp;quot;majeurs&amp;quot; qui peuvent impliquer des opérations de nettoyage manuel post-migration.&lt;br /&gt;
&lt;br /&gt;
===Coût d'une migration===&lt;br /&gt;
Lorsque vous êtes en production sur une version X d'OpenFlyers, vous pouvez demander à migrer vers la dernière version stable proposée aux nouveaux clients ou même vers la dernière version en développement dénommée &amp;quot;alpha&amp;quot; ou &amp;quot;beta&amp;quot; (par exemple &amp;quot;version 3.0alpha&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Les migrations sont incluses dans le support des abonnement Business, Première et Corporate.&lt;br /&gt;
&lt;br /&gt;
Dans le cas d'un abonnement First Price, la migration est facturée 50 € HT sauf dans le cas d'une migration vers une version alpha ou beta ou depuis vers une version alpha ou beta vers la version stable suivante. Exemple de migrations offertes en abonnement First Price :&lt;br /&gt;
*Migration depuis la version 3.0alpha vers la version 3&lt;br /&gt;
*Migration depuis la version 3.5 vers la version 4.0alpha&lt;br /&gt;
*Migration depuis la version 4.0alpha vers la version 4&lt;br /&gt;
&lt;br /&gt;
Enfin, dans le cas où la plateforme bénéficiait d'un ancien tarif, le fait de migrer implique le passage au tarif en vigueur au moment de la migration et à l'acquittement de la différence de tarif par rapport à l'ancien tarif.&lt;br /&gt;
&lt;br /&gt;
===Déroulement d'une migration===&lt;br /&gt;
#Il faut avoir pris connaissance des [[#Cons.C3.A9quences_d.27une_migration|conséquences d'une migration]] et accepter le fait qu'elle est irréversible&lt;br /&gt;
#Il faut éventuellement créer la ou les factures selon l'abonnement déjà souscrit et l'abonnement souhaité (cf. [[#Co.C3.BBt_d.27une_migration|Coût d'une migration]] en [[#Acc.C3.A9der_.C3.A0_son_compte_client_OpenFlyers|se connectant sur l'espace client]].&lt;br /&gt;
#Il faut payer les factures correspondantes ainsi créées.&lt;br /&gt;
#Il faut en faire la demande par e-mail et précisant la date avant laquelle vous ne souhaitez pas qu'on effectue de migration. Il n'est pas possible de programmer une date pour une migration : cela se fait en fonction de la synchronisation des disponibilités des différents collaborateurs d'OpenFlyers qui doivent intervenir à tour de rôle.&lt;br /&gt;
#Nous créons alors les factures liées à la migration, à la différence de tarif et au forfait paramétrage selon votre abonnement et les options souscrites (cf. le [http://www.openflyers.com/doc/catalogue-tarifaire.pdf catalogue tarifaire]).&lt;br /&gt;
#Vous payez.&lt;br /&gt;
#Nous procédons alors à cette migration et nous fournissons une URL de substitution pendant une semaine pour palier les problèmes de cache DNS. Lors de la migration l'interruption de service est seulement de quelques minutes. Elle est donc transparente pour la quasi totalité des utilisateurs.&lt;br /&gt;
#Selon ce qui a été convenu nous effectuons ou le client effectue [[Upgrade3|le nettoyage lié au passage à la version 3]].&lt;br /&gt;
#Si vous avez souscrit au forfait paramétrage ou qu'il est inclut dans votre abonnement, nous vous envoyons un questionnaire pour le paramétrage. Cf. [[#Comment_fonctionne_le_forfait_param.C3.A9trage_.3F|Forfait paramétrage]]&lt;br /&gt;
&lt;br /&gt;
===Conséquences d'une migration===&lt;br /&gt;
*Toute migration est irréversible : nous ne créons pas de script permettant de revenir vers une version antérieure. En effet, nous effectuons des migrations &amp;quot;cachées&amp;quot; plusieurs fois par semaine qui constituent des corrections de bugs ou l'ajout de nouvelles fonctionnalités. De ce fait, notre exploitation est organisée pour pouvoir palier à un défaut apparaissant à l'issue d'une migration tout comme elle est organisée pour faire face à l'apparition d'un nouveau bug lors d'une mise à jour transparente.&lt;br /&gt;
*Attention notamment à une migration vers une version &amp;quot;alpha&amp;quot; ou &amp;quot;beta&amp;quot; : en effet, une migration vers cette version implique que vous acceptiez de fonctionner sur une version qui évolue sans cesse. Outre les corrections de bugs, nous rajoutons sur la version beta régulièrement des fonctionnalités qui peuvent créer de nouvelles anomalies. Bien entendu, nous faisons le nécessaire dès que nous avons connaissance d'un problème (notamment par le [http://bts.openflyers.org BTS] pour résoudre les défauts. C'est d'ailleurs grâce aux clients volontaires pour fonctionner sur la version beta que nous pouvons faire évoluer le produit.&lt;br /&gt;
&lt;br /&gt;
==Ajouter une ressource à son abonnement OpenFlyers==&lt;br /&gt;
L'abonnement OpenFlyers est calculé en fonction du nombre de ressources. Le nombre est déterminé pour l'année civile complète.&lt;br /&gt;
&lt;br /&gt;
Si vous voulez rajouter une ressource en cours d'année, alors vous devez [[#Acc.C3.A9der_.C3.A0_son_compte_client_OpenFlyers|vous connecter sur l'espace client OpenFlyers]] et créer une facture d'ajout de ressource en indiquant le nombre de ressources supplémentaires. Le tarif appliqué sera alors celui de l'année complète.&lt;br /&gt;
&lt;br /&gt;
Une fois le paiement de la facture correspondante acquitté, il sera possible d'intervenir sur la plateforme concernée pour rajouter la ressource. Il y alors 2 cas possible :&lt;br /&gt;
*C'est une ressource dont les tarifs correspondent à un type de ressource déjà présent sur la plateforme concernée. Dans ce cas, l'opération est relativement simple et nous conseillons de suivre soi-même la [[#Cr.C3.A9er_une_ressource_sur_sa_plateforme_OpenFlyers|procédure de création ci-dessous]].&lt;br /&gt;
*C'est une ressource qui nécessite la création d'un nouveau type de ressource avec de nouveaux tarifs : dans ce cas, l'opération est plus complexe. Elle peut être effectuée de façon autonome en suivant la [[#Cr.C3.A9er_une_ressource_sur_sa_plateforme_OpenFlyers|procédure de création ci-dessous]] et en procédant par comparaison avec les types de ressources existantes. Cependant, si vous souhaitez éviter tout risque d'erreur, nous recommandons de nous confier cette tâche en nous communiquant les éléments comme lors de la mise en place du paramétrage par nos soins à l'aide du questionnaire. Nous décomptons notre intervention des heures de bonus assistance/développement à hauteur d'une heure.&lt;br /&gt;
&lt;br /&gt;
===Créer une ressource sur sa plateforme OpenFlyers===&lt;br /&gt;
*[[AdminDoc1.2#Ajouter_un_avion|Ajouter un avion avec la version 1.3 d'OpenFlyers]]&lt;br /&gt;
*[[Documentation administrateur#Ajouter_un_a.C3.A9ronef|Ajouter un aéronef avec la version 2.1 d'OpenFlyers]]&lt;br /&gt;
*[[Resource-management3#Ajouter_une_ressource|Ajouter une ressource avec la version 3 d'OpenFlyers]]&lt;br /&gt;
*[[Resource-management4#Ajouter_une_ressource|Ajouter une ressource avec la version 4 d'OpenFlyers]]&lt;br /&gt;
&lt;br /&gt;
==Enlever une ressource à son abonnement OpenFlyers==&lt;br /&gt;
Si vous enlevez une ressource en cours d'année, il n'y a aucun changement d'abonnement puisque les ressources sont souscrites pour toute l'année.&lt;br /&gt;
&lt;br /&gt;
===Désactiver une ressource sur sa plateforme OpenFlyers===&lt;br /&gt;
*[[AdminDoc1.2#D.C3.A9sactiver_un_avion|Désactiver un avion avec la version 1.3 d'OpenFlyers]]&lt;br /&gt;
*[[Documentation administrateur#D.C3.A9sactiver_un_a.C3.A9ronef|Désactiver un aéronef avec la version 2.1 d'OpenFlyers]]&lt;br /&gt;
*[[Resource-management3#D.C3.A9sactiver_une_ressource|Désactiver une ressource avec la version 3 d'OpenFlyers]]&lt;br /&gt;
*[[Resource-management4#D.C3.A9sactiver_une_ressource|Désactiver une ressource avec la version 4 d'OpenFlyers]]&lt;br /&gt;
&lt;br /&gt;
==Remplacer une ressource par une autre dans son abonnement OpenFlyers==&lt;br /&gt;
S'il y a un remplacement de ressource, alors il n'y a pas besoin d'acquitter un nouvel abonnement pour la nouvelle ressource. Le remplacement doit se faire en 2 étapes :&lt;br /&gt;
#[[#Désactiver-une-ressource-sur-sa-plateforme-OpenFlyers|désactiver l'ancienne ressource]]&lt;br /&gt;
#[[#Créer-une-ressource-sur-sa-plateforme-OpenFlyers|activer la nouvelle ressource]]&lt;br /&gt;
&lt;br /&gt;
Dans le cas d'un remplacement temporaire, il peut être aussi simple de simplement renommer la ressource concernée (immatriculation par exemple). A noter que dans ce cas, les statistiques totaliseront l'activité des 2 ressources en 1 seule.&lt;br /&gt;
&lt;br /&gt;
Si vous ne souhaitez pas désactiver cette ressource, alors vous pouvez [[#Ajouter_une_ressource_.C3.A0_son_abonnement_OpenFlyers|créer une facture complémentaire d'abonnement pour une ressource supplémentaire]].&lt;br /&gt;
&lt;br /&gt;
==Renouveler son abonnement OpenFlyers==&lt;br /&gt;
Pour renouveler l'abonnement, il faut :&lt;br /&gt;
#[[#Acc.C3.A9der_.C3.A0_son_compte_client_OpenFlyers|Se connecter]] sur le compte client OpenFlyers&lt;br /&gt;
#Créer la facture en fonction du choix d'abonnement (vous trouverez plus d'informations dans notre [http://www.openflyers.com/doc/catalogue-tarifaire.pdf catalogue tarifaire])&lt;br /&gt;
#Ensuite, payer soit :&lt;br /&gt;
#*par carte bancaire en cliquant sur le lien &amp;quot;paiement par carte bancaire&amp;quot; (le choix le plus pratique pour une prise en compte immédiate)&lt;br /&gt;
#*par transfert bancaire (dans ce cas, vous devez prendre en charge tous les frais liés à la transaction). Les coordonnées bancaires sont indiquées sur la facture.&lt;br /&gt;
#*par chèque (attention au délai d'acheminement du courrier)&lt;br /&gt;
&lt;br /&gt;
===Variation du nombre de ressources lors du renouvellement===&lt;br /&gt;
Lors du renouvellement, le nombre minimum de ressources proposées, dans l'interface de renouvellement de l'abonnement, correspond au nombre de ressources activées dans la plateforme OpenFlyers.&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez augmenter le nombre de ressources pour l'année suivante, il suffit de modifier la valeur proposée par défaut.&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez diminuer le nombre de ressources pour l'année suivante, il faut [[#D.C3.A9sactiver_une_ressource_sur_sa_plateforme_OpenFlyers|désactiver des ressources dans la plateforme OpenFlyers]] afin que le nombre proposé par défaut diminue avant de créer la facture de renouvellement d'abonnement.&lt;br /&gt;
&lt;br /&gt;
==Plateforme supplémentaire de test==&lt;br /&gt;
Cette fonctionnalité, disponible pour les clients étant au moins sous la version 3.5 d'OpenFlyers, est utile dans le cas où vous souhaitez :&lt;br /&gt;
*effectuer des tests sur une recopie de la plateforme de démonstration.&lt;br /&gt;
*effectuer des tests sur une recopie de votre propre plateforme et ainsi modifier son paramétrage sur une version [[Wikipedia-fr:Sandbox_(sécurité_informatique)|sandbox]] sans impacter la version de production.&lt;br /&gt;
*essayer la version 4 d'OpenFlyers&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sandbox.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour cela, il faut :&lt;br /&gt;
*Se connecter sur son [[#Acc.C3.A9der_.C3.A0_son_compte_client_OpenFlyers|compte client]]&lt;br /&gt;
*Aller dans le menu '''Plateforme'''&lt;br /&gt;
* Plusieurs choix sont proposés :&lt;br /&gt;
** Si vous êtes sous la version 3.5 :&lt;br /&gt;
*** '''De openflyers.com/demo-fr vers openflyers.com/acbd.test''' : Permet de créer une plateforme de test en effectuant une recopie de la plateforme démo avec suppression du message d'accueil &amp;quot;La base de données cette plateforme de démonstration est réinitialisée toutes les heures, vers XX:45&amp;quot;.&lt;br /&gt;
*** '''De openflyers.com/acbd vers openflyers.com/acbd.of4''' : Permet de créer une plateforme d'essai sous la version 4 d'OpenFlyers en effectuant une recopie de votre plateforme existante puis en faisant une montée de version sur cette recopie&lt;br /&gt;
** Si vous êtes sous la version 3.5 ou supérieure :&lt;br /&gt;
*** '''De openflyers.com/acbd vers openflyers.com/acbd.test''' : Permet de créer une plateforme de test en effectuant une recopie de votre plateforme existante&lt;br /&gt;
* Cliquer sur '''Valider'''&lt;br /&gt;
&lt;br /&gt;
Si votre plateforme est référencée par l'adresse :&lt;br /&gt;
&amp;lt;pre&amp;gt;http://openflyers.com/acbd/&amp;lt;/pre&amp;gt;&lt;br /&gt;
L'accès à la plateforme de test se fait par l'adresse :&lt;br /&gt;
&amp;lt;pre&amp;gt;http://openflyers.com/acbd.test/&amp;lt;/pre&amp;gt;&lt;br /&gt;
L'accès à la plateforme d'essai de la version 4 d'OpenFlyers se fait par l'adresse :&lt;br /&gt;
&amp;lt;pre&amp;gt;http://openflyers.com/acbd.of4/&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bbarbe</name></author>	</entry>

	<entry>
		<id>https://doc2-fr.openflyers.com/index.php?title=Interfa%C3%A7age-OpenFlyers-et-armoire-%C3%A0-cl%C3%A9&amp;diff=14191</id>
		<title>Interfaçage OpenFlyers et armoire à clé</title>
		<link rel="alternate" type="text/html" href="https://doc2-fr.openflyers.com/index.php?title=Interfa%C3%A7age-OpenFlyers-et-armoire-%C3%A0-cl%C3%A9&amp;diff=14191"/>
				<updated>2016-12-02T15:22:25Z</updated>
		
		<summary type="html">&lt;p&gt;Bbarbe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de décrire le protocole d'interfaçage avec toute solution d'armoire à clés tiers. Pour les armoires à clés commercialisées par OpenFlyers, il faut se référer à la [[Contrôle d'accès|documentation sur le contrôle d'accès]].&lt;br /&gt;
&lt;br /&gt;
Le protocole repose sur le principe que l'interfaçage est réalisé par un logiciel de contrôle de l'armoire à clé sur un PC ou une solution embarquée et qui dispose d'un accès à internet lui permettant de communiquer avec OpenFlyers. La communication est synchrone.&lt;br /&gt;
&lt;br /&gt;
=Interface utilisateur OpenFlyers=&lt;br /&gt;
L'utilisateur ouvre un vol dans OpenFlyers :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Menu-contextuel-ouverture-de-vol.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il se retrouve sur le formulaire de saisie du vol en mode Départ en vol:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Formulaire-ouverture-de-vol.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il clique sur le bouton de validation, 3 cas peuvent se présenter :&lt;br /&gt;
*Une alerte ou plusieurs alertes rouges (bloquantes), s'affichent : l'utilisateur n'a pas la possibilité de surpasser ses alertes, il ne peut alors récupérer la clé :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Alertes-bloquantes-en-ouverture-vol.png]]&lt;br /&gt;
&lt;br /&gt;
*Une alerte ou plusieurs alertes oranges (non-bloquantes), s'affichent : l'utilisateur a la possibilité de surpasser ses alertes, et ainsi de récupérer la clé :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Alertes-non-bloquantes-en-ouverture-vol.png]]&lt;br /&gt;
&lt;br /&gt;
*Aucune alerte ne s'affiche, l'utilisateur se retrouve alors directement sur la page lui indiquant :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Message autorisation libération clé.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois qu'il a cliqué sur '''LIBÉRER LA CLÉ''', il dispose de X secondes. Cette durée est paramétrable par OpenFlyers.&lt;br /&gt;
&lt;br /&gt;
*Lorsqu'il rentre de vol, l'utilisateur n'a plus qu'a retourner sur le formulaire de saisie de vol et à fermer son vol. La clé doit etre remise en place sur l'armoire pour fermer le vol.&lt;br /&gt;
&lt;br /&gt;
=Interface administrateur OpenFlyers=&lt;br /&gt;
==Activation et configuration de la gestion des armoires à clé==&lt;br /&gt;
*'''Admin'''&lt;br /&gt;
*'''Configuration &amp;gt; Paramétrage'''&lt;br /&gt;
*Dans le formulaire '''Gestion des vols''', sélectionner '''Activé(e)''' pour le champ '''Gestion armoire à clé'''&lt;br /&gt;
*Cliquer sur le bouton '''Valider''' lié au formulaire&lt;br /&gt;
*Dans le formulaire '''Gestion des vols''', sélectionner '''Activé(e)''' pour le champ '''Gestion des clés'''&lt;br /&gt;
*Cliquer à nouveau sur le bouton '''Valider''' lié au formulaire&lt;br /&gt;
*Le formulaire apparait alors comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Paramétrage armoire à clé.png]]&lt;br /&gt;
&lt;br /&gt;
*Signification des paramètres :&lt;br /&gt;
**'''Gestion des clés''' : Gestion par OpenFlyers des clés de l'armoire ('''Désactivé(e)''' ou '''Activé(e)''')&lt;br /&gt;
**'''Nombre de clés''' : nombre de clés possibles dans l'armoire&lt;br /&gt;
**'''Temporisation''' : temps en secondes pendant lequel la clé peut être retirée après autorisation.&lt;br /&gt;
**'''Logiciel de contrôle de l'armoire à clé''' : Il s'agit du nom du logiciel de contrôle de l'armoire à clé. PyOpenKey (protocole open), OpenKey (protocole Openflyers, version 1), pyOpenkey2 (protocole Openflyers version 2) . &lt;br /&gt;
**'''IP du PC contenant le logiciel de contrôle''' : adresse IP du PC sur lequel se trouve le logiciel de contrôle de l'armoire à clé.&lt;br /&gt;
**'''Port du PC contenant le logiciel de contrôle''' : port sur lequel écoute le logiciel de contrôle de l'armoire à clé.&lt;br /&gt;
**'''Fermeture automatique des vols au retour de la clé''' : permet de programmer la fermeture automatique des vols au retour de la clé.&lt;br /&gt;
**'''Phrase mot de passe''' : phrase permettant d'authentifier la source de la transmission dans le cas d'une requête XML-RPC.&lt;br /&gt;
'''Attention :''' dans le cas où le logiciel de contrôle de l'armoire à clé se trouve sur le même PC que pour la saisie des vols dans OpenFlyers, il peut y avoir des problèmes de loopback au niveau du routeur.&lt;br /&gt;
&lt;br /&gt;
==Attribution des clés aux ressources/aéronefs==&lt;br /&gt;
''Dans le cas où c'est le logiciel OpenFlyers qui gère les clés.''&lt;br /&gt;
*'''Admin'''&lt;br /&gt;
*'''Ressources &amp;gt; Ressources &amp;gt; Actives''' ou '''Flotte &amp;gt; Aéronefs &amp;gt; Aéronefs actifs''' sous version OF 2.1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Liste des aéronefs.png]]&lt;br /&gt;
&lt;br /&gt;
Pour chaque aéronef concerné, il suffit d'attribuer un numéro et un nom de clé dans les champs correspondants. La validation de la saisie se fait automatiquement en cliquant hors du champ de saisie.&lt;br /&gt;
&lt;br /&gt;
=Protocole de dialogue XML-RPC entre OpenFlyers et le logiciel de gestion de l'armoire à clé=&lt;br /&gt;
Le dialogue avec le serveur XML-RPC d'OpenFlyers doit s'effectuer en '''HTTPS'''.&lt;br /&gt;
&lt;br /&gt;
==Demande de libération d'une clé==&lt;br /&gt;
&lt;br /&gt;
===Cas avec gestion des clés par OpenFlyers===&lt;br /&gt;
&lt;br /&gt;
*Lorsque qu'une clé doit être libérée, le navigateur envoie un message au logiciel de contrôle de l'armoire à clé par le protocole HTTP sous la forme suivante :&lt;br /&gt;
http://127.0.0.1:4080/?sessid=e5f01p2oqh2vb36arisr8k5j87&amp;amp;amp;timeOut=10000&amp;amp;amp;key=1&amp;amp;amp;resource=2&amp;amp;amp;person=12;action='releaseKey'&lt;br /&gt;
&lt;br /&gt;
:*L'adresse IP (ici 127.0.0.1) et le port (ici 4080) sont fonction de la [[#Activation_et_configuration_de_la_gestion_des_armoires_.C3.A0_cl.C3.A9|configuration de l'armoire à clé dans OpenFlyers]].&lt;br /&gt;
:*sessid contient le numéro de session en cours&lt;br /&gt;
:*timeout correspond au temps d'attente pour la prise d'une clé en millisecondes&lt;br /&gt;
:*key contient le numéro de la clé concernée&lt;br /&gt;
:*resource contient le numéro de la ressource concernée&lt;br /&gt;
:*person contient le numéro de l'utilisateur qui fait la demande&lt;br /&gt;
:*action est un mot clé désignant l'objet de la commande&lt;br /&gt;
:**release_key: ordre de libérer la clé&lt;br /&gt;
:**open_door: ordre d'ouvrir la porte&lt;br /&gt;
:**init_tags: ordre de lire les tags des clés&lt;br /&gt;
*Le logiciel de contrôle de l'armoire à clé doit alors envoyer une demande d'ordre au serveur OpenFlyers à l'adresse suivante https://openflyers.com/structure/actionOnDemand.php où il faut remplacer openflyers.com/structure par l'adresse de la plateforme OpenFlyers concernée, avec comme commande XML_RPC '''checkCommand (&amp;quot;e5f01p2oqh2vb36arisr8k5j87&amp;quot;,int(key))'''.&lt;br /&gt;
&lt;br /&gt;
*Le serveur OpenFlyers vérifie alors l'action demandée :&lt;br /&gt;
Pour release_key, il est vérifié :&lt;br /&gt;
#Que la clé est au bon format et existe. Lorsque la clé est validée, on passe à l'étape suivante sinon on retourne 0&lt;br /&gt;
#Que l'utilisateur faisant la demande est bien celui qui est connecté. Lorsque c'est le cas, on passe à l'étape suivante sinon on retourne 0&lt;br /&gt;
#Ensuite si l'utilisateur qui a passé la demande :&lt;br /&gt;
#*A le droit '''Gestion des clés''' (administrateur) alors on libère la clé sans condition (cela permet de libérer la clé sans contrôle) et on retourne 1&lt;br /&gt;
#*N'a pas le droit '''Gestion des clés''' (pilote) alors on vérifie s'il existe un vol ouvert qui remplit la double condition :&lt;br /&gt;
#**Vol attribué à l'utilisateur&lt;br /&gt;
#**Aéronef du vol associé à la demande de libération de la clé&lt;br /&gt;
#**Lorsque la double condition est remplie, on retourne 1 sinon 0&lt;br /&gt;
&lt;br /&gt;
*Le serveur retourne ensuite la réponse :&lt;br /&gt;
**1 dans le cas d'autorisation de libération de clé &lt;br /&gt;
**0 dans le cas contraire&lt;br /&gt;
&lt;br /&gt;
====Exemple de script en Python d'utilisation de la commande checkCommand avec gestion des clés====&lt;br /&gt;
&amp;lt;python&amp;gt;# load library&lt;br /&gt;
from twisted.web.xmlrpc import Proxy&lt;br /&gt;
from twisted.internet import reactor, ssl&lt;br /&gt;
 &lt;br /&gt;
def printValue(value):&lt;br /&gt;
    print repr(value)&lt;br /&gt;
    reactor.stop()&lt;br /&gt;
 &lt;br /&gt;
def printError(error):&lt;br /&gt;
    print 'error', error&lt;br /&gt;
    reactor.stop()&lt;br /&gt;
 &lt;br /&gt;
# URL of the XML-RPC server&lt;br /&gt;
proxy = Proxy('https://yourURL.xx/actionOnDemand.php')&lt;br /&gt;
 &lt;br /&gt;
# init array to send&lt;br /&gt;
sessid = &amp;quot;&amp;quot;&lt;br /&gt;
key_num = 1&lt;br /&gt;
 &lt;br /&gt;
# send to the XML-RPC server&lt;br /&gt;
proxy.callRemote('checkCommand', sessid, key_num).addCallbacks(printValue, printError)&lt;br /&gt;
reactor.run()&amp;lt;/python&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce test peut être complété (pour obtenir une réponse &amp;quot;1&amp;quot;) en simulant une armoire à clé à l'aide d'un script PHP de la façon suivante :&lt;br /&gt;
*Installer un serveur local (par exemple [http://www.wampserver.com/ wampserver] sous Windows) de façon à avoir le port 127.0.0.1 qui lui est attribué&lt;br /&gt;
*Configurer la plateforme OpenFlyers de manière à gérer l'armoire à clé avec les éléments suivants :&lt;br /&gt;
**'''IP du PC contenant le logiciel de contrôle''' : 127.0.0.1&lt;br /&gt;
**'''Port du PC contenant le logiciel de contrôle''' : 80&lt;br /&gt;
*Configurer la plateforme OpenFlyers de manière à gérer les clés&lt;br /&gt;
*A la racine du répertoire www, mettre le script index.php suivant (on suppose que ce script est appelé par défaut lorsqu'on utilise l'URL http://127.0.0.1 ) :&lt;br /&gt;
&amp;lt;php&amp;gt;&amp;lt;?php &lt;br /&gt;
file_put_contents('test.txt', 'TEST', FILE_APPEND );&lt;br /&gt;
file_put_contents('test.txt', print_r($_REQUEST, true), FILE_APPEND );&lt;br /&gt;
?&amp;gt;&amp;lt;/php&amp;gt;&lt;br /&gt;
*Toujours à la racine du répertoire www, créer un fichier test.txt&lt;br /&gt;
Le script PHP écrira dans le fichier test.txt les variables transmises lors de la demande d'ouverture de l'armoire à clé :&lt;br /&gt;
&amp;lt;pre&amp;gt;TESTArray&lt;br /&gt;
(&lt;br /&gt;
    [sessid] =&amp;gt; j2eo92215nbef09borb74jftm1&lt;br /&gt;
    [key] =&amp;gt; 1&lt;br /&gt;
    [resource] =&amp;gt; 1&lt;br /&gt;
    [person] =&amp;gt; 1&lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Il suffit alors de recopier la valeur de '''sessid''' et de '''key''' dans le script python de ce début de paragraphe et de le tester : il devrait renvoyer 1.&lt;br /&gt;
&lt;br /&gt;
===Cas sans gestion des clés par OpenFlyers===&lt;br /&gt;
&lt;br /&gt;
*Lorsque qu'une demande de vérification doit être réalisée, le navigateur envoie un message au logiciel de contrôle de l'armoire à clé par le protocole HTTP sous la forme suivante :&lt;br /&gt;
http://127.0.0.1:4080/?sessid=e5f01p2oqh2vb36arisr8k5j87&amp;amp;amp;resource=2&amp;amp;amp;person=12&lt;br /&gt;
&lt;br /&gt;
:*L'adresse IP (ici 127.0.0.1) et le port (ici 4080) sont fonction de la [[#Activation_et_configuration_de_la_gestion_des_armoires_.C3.A0_cl.C3.A9|configuration de l'armoire à clé dans OpenFlyers]].&lt;br /&gt;
:*sessid contient le numéro de session en cours&lt;br /&gt;
:*resource contient le numéro de la ressource concernée&lt;br /&gt;
:*person contient le numéro de l'utilisateur qui fait la demande&lt;br /&gt;
*Le logiciel de contrôle de l'armoire à clé doit alors envoyer une demande d'ordre au serveur OpenFlyers à l'adresse suivante https://openflyers.com/structure/actionOnDemand.php où il faut remplacer openflyers.com/structure par l'adresse de la plateforme OpenFlyers concernée, avec comme commande XML_RPC '''checkCommand (&amp;quot;e5f01p2oqh2vb36arisr8k5j87&amp;quot;)'''.&lt;br /&gt;
&lt;br /&gt;
*Le serveur OpenFlyers vérifie alors :&lt;br /&gt;
#Que l'utilisateur faisant la demande est bien celui qui est connecté. Lorsque c'est le cas, on passe à l'étape suivante sinon on retourne 0&lt;br /&gt;
#On vérifie s'il existe un vol ouvert qui remplit la double condition :&lt;br /&gt;
#*Vol attribué à l'utilisateur&lt;br /&gt;
#*Aéronef du vol associé à la demande de libération de la clé&lt;br /&gt;
#*Lorsque la double condition est remplie, on retourne 1 sinon 0&lt;br /&gt;
&lt;br /&gt;
*Le serveur retourne ensuite la réponse :&lt;br /&gt;
**1 dans le cas d'autorisation&lt;br /&gt;
**0 dans le cas contraire&lt;br /&gt;
&lt;br /&gt;
====Exemple de script en Python d'utilisation de la commande checkCommand sans gestion des clés====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;python&amp;gt;# load library&lt;br /&gt;
from twisted.web.xmlrpc import Proxy&lt;br /&gt;
from twisted.internet import reactor, ssl&lt;br /&gt;
 &lt;br /&gt;
def printValue(value):&lt;br /&gt;
    print repr(value)&lt;br /&gt;
    reactor.stop()&lt;br /&gt;
 &lt;br /&gt;
def printError(error):&lt;br /&gt;
    print 'error', error&lt;br /&gt;
    reactor.stop()&lt;br /&gt;
 &lt;br /&gt;
# URL of the XML-RPC server&lt;br /&gt;
proxy = Proxy('https://yourURL.xx/actionOnDemand.php')&lt;br /&gt;
 &lt;br /&gt;
# init array to send&lt;br /&gt;
sessid = &amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
# send to the XML-RPC server&lt;br /&gt;
proxy.callRemote('checkCommand', sessid).addCallbacks(printValue, printError)&lt;br /&gt;
reactor.run()&amp;lt;/python&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce test peut être complété (pour obtenir une réponse &amp;quot;1&amp;quot;) en simulant une armoire à clé à l'aide d'un script PHP de la façon suivante :&lt;br /&gt;
*Installer un serveur local (par exemple [http://www.wampserver.com/ wampserver] sous Windows) de façon à avoir le port 127.0.0.1 qui lui est attribué&lt;br /&gt;
*Configurer la plateforme OpenFlyers de manière à gérer l'armoire à clé avec les éléments suivants :&lt;br /&gt;
**'''IP du PC contenant le logiciel de contrôle''' : 127.0.0.1&lt;br /&gt;
**'''Port du PC contenant le logiciel de contrôle''' : 80&lt;br /&gt;
*Configurer la plateforme OpenFlyers de manière à ne pas gérer les clés&lt;br /&gt;
*A la racine du répertoire www, mettre le script index.php suivant (on suppose que ce script est appelé par défaut lorsqu'on utilise l'URL http://127.0.0.1 ) :&lt;br /&gt;
&amp;lt;php&amp;gt;&amp;lt;?php &lt;br /&gt;
file_put_contents('test.txt', 'TEST', FILE_APPEND );&lt;br /&gt;
file_put_contents('test.txt', print_r($_REQUEST, true), FILE_APPEND );&lt;br /&gt;
?&amp;gt;&amp;lt;/php&amp;gt;&lt;br /&gt;
*Toujours à la racine du répertoire www, créer un fichier test.txt&lt;br /&gt;
Le script PHP écrira dans le fichier test.txt les variables transmises lors de la demande d'ouverture de l'armoire à clé :&lt;br /&gt;
&amp;lt;pre&amp;gt;TESTArray&lt;br /&gt;
(&lt;br /&gt;
    [sessid] =&amp;gt; j2eo92215nbef09borb74jftm1&lt;br /&gt;
    [resource] =&amp;gt; 1&lt;br /&gt;
    [person] =&amp;gt; 1&lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Il suffit alors de recopier la valeur de '''sessid''' dans le script python de ce début de paragraphe et de le tester : il devrait renvoyer 1.&lt;br /&gt;
&lt;br /&gt;
==Modification de l'état d'une clé==&lt;br /&gt;
''Applicable uniquement dans le cas où le logiciel OpenFlyers gère les clés.''&lt;br /&gt;
*Le logiciel de contrôle de l'armoire à clé doit envoyer un ordre '''notify([1,0,1,1,1,1,0,0], &amp;quot;passphrase&amp;quot;)''' avec comme paramètre un tableau chronologique des clés ayant pour valeur leur état (1 = interrupteur de présence de clé fermé = clé absente de l'armoire, 0 = interrupteur de présence de clé ouvert = clé présente dans l'armoire)&lt;br /&gt;
&lt;br /&gt;
===Exemple de script en Python pour la commande notify===&lt;br /&gt;
Nécessite les librairies Twisted et pyOpenSSL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;python&amp;gt;# load library&lt;br /&gt;
from twisted.web.xmlrpc import Proxy&lt;br /&gt;
from twisted.internet import reactor, ssl&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
def printValue(value):&lt;br /&gt;
    print repr(value)&lt;br /&gt;
    reactor.stop()&lt;br /&gt;
&lt;br /&gt;
def printError(error):&lt;br /&gt;
    print 'error', error&lt;br /&gt;
    reactor.stop()&lt;br /&gt;
&lt;br /&gt;
# URL of the XML-RPC server&lt;br /&gt;
proxy = Proxy('https://yourURL.xx/actionOnDemand.php')&lt;br /&gt;
&lt;br /&gt;
# init passphrase&lt;br /&gt;
passphrase = 'SDjklsdiuQSIPO23879ZERK2098ZL2908DFZLK'&lt;br /&gt;
&lt;br /&gt;
# init array to send&lt;br /&gt;
status = []&lt;br /&gt;
state = random.randint(0,1)&lt;br /&gt;
# Alternate 0 and 1 for test&lt;br /&gt;
for i in range(0,10):&lt;br /&gt;
        status.append(state)&lt;br /&gt;
        state = 0 if state == 1 else 1&lt;br /&gt;
#print status&lt;br /&gt;
&lt;br /&gt;
# send to the XML-RPC server&lt;br /&gt;
proxy.callRemote('notify', status, passphrase).addCallbacks(printValue, printError)&lt;br /&gt;
reactor.run()&amp;lt;/python&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ces scripts nécessitent les librairies Twisted et pyOpenSSL.&lt;br /&gt;
&lt;br /&gt;
Ils recevront (et afficheront) comme réponse 0 du fait que le numéro de session transmis n'est pas correct (et laissé à une chaine vide).&lt;br /&gt;
&lt;br /&gt;
==Fermeture automatique d'un vol==&lt;br /&gt;
&lt;br /&gt;
Le logiciel de contrôle de l'armoire à clé doit envoyer un ordre '''closeFlight(&amp;quot;passphrase&amp;quot;, &amp;quot;id de ressource&amp;quot;)''' avec comme paramètre un passphrase et l'id qui va entraîner la fermeture du vol effectué sur cette ressource si un vol avait été ouvert et que la &amp;quot;Fermeture automatique des&lt;br /&gt;
vols au retour de la clé&amp;quot; soit activée. La commande retournera comme réponse une structure JSON pour déterminer si la fermeture du vol s'est bien réalisée ou non et qu'il n'y a pas eu d'erreur.&lt;br /&gt;
&lt;br /&gt;
Réponse quand la vérification du passphrase est incorrecte, ce qui a entraîné la non-fermeture du vol :&lt;br /&gt;
&amp;lt;javascript&amp;gt;{[&lt;br /&gt;
    ack : 0&lt;br /&gt;
]}&amp;lt;/javascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Réponse quand la vérification du passphrase est correcte et que la demande de fermeture du vol s'est bien réalisée :&lt;br /&gt;
&amp;lt;javascript&amp;gt;{[&lt;br /&gt;
    ack : 1&lt;br /&gt;
]}&amp;lt;/javascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Réponse quand la vérification du passphrase est correcte et que la demande de fermeture du vol ne s'est pas bien réalisée suite à une erreur :&lt;br /&gt;
&amp;lt;javascript&amp;gt;{[&lt;br /&gt;
    ack : 1,&lt;br /&gt;
    error : 'Message d\'erreur ...'&lt;br /&gt;
]}&amp;lt;/javascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Script d'exemple pour closeFlight===&lt;br /&gt;
&amp;lt;python&amp;gt;# load library&lt;br /&gt;
from twisted.web.xmlrpc import Proxy&lt;br /&gt;
from twisted.internet import reactor, ssl&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
def printValue(value):&lt;br /&gt;
    print repr(value)&lt;br /&gt;
    reactor.stop()&lt;br /&gt;
&lt;br /&gt;
def printError(error):&lt;br /&gt;
    print 'error', error&lt;br /&gt;
    reactor.stop()&lt;br /&gt;
&lt;br /&gt;
# URL of the XML-RPC server&lt;br /&gt;
proxy = Proxy('https://yourURL.xx/actionOnDemand.php')&lt;br /&gt;
&lt;br /&gt;
# Id of resource which needs a flight closing&lt;br /&gt;
resource_id = 1&lt;br /&gt;
&lt;br /&gt;
# init passphrase&lt;br /&gt;
passphrase = 'SDjklsdiuQSIPO23879ZERK2098ZL2908DFZLK'&lt;br /&gt;
&lt;br /&gt;
# send to the XML-RPC server&lt;br /&gt;
proxy.callRemote('closeFlight', resource_id, passphrase).addCallbacks(printValue, printError)&lt;br /&gt;
reactor.run()&amp;lt;/python&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exemple de script en Python de logiciel de contrôle d'une armoire==&lt;br /&gt;
&amp;lt;python&amp;gt;#!/usr/bin/python&lt;br /&gt;
import xmlrpclib, time, dummy_proto, hashlib&lt;br /&gt;
from twisted.internet import reactor, task, threads, ssl&lt;br /&gt;
from twisted.application import internet, service&lt;br /&gt;
from twisted.internet.protocol import Protocol, ClientCreator, ReconnectingClientFactory&lt;br /&gt;
from twisted.web import resource, server&lt;br /&gt;
&lt;br /&gt;
# Port from which the OF client contact OpenKeys service&lt;br /&gt;
SERVICE_PORT=4080 &lt;br /&gt;
# IP address of the OpenKeys service&lt;br /&gt;
SERVICE_HOST=&amp;quot;192.168.0.200&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# IP address of the key cabinet&lt;br /&gt;
KEYS_ADDR='192.168.0.201'&lt;br /&gt;
# Port from which OpenKeys service contacts the key cabinet&lt;br /&gt;
KEYS_PORT=6002&lt;br /&gt;
#Time to release the key&lt;br /&gt;
KEY_RELEASE_DURATION=15&lt;br /&gt;
&lt;br /&gt;
# sha224 passwords&lt;br /&gt;
PASSWORDS=('847bed9bc354e7e47bc5350a3b3aaf6124f5748224a3c7ad79586c3c')&lt;br /&gt;
&lt;br /&gt;
# init passphrase&lt;br /&gt;
passphrase = 'SDjklsdiuQSIPO23879ZERK2098ZL2908DFZLK'&lt;br /&gt;
&lt;br /&gt;
OF_XMLRPC_URL=&amp;quot;https://openflyers.com/structure/actionOnDemand.php&amp;quot;&lt;br /&gt;
&lt;br /&gt;
DEBUG=False&lt;br /&gt;
&lt;br /&gt;
class dummyProtocol(Protocol):&lt;br /&gt;
	def __init__(self, rpc_server):&lt;br /&gt;
		self.rpc_server=rpc_server&lt;br /&gt;
		self.lc = None&lt;br /&gt;
&lt;br /&gt;
	def connectionMade(self):&lt;br /&gt;
		if not self.lc:&lt;br /&gt;
			# update status every 10 minutes&lt;br /&gt;
			self.lc = task.LoopingCall(self.updateStatus)&lt;br /&gt;
			self.lc.start(600)&lt;br /&gt;
&lt;br /&gt;
	def dataReceived(self, data):&lt;br /&gt;
		msg=dummy_proto.dummy_message.newFromData(data)&lt;br /&gt;
		if DEBUG: msg.display()&lt;br /&gt;
		try:&lt;br /&gt;
			if type(msg)==dummyproto.dummy_ONOFF_Control_Response:&lt;br /&gt;
				response = self.rpc_server.notify(msg.getKeysStatus(),passphrase)&lt;br /&gt;
		except Exception, err:&lt;br /&gt;
			if DEBUG: print &amp;quot;error: &amp;quot;, err&lt;br /&gt;
			pass # ignore&lt;br /&gt;
&lt;br /&gt;
	def updateStatus(self):&lt;br /&gt;
		msg = dummy_proto.dummy_State_Request()&lt;br /&gt;
		self.transport.write(msg.build_message())&lt;br /&gt;
	&lt;br /&gt;
	def send(self, dummy_data):&lt;br /&gt;
		self.transport.write(dummy_data.build_message())&lt;br /&gt;
&lt;br /&gt;
class dummyClientFactory(ReconnectingClientFactory):&lt;br /&gt;
	def __init__(self, rpc_server):&lt;br /&gt;
		self.rpc_server = rpc_server&lt;br /&gt;
&lt;br /&gt;
	def buildProtocol(self, addr):&lt;br /&gt;
		self.resetDelay()&lt;br /&gt;
		self.protocol = dummyProtocol(self.rpc_server)&lt;br /&gt;
		return self.protocol&lt;br /&gt;
&lt;br /&gt;
	def clientConnectionLost(self, connector, reason):&lt;br /&gt;
		ReconnectingClientFactory.clientConnectionLost(self, connector, reason)&lt;br /&gt;
		connector.connect()&lt;br /&gt;
&lt;br /&gt;
	def clientConnectionFailed(self, connector, reason):&lt;br /&gt;
		if DEBUG: print 'Connection failed. Reason:', reason&lt;br /&gt;
		ReconnectingClientFactory.clientConnectionFailed(self, connector, reason)&lt;br /&gt;
&lt;br /&gt;
	# blocking method ! must be run in a new thread&lt;br /&gt;
	def release_key(self, key_num, timeOur):&lt;br /&gt;
		m = dummy_proto.dummy_ONOFF_Control()&lt;br /&gt;
		m.setON(key_num)&lt;br /&gt;
		self.protocol.send(m)&lt;br /&gt;
		time.sleep(timeOut)&lt;br /&gt;
		m.setOFF(key_num)&lt;br /&gt;
		self.protocol.send(m)&lt;br /&gt;
		return key_num&lt;br /&gt;
&lt;br /&gt;
class WebResource(resource.Resource):&lt;br /&gt;
	def __init__(self, rpc_server, dummy_client_factory):&lt;br /&gt;
		self.rpc_server = rpc_server&lt;br /&gt;
		self.dummy_client_factory = dummy_client_factory&lt;br /&gt;
		resource.Resource.__init__(self)&lt;br /&gt;
		self.keys_webcontrol_state = [0,0,0,0,0,0,0,0,0,0]&lt;br /&gt;
		&lt;br /&gt;
	def getChild(self, name, request):&lt;br /&gt;
		return self&lt;br /&gt;
&lt;br /&gt;
	def render(self, request):&lt;br /&gt;
		reponse = 0 # NOK par defaut&lt;br /&gt;
		key_num = 0&lt;br /&gt;
		try:&lt;br /&gt;
			sessid = request.args.get('sessid', [&amp;quot;&amp;quot;])[0]&lt;br /&gt;
			password = request.args.get('password', [&amp;quot;&amp;quot;])[0]&lt;br /&gt;
			key_num = int(request.args.get('key', [&amp;quot;0&amp;quot;])[0])&lt;br /&gt;
			response = 0&lt;br /&gt;
			if password:&lt;br /&gt;
                                if hashlib.sha224(password).hexdigest() in PASSWORDS:&lt;br /&gt;
                                        timeOut   = KEY_RELEASE_DURATION&lt;br /&gt;
                                        response_XMLRPC = 1&lt;br /&gt;
                        else:&lt;br /&gt;
                                timeOut   = int(request.args.get('timeout', [&amp;quot;0&amp;quot;])[0])&lt;br /&gt;
                                response = self.rpc_server.checkCommand(sessid, key_num)&lt;br /&gt;
		except Exception, err:&lt;br /&gt;
			if DEBUG: print &amp;quot;error: &amp;quot;, err&lt;br /&gt;
			return &amp;quot;NOK:bad request&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
		if response == 1:&lt;br /&gt;
			# Don't try to release a key that is being released&lt;br /&gt;
			if self.keys_webcontrol_state[key_num-1]: return &amp;quot;OK:already released&amp;quot;&lt;br /&gt;
			self.keys_webcontrol_state[key_num-1] = 1&lt;br /&gt;
			d = threads.deferToThread(self.dummy_client_factory.release_key, key_num, timeOut)&lt;br /&gt;
			d.addCallback(self.unset_webcontrol_state)&lt;br /&gt;
			return &amp;quot;OK:releasing key...&amp;quot;&lt;br /&gt;
		else:&lt;br /&gt;
			return &amp;quot;NOK:permission refused&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	def unset_webcontrol_state(self, key_num):&lt;br /&gt;
		self.keys_webcontrol_state[key_num-1] = 0&lt;br /&gt;
&lt;br /&gt;
class OpenKeysService(service.Service):&lt;br /&gt;
	def __init__(self):&lt;br /&gt;
		rpc_server=xmlrpclib.Server(OF_XMLRPC_URL);&lt;br /&gt;
		self.dummy_client_factory = dummyClientFactory(rpc_server)&lt;br /&gt;
		self.web_resource = WebResource(rpc_server, self.dummy_client_factory)&lt;br /&gt;
		&lt;br /&gt;
	def getdummyClientFactory(self):&lt;br /&gt;
		return self.dummy_client_factory&lt;br /&gt;
&lt;br /&gt;
	def getWebResource(self):&lt;br /&gt;
		return self.web_resource&lt;br /&gt;
&lt;br /&gt;
application = service.Application('openkeys')&lt;br /&gt;
f = OpenKeysService()&lt;br /&gt;
serviceCollection = service.IServiceCollection(application)&lt;br /&gt;
internet.TCPClient(KEYS_ADDR, KEYS_PORT, f.getdummyClientFactory()&lt;br /&gt;
				   ).setServiceParent(serviceCollection)&lt;br /&gt;
internet.TCPServer(SERVICE_PORT, server.Site(f.getWebResource())&lt;br /&gt;
				   ).setServiceParent(serviceCollection)&amp;lt;/python&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Maquette de script actionOnDemand.php côté serveur recevant les appels du logiciel de contrôle de l'armoire==&lt;br /&gt;
Ce script nécessite la bibliothèque PEAR [http://pear.php.net/package/XML_RPC2 XML_RPC2].&lt;br /&gt;
&lt;br /&gt;
Pour les tests, il suffit de modifier la valeur de la variable $weDontWant.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;&amp;lt;?php&lt;br /&gt;
include 'XML/RPC2/Server.php';&lt;br /&gt;
&lt;br /&gt;
class OpenKeysGateway {&lt;br /&gt;
    /**&lt;br /&gt;
     * Update the status of the keys&lt;br /&gt;
     *&lt;br /&gt;
     * @param array $status Status of keys&lt;br /&gt;
     * @return integer 1 if ok, 0 else&lt;br /&gt;
     */&lt;br /&gt;
    public static function notify($status) {&lt;br /&gt;
        $logmsg = &amp;quot;&amp;quot;;&lt;br /&gt;
        foreach ($status as $key_num_from_zero =&amp;gt; $key_pres) {&lt;br /&gt;
            if (!is_numeric($key_pres) || intval($key_pres)!=$key_pres || $key_pres &amp;lt; 0 || $key_pres &amp;gt; 1) continue;&lt;br /&gt;
            if (!is_numeric($key_num_from_zero) || intval($key_num_from_zero)!=$key_num_from_zero &lt;br /&gt;
                || $key_num_from_zero &amp;lt; 0 || $key_num_from_zero &amp;gt; 9) continue;&lt;br /&gt;
            $logmsg .= &amp;quot;&amp;quot;.($key_num_from_zero+1).&amp;quot;:&amp;quot;.$key_pres.&amp;quot;,&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        file_put_contents('test.txt', &amp;quot;key notify :&amp;quot;.$logmsg, FILE_APPEND );&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Check if user is able to release the key 'key_num'&lt;br /&gt;
     *&lt;br /&gt;
     * @param string $sessid PHPSESSID of a connected user&lt;br /&gt;
     * @param integer $key_num number of the key to release&lt;br /&gt;
     * @return integer 0:NOK, 1:OK&lt;br /&gt;
     */&lt;br /&gt;
    public static function checkCommand($sessid, $key_num) {&lt;br /&gt;
        /* sanitize input */&lt;br /&gt;
        if (!is_numeric($key_num) || intval($key_num)!=$key_num || $key_num &amp;lt; 1 || $key_num &amp;gt; 10) {&lt;br /&gt;
            return 0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        $weDontWant = 1;&lt;br /&gt;
&lt;br /&gt;
        if ($weDontWant) {&lt;br /&gt;
            file_put_contents('test.txt', &amp;quot;$key_num has no associated airborne aircraft&amp;quot;, FILE_APPEND );&lt;br /&gt;
            return 0;&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            file_put_contents('test.txt', &amp;quot;granted key: &amp;quot;.$key_num.&amp;quot;:permission granted&amp;quot;, FILE_APPEND );&lt;br /&gt;
            return 1;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$options = array(&lt;br /&gt;
    'autoDocument' =&amp;gt; true,&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
// dirty hack to get things work !&lt;br /&gt;
$GLOBALS['HTTP_RAW_POST_DATA'] = file_get_contents('php://input');&lt;br /&gt;
&lt;br /&gt;
$server = XML_RPC2_Server::create('OpenKeysGateway', $options);&lt;br /&gt;
$server-&amp;gt;handleCall();&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&amp;lt;/php&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bbarbe</name></author>	</entry>

	<entry>
		<id>https://doc2-fr.openflyers.com/index.php?title=Contr%C3%B4le-d%27identification-par-OpenFlyers-pour-un-logiciel-tiers&amp;diff=14190</id>
		<title>Contrôle d'identification par OpenFlyers pour un logiciel tiers</title>
		<link rel="alternate" type="text/html" href="https://doc2-fr.openflyers.com/index.php?title=Contr%C3%B4le-d%27identification-par-OpenFlyers-pour-un-logiciel-tiers&amp;diff=14190"/>
				<updated>2016-12-02T14:50:09Z</updated>
		
		<summary type="html">&lt;p&gt;Bbarbe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
Cette page explique comment vérifier qu'un couple identifiant/mot de passe envoyé, par vos propres scripts, est conforme à la base de données d'OpenFlyers.&lt;br /&gt;
&lt;br /&gt;
=Comment ça marche=&lt;br /&gt;
Si votre plateforme OpenFlyers se situe sur le lien http://openflyers.com/nom-plateforme/, envoyez simplement une requête POST sur le lien http://openflyers.com/nom-plateforme/checkIdent.php avec comme paramètres les variables '''login''' et '''rawPassword'''.&lt;br /&gt;
&lt;br /&gt;
'''Attention:''' Les versions 2 d'OpenFlyers ou plus nécessitent un mot de passe chiffré en MD5 (cf. la ligne $postData commentée ci-dessous, dans le script PHP).&lt;br /&gt;
&lt;br /&gt;
==Valeurs de retour possibles==&lt;br /&gt;
Le script retourne un chiffre parmi les suivant :&lt;br /&gt;
*0: OK&lt;br /&gt;
*1: OK mais plusieurs profils disponibles. OpenFlyers sélectionne automatiquement le meilleur profil.&lt;br /&gt;
*2: Expiré mais autorisé&lt;br /&gt;
*3: Expiré mais autorisé, avec un profil expiré&lt;br /&gt;
*4: Abonnement expiré, refusé&lt;br /&gt;
*5: Mauvais identifiants, refusé&lt;br /&gt;
*6: IP ou identifiants bloqués, refusé&lt;br /&gt;
*7: Aucun identifiant donné, ils sont demandés&lt;br /&gt;
&lt;br /&gt;
Nous vous recommandons de considérer un code de retour entre 0 et 2 comme bon et mauvais entre 3 et 7.&lt;br /&gt;
&lt;br /&gt;
'''Attention:''' Vous devez filtrer les identifiants de connexion libres (sans droits) puisque pour OpenFlyers, ils correspondent à des accès autorisés !!!&lt;br /&gt;
&lt;br /&gt;
=JavaScript=&lt;br /&gt;
Si vous utilisez votre propre formulaire d'authentification, utilisez la fonction javascript submit_pwd() située dans \javascript\submitPwd.js .&lt;br /&gt;
&lt;br /&gt;
=Exemple de code PHP=&lt;br /&gt;
Voici un exemple de code PHP permettant d'envoyer une requête POST :&lt;br /&gt;
&amp;lt;php&amp;gt;function httpPostRequest($host, $path, $postData) { &lt;br /&gt;
  $result= &amp;quot;&amp;quot;; &lt;br /&gt;
&lt;br /&gt;
  $request = &amp;quot;POST $path HTTP/1.1\n&amp;quot;. &lt;br /&gt;
  &amp;quot;Host: $host\n&amp;quot;. &lt;br /&gt;
  (isset($referer) ? &amp;quot;Referer: $referer\n&amp;quot; : &amp;quot;&amp;quot;). &lt;br /&gt;
  &amp;quot;Content-type: Application/x-www-form-urlencoded\n&amp;quot;.&lt;br /&gt;
  &amp;quot;Content-length: &amp;quot;.strlen($postData).&amp;quot;\n&amp;quot;. &lt;br /&gt;
  &amp;quot;Connection: close\n\n&amp;quot;. &lt;br /&gt;
  $postData.&amp;quot;\n&amp;quot;; &lt;br /&gt;
  &lt;br /&gt;
  // Some debug informations:&lt;br /&gt;
  // print(&amp;quot;&amp;lt;pre&amp;gt;Request:\n&amp;quot;.htmlentities($request).&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;); &lt;br /&gt;
&lt;br /&gt;
  if ($fp = fsockopen($host, 80, $errno, $errstr, 3))&lt;br /&gt;
  // for PHP release &amp;lt; 5.3.0, use the following syntax:&lt;br /&gt;
  // if ($fp = fsockopen($host, 80, &amp;amp;$errno, &amp;amp;$errstr, 3))&lt;br /&gt;
    { &lt;br /&gt;
    if (fputs($fp, $request)) &lt;br /&gt;
    { &lt;br /&gt;
      while(! feof($fp)) &lt;br /&gt;
      { &lt;br /&gt;
       $result.= fgets($fp, 128); &lt;br /&gt;
      } &lt;br /&gt;
      fclose($fp); &lt;br /&gt;
//      print($result);&lt;br /&gt;
      return $result; &lt;br /&gt;
    } &lt;br /&gt;
  } &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//$postData='login=jbond&amp;amp;rawPassword='.md5('007'); // for OpenFlyers release 2 or higher&lt;br /&gt;
$postData='login=jbond&amp;amp;rawPassword=007';&lt;br /&gt;
$rawContent = httpPostRequest('openflyers.com','http://openflyers.com/plateform-name/checkIdent.php',$postData); [^]&lt;br /&gt;
&lt;br /&gt;
list($header, $content) = explode(&amp;quot;\r\n\r\n&amp;quot;, $rawContent, 2);&lt;br /&gt;
list($byteQty, $realContent, $dummy) = explode(&amp;quot;\r\n&amp;quot;, $content, 3);&lt;br /&gt;
&lt;br /&gt;
// the answer is in $realContent&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Plugin d'authentification Joomla=&lt;br /&gt;
Si vous avez un site Joomla et que vous désirer de permettre aux utilisateurs OpenFlyers de se connecter à votre espace restreint Joomla, vous devriez ajouter ce plugin de manière à avoir une unique base de données de comptes utilisateurs : celle d'OpenFlyers.&lt;br /&gt;
&lt;br /&gt;
Vous n'avez pas besoin de mettre à jour votre base de données Joomla, ce plugin interroge directement OpenFlyers grâce au script PHP CheckIdent.php.&lt;br /&gt;
&lt;br /&gt;
*[[Media:Joomla_authentication_plugin.zip|Joomla plugin for OpenFlyers]]&lt;/div&gt;</summary>
		<author><name>Bbarbe</name></author>	</entry>

	</feed>