<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hobby.nl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hans</id>
	<title>Hobbynet Admin Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hobby.nl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hans"/>
	<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php/Special:Contributions/Hans"/>
	<updated>2026-05-14T13:18:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=79558</id>
		<title>XML-RPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=79558"/>
		<updated>2022-04-10T12:43:06Z</updated>

		<summary type="html">&lt;p&gt;Hans: Deze versie werkt samen met PHP 8&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XML-RPC interface =&lt;br /&gt;
&lt;br /&gt;
De LDAP server kan direct gemuteerd worden via een LDAP koppeling. Zie&lt;br /&gt;
de standaard LDAP pagina voor de uitleg welke poorten daarvoor gebruikt&lt;br /&gt;
kunnen worden.&lt;br /&gt;
&lt;br /&gt;
Daarnaast is er de wens ontstaan om via een standaard protocol met de&lt;br /&gt;
LDAP omgeving te kunnen communiceren. Er is hiertoe een XML-RPC&lt;br /&gt;
koppeling ontwikkeld. XML-RPC is een standaard interface, waarmee het&lt;br /&gt;
mogelijk is om vanuit diverse omgevingen op een gestandaardiseerde&lt;br /&gt;
manier te communiceren.&lt;br /&gt;
&lt;br /&gt;
== Globale functie omschrijving ==&lt;br /&gt;
* Algemene aanroepen&lt;br /&gt;
** Controleer of een gebruiker bestaat&lt;br /&gt;
** Wijzig het wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
** Zoek een gebruiker (t.b.v. kantoor en/of LA-akties groeperingssecretaris)&lt;br /&gt;
** Maak een gebruiker aan (geef gebruiker een andere hccLogin waarde, maak ook bij HCCnet deze gebruiker aan)&lt;br /&gt;
** Controleer of een gebruiker zijn profiel al doorlopen heeft&lt;br /&gt;
** Haal de lijst met opgeheven accounts op&lt;br /&gt;
** Haal de lijst met bulletins van een hcc lid (OptIn)&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. hcc partners&lt;br /&gt;
** Controleer of lidnummer/postcode correct is&lt;br /&gt;
** Controleer of lidnummer/postcode correct is, en tevens ingeschreven staat bij een specifieke IG&lt;br /&gt;
&lt;br /&gt;
* Joomla template site functies (op basis van JoomlaToken)&lt;br /&gt;
** Maak een JoomlaToken&lt;br /&gt;
** Ruim een JoomlaToken op&lt;br /&gt;
** Pas mijn OptIn (bulletin inschrijving) aan&lt;br /&gt;
** Regel alles rondom Onderwerpen en de autorisatie hiervan&lt;br /&gt;
** Pas mijn wachtwoord aan&lt;br /&gt;
&lt;br /&gt;
* Joomla kadernet site functies (op basis van JoomlaToken)&lt;br /&gt;
** Zoek een hcc kaderlid (t.b.v. de kaderleden zoekpagina)&lt;br /&gt;
** Pas mijn kadermail forwarding aan en toon ja/nee mijn GSM nummer&lt;br /&gt;
** Pas het kadernet e-mail wachtwoord aan&lt;br /&gt;
** Haal de lijst met alle groeperingen op&lt;br /&gt;
** Haal de lijst met alle kaderrollen op&lt;br /&gt;
&lt;br /&gt;
* Joomla hcc.nl site (op basis van JoomlaToken)(mijn.hcc.nl vervanging)&lt;br /&gt;
** Pas mijn adresgegevens aan&lt;br /&gt;
** Pas mijn voorletters, voornaam, pseudoniem, telefoonnummer, GSM nummer etcetera aan&lt;br /&gt;
** Schrijf me in of uit op een bulletin&lt;br /&gt;
** Toon info over de kosten van een IG lidmaatschap&lt;br /&gt;
** Voer een wachtwoord reset uit op basis van een PWResetToken (een variant op JoomlaToken)&lt;br /&gt;
** Vraag een nieuwe HCC code aan, en stuur die per SMS&lt;br /&gt;
&lt;br /&gt;
* Joomla hobby.nl site (op basis van JoomlaToken)(t.b.v. IDEAL betaling)&lt;br /&gt;
** Haal het aantal hobbyDomains op&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. CRM (Microsoft Dynamics Cloud) koppeling&lt;br /&gt;
** Haal de dagelijkse synchronisatie bestanden op&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de NAW gegevens bij&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de IG gegevens van een lid bij&lt;br /&gt;
&lt;br /&gt;
* HenZ&lt;br /&gt;
** Haal de lijst met opzeggers op&lt;br /&gt;
** Valideer de opzegdatum van een opgegeven gebruiker&lt;br /&gt;
&lt;br /&gt;
=== Authenticatie ===&lt;br /&gt;
&lt;br /&gt;
Alle aanroepen gebeuren op basis van authenticatie vanuit de aanroeper.&lt;br /&gt;
Dit valt uiteen in de volgende categorieën:&lt;br /&gt;
* gebruikersnaam (&#039;hccLogin&#039;) en wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;), Joomla token (&#039;JoomlaToken&#039;) en website (&#039;siteID&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;) en hcc code (&#039;hccCode&#039;)&lt;br /&gt;
* beheerders-DN (&#039;beheerLogin&#039;) en beheerders wachtwoord (&#039;beheerPassword&#039;)&lt;br /&gt;
* partner-DN (&#039;partnerLogin&#039;) en partner wachtwoord (&#039;partnerPassword&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Aanroepen, gedaan via de bezoekersregistratie-proxy ===&lt;br /&gt;
(de bezoekersregistratie proxy is een mislukt project tbv de Android app van René Prins)&lt;br /&gt;
(deze proxy bestaat niet meer)&amp;lt;br&amp;gt;&lt;br /&gt;
Diverse aanroepen kunnen ook via de bezoekersregistratie-proxy aangeroepen worden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
* GeefAlleGroeperingen&lt;br /&gt;
* GeefAlleKaderRollen&lt;br /&gt;
* GeefLocaties&lt;br /&gt;
* GeefLocatieNamen&lt;br /&gt;
De bezoekersregistratie aanroepen hebben &#039;JoomlaToken&#039; als extra parameter nodig:&lt;br /&gt;
* LidBezoektBijeenkomst&lt;br /&gt;
* GeefBezoekersOverzicht&lt;br /&gt;
De aanroepen die over de proxy uitgevoerd worden dienen voorafgegaan te worden door een aanroep naar&lt;br /&gt;
* GeefMijnGegevens (dit geeft na validatie immers &#039;JoomlaToken&#039; terug)&lt;br /&gt;
&lt;br /&gt;
=== Resultaten ===&lt;br /&gt;
&lt;br /&gt;
Alle aanroepen geven de volgende elementen terug:&lt;br /&gt;
* Naam van de uitgevoerde procedure (&#039;Action&#039;)&lt;br /&gt;
* Resultaat van de uitgevoerde procedure (&#039;Status&#039;)&lt;br /&gt;
* Een tekstuele vertaling van het resultaat dan wel de foutmelding (&#039;Message&#039;)&lt;br /&gt;
* Tijdens de ontwikkelfase kan er debug-info teruggeleverd worden (&#039;ExtraInfo&#039;)&lt;br /&gt;
Daarnaast geven specifieke aanroepen extra resultaten terug&lt;br /&gt;
&lt;br /&gt;
== Technische omschrijving ==&lt;br /&gt;
XML-RPC beschrijving van acties in hcc.nl LDAP database&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2022.03.24 HaVe&lt;br /&gt;
XML-RPC Hobbynet versie 71.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kort overzicht ===&lt;br /&gt;
&lt;br /&gt;
Dit is een lijst met alle XML-RPC aanroepen. In het volgende hoofdstuk worden ze in detail besproken.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo				(partners)&lt;br /&gt;
ExpandeerPostcode               (Joomla module Bas, tbv verhuizingen)&lt;br /&gt;
GebruikerBestaatControle	(Joomla sites)&lt;br /&gt;
GeefAantalDomeinen              (Joomla module Bas)&lt;br /&gt;
GeefAlleBulletins               (Joomla module Bas)&lt;br /&gt;
GeefAlleGroeperingen		(kadersite, forum, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefAlleKaderRollen		(forum, secr. portal, kantoor portal, hobbynet portal, Joomla module Bas)&lt;br /&gt;
GeefBezoekersOverzicht		(bezoekersregistratie)&lt;br /&gt;
GeefFactuurOverzicht		(Joomla module Bas)&lt;br /&gt;
GeefhccEindDatum		(HenZ)&lt;br /&gt;
GeefKadermailGegevens		(kantoor portal)&lt;br /&gt;
GeefLocatieNamen		(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefLocaties			(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefMijnGegevens		(Joomla inlog module Bas)&lt;br /&gt;
GeefMijnLidnummer		(beheer.hcc.nl secretaris portal)&lt;br /&gt;
GeefOnderwerpen                 (Joomla template sites)&lt;br /&gt;
GeefSSOUrls			(Joomla module Bas)&lt;br /&gt;
GeefUitgeschrevenLeden		(Joomla sites, HenZ)&lt;br /&gt;
HaalAanmeldingsformulier	(Joomla module Bas)&lt;br /&gt;
HaalFactuur			(Joomla module Bas)&lt;br /&gt;
HaalIGBedragenOp                (Joomla module Bas)&lt;br /&gt;
HaalTariefGroepenOp		(kantoor portal)&lt;br /&gt;
HCCpartner			(Partner aanroep)&lt;br /&gt;
HCCpartners			(Partner aanroep)&lt;br /&gt;
HeeftOtpKey                     (Joomla Hobbynet/LA aanroep)&lt;br /&gt;
IsDezeNaamNogBeschikbaar	(aangeroepen vanuit de CRM omgeving)&lt;br /&gt;
IsDezePseudoniemNogBeschikbaar	(kantoor portal)&lt;br /&gt;
IsHCCLid			(vraagbaak aanroep)&lt;br /&gt;
IsKaderLid			(in veel apps gebruikt)&lt;br /&gt;
LidBezoektBijeenkomst		(bezoekersregistratie)&lt;br /&gt;
MaakGebruikerAan		(mijnhcc.nl, maak hccnet account aan en ldap gebruikersnaam)&lt;br /&gt;
MaakOnderwerp                   (Joomla template sites)&lt;br /&gt;
MaakPWResetToken                (Joomla module Bas)&lt;br /&gt;
MaakTestLogin                   (Joomla module Bas)&lt;br /&gt;
MuteerAanmeldingsformulier	(Joomla module Bas)&lt;br /&gt;
MuteerGroeperingSamenstelling   (Joomla kadernet module Bas)&lt;br /&gt;
MuteerOnderwerp                 (Joomla template sites)&lt;br /&gt;
MuteerOnderwerpAutorisatie      (Joomla template sites)&lt;br /&gt;
NormaliseerTelefoon             (Joomla module Bas)&lt;br /&gt;
PasHccLoginAan			(Joomla module Bas)(enkel Hobbynet)&lt;br /&gt;
PasInteressegroepAan            (Joomla module Bas)&lt;br /&gt;
PasKaderGegevensAan		(kadersite, Joomla module Bas)&lt;br /&gt;
PasOptInKeuzeAan		(Joomla module Bas)&lt;br /&gt;
PasPseudoniemAan		(Joomla module Bas)&lt;br /&gt;
PasUserWachtwoordAan		(beheer.hcc.nl Hobbynet gebruikers portal)&lt;br /&gt;
PasWachtwoordAan		(Joomla module Bas)&lt;br /&gt;
RegistreerGast			(bezoekersregistratie)&lt;br /&gt;
ResetHCCCode                    (Joomla module Bas)&lt;br /&gt;
RuimJoomlaTokenOp               (Joomla module Bas)&lt;br /&gt;
SchrijfNietlidInOpBulletin      (Joomla site bulletin module Bas)&lt;br /&gt;
SchrijfNieuwLidIn               (Joomla CRM module Bas)&lt;br /&gt;
ToonOnderwerpAutorisatie        (Joomla template sites)&lt;br /&gt;
UpdateMobiel                    (Joomla module Bas)&lt;br /&gt;
UpdateNAW                       (Joomla module Bas)&lt;br /&gt;
UpdateOTP                       (Joomla module Bas)&lt;br /&gt;
Upload_CSV_bestand              (CRM webproxy)&lt;br /&gt;
ValideerPWResetToken            (Joomla module Bas)&lt;br /&gt;
ValideerWachtwoordEisen		(Joomla module Bas)&lt;br /&gt;
Verwerk_JSON_mutatie            (CRM webproxy)&lt;br /&gt;
VerwijderNietLid		(Joomla beheer module Bas)&lt;br /&gt;
VerwijderOnderwerp              (Joomla template sites)&lt;br /&gt;
VraagLidgegevensTokenAan	(bezoekersregistratie)&lt;br /&gt;
WijzigGebruikersGegevens	(kantoor en Joomla template sites, ww aanpassen van gebruiker)&lt;br /&gt;
ZoekGroeperingsLid		(secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
ZoekHCCLid			(VZ portal)&lt;br /&gt;
ZoekKaderLeden			(Joomla kadernet module Bas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-ldap en/of HCC-net aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** Joomla sites, www.hcc.nl **&lt;br /&gt;
// 1.1 controleer of een gebruiker bestaat - optie 1&lt;br /&gt;
// (authenticatie op basis van hccLidnr en hccCode)&lt;br /&gt;
// Alleen bedoeld om gebruikers op www.hcc.nl op basis van het lidnr het ww te laten wijzigen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GebruikerBestaatControle&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039; =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;  =&amp;gt; $hccCode,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $method,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;);&lt;br /&gt;
    if ($hccLidnr      != &#039;&#039;) { $reply[&#039;hccLidnr&#039;]      = $hccLidnr;      }&lt;br /&gt;
    if ($hccLogin      != &#039;&#039;) { $reply[&#039;hccLogin&#039;]      = $hccLogin;      }&lt;br /&gt;
    if ($hccPseudoniem != &#039;&#039;) { $reply[&#039;hccPseudoniem&#039;] = $hccPseudoniem; }&lt;br /&gt;
    if ($cn            != &#039;&#039;) { $reply[&#039;cn&#039;]            = $cn;            }&lt;br /&gt;
    if ($sn            != &#039;&#039;) { $reply[&#039;sn&#039;]            = $sn;            }&lt;br /&gt;
    if ($mail          != &#039;&#039;) { $reply[&#039;mail&#039;]          = $mail;          }&lt;br /&gt;
    if ($mailHccnet    != &#039;&#039;) { $reply[&#039;mailHccnet&#039;]    = $mailHccnet;    }&lt;br /&gt;
    if ($hccRegio      != &#039;&#039;) { $reply[&#039;hccRegio&#039;]      = $hccRegio;      }&lt;br /&gt;
    if ($hccIG         != &#039;&#039;) { $reply[&#039;hccIG&#039;]         = $hccIG;         }&lt;br /&gt;
    if ($hccRol        != &#039;&#039;) { $reply[&#039;hccRol&#039;]        = $hccRol;        }&lt;br /&gt;
    if ($ProfielBekend != &#039;&#039;) { $reply[&#039;ProfielBekend&#039;] = $ProfielBekend; }&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
// op basis van hccLidnummer en hccCode &lt;br /&gt;
// Essentiele aanroep, gebruikt vanuit mijnhcc.nl (lidnr + hccCode)&lt;br /&gt;
// Ook gebruikt t.b.v. wachtwoord-vergeten procedure op de Joomla template sites&lt;br /&gt;
// Als de profielpagina nog niet is doorlopen wordt deze aanroep afgekeurd.&lt;br /&gt;
//&lt;br /&gt;
// Ook gebruikt om gebruiker rechtstreeks vanaf Joomla template sites wachtwoord te&lt;br /&gt;
// laten aanpassen (op basis van lidnummer en hcc code)&lt;br /&gt;
//&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;            =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Gebruikersgegevens gewijzigd&#039;,&lt;br /&gt;
    &#039;hccLogin&#039; =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;cn&#039;       =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;       =&amp;gt; $sn);&lt;br /&gt;
&lt;br /&gt;
// 2.3 wijzig wachtwoord - optie 3&lt;br /&gt;
// (t.b.v. VZ-portal)&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
// * Als hccLidnr gevuld is, dan wordt hccLidnr gebruikt om het juiste record te zoeken&lt;br /&gt;
//   Als hccLidnr leeg   is, dan wordt hccLogin gebruikt om het juiste record te zoeken&lt;br /&gt;
//   1 van beide velden MOET aanwezig zijn&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;        =&amp;gt; $beheerLogin,    // beheerder lidnummer&lt;br /&gt;
      &#039;beheerPassword&#039;     =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
     [&#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,]&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gebruikersnaam, pseudoniem &lt;br /&gt;
//     en wachtwoord tevens in LDAP op&lt;br /&gt;
// (authenticatie op basis van hcc lidnummer en hcc-code)&lt;br /&gt;
// ** Deze gegevens worden doorgezet naar hccnet.nl (action=4) **&lt;br /&gt;
// &lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;             =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_hccLogin&#039;      =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
      &#039;nieuw_userPassword&#039;  =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem,&lt;br /&gt;
     [&#039;ServerID&#039;            =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;              =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;       =&amp;gt; &#039;Gebruiker aangemaakt&#039;,&lt;br /&gt;
    &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
    &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;       |&lt;br /&gt;
                 &#039;Gebruikersnaam bestaat al&#039;  |&lt;br /&gt;
                 &#039;Pseudoniem bestaat al&#039;      |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.3 Haal al mijn gegevens&lt;br /&gt;
// (wordt gebruikt door de Joomla inlogmodule)&lt;br /&gt;
// Voor gebruik over de proxy t.b.v. de Android app kan compact=TRUE meegegeven worden.&lt;br /&gt;
// In dat geval worden enkel de meest essentiele gegevens teruggestuurd&lt;br /&gt;
// Voor gebruik na MaakGebruikerAan kan deze functie ook op basis van hccLidnr en JoomlaToken&lt;br /&gt;
// worden aangeroepen&lt;br /&gt;
// De optionele parameter &#039;PrevSiteID&#039; is bedoeld voor single-sign-on. Op basis van JoomlaToken,&lt;br /&gt;
// hccLidnr en PrevSiteID worden dan de credentials gevalideerd. Als die kloppen, geeft deze aanroep&lt;br /&gt;
// een 2e JoomlaToken terug, maar dan uitgegeven op basis van SiteID.&lt;br /&gt;
// Als PrevSiteID leeg is, dan wordt het token op basis van siteID gevalideerd.&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,]&lt;br /&gt;
     [&#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;PrevSiteID&#039;   =&amp;gt; $PrevSiteID,]&lt;br /&gt;
     [&#039;compact&#039;      =&amp;gt; $compact,]        // leeg of &#039;TRUE&#039;&lt;br /&gt;
     [&#039;hccGroepering&#039;=&amp;gt; $hccGroepering,]  // Een testgebruiker mag alleen op deze site inloggen&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccRegio&#039;           =&amp;gt; $hccRegio,&lt;br /&gt;
    &#039;hccIG&#039;              =&amp;gt; $hccIG,&lt;br /&gt;
    &#039;hccRol&#039;             =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;hccAutorisatie&#039;     =&amp;gt; $hccAutorisatie,&lt;br /&gt;
    &#039;cn&#039;                 =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;                 =&amp;gt; $sn,&lt;br /&gt;
    &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
   [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccPseudoniem&#039;      =&amp;gt; $hccPseudoniem,&lt;br /&gt;
    &#039;givenname&#039;          =&amp;gt; $givenname,&lt;br /&gt;
    &#039;hccAanhef&#039;          =&amp;gt; $hccAanhef,&lt;br /&gt;
    &#039;hccGeslacht&#039;        =&amp;gt; $hccGeslacht,&lt;br /&gt;
    &#039;hccTussenVoegsels&#039;  =&amp;gt; $hccTussenVoegsels,&lt;br /&gt;
    &#039;hccAchternaam&#039;      =&amp;gt; $hccAchternaam,&lt;br /&gt;
    &#039;hccStraatnaam&#039;      =&amp;gt; $hccStraatnaam,&lt;br /&gt;
    &#039;hccHuisnummer&#039;      =&amp;gt; $hccHuisnummer&lt;br /&gt;
    &#039;hccPostcode&#039;        =&amp;gt; $hccPostcode,&lt;br /&gt;
    &#039;hccWoonplaats&#039;      =&amp;gt; $hccWoonplaats,&lt;br /&gt;
    &#039;hccLand&#039;            =&amp;gt; $hccLand,&lt;br /&gt;
    &#039;hccTelefoon&#039;        =&amp;gt; $hccTelefoon,&lt;br /&gt;
    &#039;mail&#039;               =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;         =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;       =&amp;gt; $hccKaderMail, &lt;br /&gt;
    &#039;hccKaderForward&#039;    =&amp;gt; $hccKaderForward,&lt;br /&gt;
    &#039;hccKaderToonMobiel&#039; =&amp;gt; $hccKaderToonMobiel,&lt;br /&gt;
    &#039;hccOptIn&#039;           =&amp;gt; $hccOptIn,&lt;br /&gt;
    &#039;ProfielBekend&#039;      =&amp;gt; $ProfielBekend,&lt;br /&gt;
    &#039;hccBeginDatum&#039;      =&amp;gt; $hccBeginDatum,&lt;br /&gt;
    &#039;testaccount&#039;        =&amp;gt; is_testaccount(),     // &#039;TRUE&#039; | &#039;FALSE&#039;&lt;br /&gt;
    &#039;hccOtpKey&#039;          =&amp;gt; $hccOtpKey,&lt;br /&gt;
    &#039;hccOtep&#039;            =&amp;gt; $hccOtep,&lt;br /&gt;
   [&#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,     // in Mb&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald;]]);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de opt-in keuzes op een Joomla site **&lt;br /&gt;
// H.4 Pas 1 opt-in van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van hccLidnr, JoomlaToken en siteID)&lt;br /&gt;
//          of&lt;br /&gt;
//          authenticatie op basis van hccLidnr en OptOutToken (voor een directe uitschrijving door een lid)&lt;br /&gt;
// Als hccLidnummer gevuld is, dan is dat het lidnummer waar de mutatie op moet worden uitgevoerd.&lt;br /&gt;
// Dat kan alleen als de aanvrager HCC#LAD of HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
     [&#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;OptOutToken&#039;  =&amp;gt; $OptOutToken,]&lt;br /&gt;
     [&#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,]&lt;br /&gt;
      &#039;hccOptIn&#039;     =&amp;gt; $hccOptIn,&lt;br /&gt;
      &#039;actie&#039;        =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptIn aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials | Token ongeldig | Token verlopen&#039;);&lt;br /&gt;
    &lt;br /&gt;
// H.5 Zoek kaderleden NAW (t.b.v. de Joomla kadersite)&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
//&lt;br /&gt;
// * Er dient minstens 1 zoekcriterium opgegeven te worden.&lt;br /&gt;
// * Als zowel hccRegio als tegelijk ook hccIG opgegeven worden is de uitkomst onvoorspelbaar.&lt;br /&gt;
// * Als compact=TRUE worden enkel lidnummer, cn en sn in het antwoord gezet&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
     [&#039;hccIG&#039;       =&amp;gt; $hccIG,]&lt;br /&gt;
     [&#039;hccRol&#039;      =&amp;gt; $hccRol,]&lt;br /&gt;
     [&#039;hccLocatie&#039;  =&amp;gt; $hccLocatie,]&lt;br /&gt;
     [&#039;achternaam&#039;  =&amp;gt; $achternaam,]&lt;br /&gt;
     [&#039;compact&#039;     =&amp;gt; $compact]));        // leeg of &#039;TRUE&#039;&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Kaderleden opgevraagd&#039;&lt;br /&gt;
    &#039;Kaderleden&#039;      =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidNummer&#039;  =&amp;gt; $hccLidNummer,&lt;br /&gt;
      &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccAanhef&#039;     =&amp;gt; $hccAanhef,&lt;br /&gt;
      &#039;givenname&#039;     =&amp;gt; $givenname,&lt;br /&gt;
      &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
      &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
      &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;]);&lt;br /&gt;
&lt;br /&gt;
// H.9 PasKaderGegevensAan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
// Om de kaderleden hun forward in te laten stellen,&lt;br /&gt;
// en tegelijkertijd de opt-in / opt-out voor hccToonMobiel te laten regelen&lt;br /&gt;
// Kan tevens het kader email wachtwoord aanpassen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;         =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;            =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;              =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;hccKaderForward&#039;     =&amp;gt; $hccKaderForward,    // &#039;&#039; | $mail | $mailHccNet&lt;br /&gt;
      &#039;hccKaderToonMobiel&#039;  =&amp;gt; $hccKaderToonMobiel, // &#039;TRUE&#039; | &#039;FALSE&#039; | &#039;NULL&#039;&lt;br /&gt;
     [&#039;nieuw_kaderPassword&#039; =&amp;gt; $nieuw_kaderPassword]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;kadergegevens aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;|&#039;Alleen kaderleden mogen deze aanroep uitvoeren&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** Portal beheer.hcc.nl&lt;br /&gt;
// ** H.10 PasUserWachtwoordAan&lt;br /&gt;
// (laatste aanroep 2020.04.09)(niet gepoort naar Joomla, maar nog wel op oude beheer portal)&lt;br /&gt;
// ** Betalende Hobbynet gebruikers kunnen hiermee hun wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van hccLogin en userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;         =&amp;gt; $username,&lt;br /&gt;
      &#039;userpassword&#039;     =&amp;gt; $password,&lt;br /&gt;
      &#039;hobbynetAccount&#039;  =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;nieuw_wachtwoord&#039; =&amp;gt; $nieuw_wachtwoord,&lt;br /&gt;
      &#039;ServerID&#039;         =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;           =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;         =&amp;gt; $remoteAddr));        &lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;     |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij gebruiker $hccLogin&#039; |&lt;br /&gt;
                 &#039;Kan ww van account $hobbynetAccount niet aanpassen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.11 Pas het pseudoniem van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Pseudoniem aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039; | &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.12 Controleer of een opgegeven wachtwoord aan de minimum eisen voldoet&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Wachtwoord voldoet aan de minimale eisen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Wachtwoord voldoet niet aan de minimale eisen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit een Joomla template site kunnen gebruikers hiermee hun eigen wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van JoomlaToken, lidnummer, siteID. Extra controle via userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;userpassword&#039;       =&amp;gt; $password,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13.1 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee hun eigen wachtwoord resetten&lt;br /&gt;
// (authenticatie op basis van PWResetToken en hccLogin).&lt;br /&gt;
// (Als de aanroep geslaagd is, dan is daarna het PWResetToken ongeldig)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039;       =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.14 MaakPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee een wachtwoord reset aanvragen&lt;br /&gt;
//    Deze aanroep geeft naast het PWResetToken ook het contact emailadres mee terug,&lt;br /&gt;
//    zodat Joomla een reset-mail kan sturen&lt;br /&gt;
// (acties op basis van gebruikersnaam)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;   =&amp;gt; $username,&lt;br /&gt;
      &#039;ServerID&#039;   =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;     =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;   =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
    &#039;mail&#039;         =&amp;gt; $mail,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token aangemaakt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.15 ValideerPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers een wachtwoord reset aanvragen&lt;br /&gt;
//    Controleer dat het hier om een bestaand (en nog niet gebruikt) token gaat&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token gevonden&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;hccLogin bestaat niet&#039; | &#039;PWResetToken bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.16 Ruim een bestaand JoomlaToken op&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;JoomlaToken opgeruimd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuist JoomlaToken&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.17 GeefAantalDomeinen&lt;br /&gt;
// ** Vraag het aantal domeinen op van een betalende Hobbynet gebruiker (t.b.v. IDEAL betaling)&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;     =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;ServerID&#039;        =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;          =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;        =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
    &#039;AantalDomeinen&#039;  =&amp;gt; $aantalDomeinen,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;aantal domeinen opgevraagd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij deze gebruiker&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18 ResetHCCCode&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // geheime credentials van de site&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // geheime credentials van de site&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18.1 ResetHCCCode (hcc kantoor aanroep)&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,    // Het Joomla token van de sessie van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,       // Het lidnummer van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de hccLogin van een gebruiker (Hobbynet functie op Joomla site)  **&lt;br /&gt;
// H.19 Pas de hccLogin van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// hccLidnummer is het lidnummer waar de mutatie op moet worden uitgevoerd&lt;br /&gt;
// Kan alleen als de aanvrager HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,     // lidnummer van de aanvrager&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,  // JoomlaToken van de aanvrager&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer, // pas de hccLogin van dit lidnummer aan&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,     // dit is de gewenste nieuwe hccLogin&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;hccLogin aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039;       | &lt;br /&gt;
                 &#039;Gebruikersnaam al in gebruik&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. het aanmaken van een testaccount door een webmaster&lt;br /&gt;
// H.20 Maak een testaccount aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// Kan alleen als de aanvrager WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakTestLogin&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,     // JoomlaToken van de aanvrager&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,    // lidnummer van de aanvrager&lt;br /&gt;
      &#039;hccRol&#039;        =&amp;gt; $hccRol,          // (mag leeg zijn)&lt;br /&gt;
      &#039;hccGroepering&#039; =&amp;gt; $hccGroepering,   // (regio of IG)&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;MaakTestLogin&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Tijdelijk test account aangemaakt&#039;,&lt;br /&gt;
    &#039;TestAccountNaam&#039; =&amp;gt; &#039;test-&amp;lt;groepering&amp;gt;-&amp;lt;hccLogin&amp;gt;&#039;&lt;br /&gt;
    &#039;userpassword&#039;    =&amp;gt; $nieuw_userpassword,&lt;br /&gt;
    &#039;hccGroepering&#039;   =&amp;gt; $hccGroepering,&lt;br /&gt;
    &#039;hccRol&#039;          =&amp;gt; $hccRol);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MaakTestLogin&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// Joomla functie&lt;br /&gt;
// ** t.b.v. aanpassen van de OneTime Passwords &lt;br /&gt;
// H.21 Pas de OTP gegevens van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van hccLidnr, JoomlaToken en siteID)&lt;br /&gt;
// Als hccLidnummer gevuld is, dan is dat het lidnummer waar de mutatie op moet worden uitgevoerd.&lt;br /&gt;
// Dat kan alleen als de aanvrager HCC#LAD of HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateOTP&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,]&lt;br /&gt;
      &#039;hccOtpKey&#039;    =&amp;gt; $hccOtpKey, // De otp encryptie key van de gebruiker (mag leeg zijn, dan weg)&lt;br /&gt;
      &#039;hccOtep&#039;      =&amp;gt; $hccOtep,   // Het one time recovery password (mag leeg zijn, dan weg)&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;UpdateOTP&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OTP gegevens aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;UpdateOTP&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// Joomla functie&lt;br /&gt;
// H.22 Heeft een lid een OTP key ja/nee&lt;br /&gt;
// (LET OP: authenticatie op basis van hccLidnr, JoomlaToken en siteID)&lt;br /&gt;
// hccLidnummer is het lidnummer waar de aanvraag op moet worden uitgevoerd.&lt;br /&gt;
// Dat kan alleen als de aanvrager HCC#LAD of HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HeeftOtpKey&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;HeeftOtpKey&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;HeeftOtpKey&#039; =&amp;gt; &#039;TRUE&#039;|&#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;OTP status opgevraagd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HeeftOtpKey&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// 3.1 Geef mijn lidnummer&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Lidnummer opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039; =&amp;gt; $hccLidnr);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Deze gegevens worden opgevraagd bij hccnet.nl (action=3)       **&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccLogin&#039; =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Enkel voor gebruik vanaf de kantoor portal **&lt;br /&gt;
// **  t.b.v. het hernoemen van accounts in CRM  **&lt;br /&gt;
// 8.3 Controleer of een Pseudoniem op dit moment bestaat		??? NIET GEBRUIKT ??&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken zoekpagina **&lt;br /&gt;
// A.1 Zoek alle bij de query passende hcc leden&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;ZoekMethode&#039;    =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;     =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;     =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $Groepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (eerste deel van) de naam               |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | emailadres          | (eerste deel van) e-mail adres          |&lt;br /&gt;
 | gebruikersnaam      | (eerste deel van) de login naam         |&lt;br /&gt;
 | pseudoniem          | (eerste deel van) het pseudoniem        |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | niet_leden          | het volledige niet-lid lidnummer        |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
   [&#039;ExtraInfo&#039;   =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;     =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidnummer&#039;      =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;hccBeginDatum&#039;     =&amp;gt; $hccBeginDatum,&lt;br /&gt;
      &#039;hccEindDatum&#039;      =&amp;gt; $hccEindDatum,&lt;br /&gt;
      &#039;sn&#039;                =&amp;gt; $sn,&lt;br /&gt;
      &#039;givenName&#039;         =&amp;gt; $givenName,&lt;br /&gt;
      &#039;hccGeslacht&#039;       =&amp;gt; $hccGeslacht,&lt;br /&gt;
      &#039;hccStraatnaam&#039;     =&amp;gt; $hccStraatnaam,&lt;br /&gt;
      &#039;hccHuisnummer&#039;     =&amp;gt; $hccHuisnummer&lt;br /&gt;
      &#039;hccHuisToevoeging&#039; =&amp;gt; $hcchuisToevoeging,&lt;br /&gt;
      &#039;hccPostcode&#039;       =&amp;gt; $hccPostcode,&lt;br /&gt;
      &#039;hccWoonplaats&#039;     =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccLand&#039;           =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;hccTelefoon&#039;       =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;         =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;mail&#039;              =&amp;gt; $mail,&lt;br /&gt;
      &#039;mailHccnet&#039;        =&amp;gt; $mailHccnet,&lt;br /&gt;
      &#039;hccIG&#039;             =&amp;gt; $hccIG,&lt;br /&gt;
      &#039;hccRol&#039;            =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccLogin&#039;          =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;hccPseudoniem&#039;     =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ProfielBekend&#039;     =&amp;gt; &#039;TRUE&#039; | &#039;FALSE&#039;])*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. beheer.hcc.nl **&lt;br /&gt;
// A.3 Zoek alle bij de query passende hcc leden van deze groepering&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
      &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;  =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;  =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,] // Alleen voor gebruik op de&lt;br /&gt;
                                      // bijeenkomsten aanwezigheidsregistratie pagina&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (deel van) de naam                      |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | nieuwe_leden        | YYYYMMDD vanaf waar gezocht moet worden |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | kaderleden          | n.v.t.                                  |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;   =&amp;gt;&lt;br /&gt;
      [array(&lt;br /&gt;
         &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
         &#039;hccBeginDatum&#039; =&amp;gt; $hccBeginDatum,&lt;br /&gt;
         &#039;hccEindDatum&#039;  =&amp;gt; $hccEindDatum,&lt;br /&gt;
         &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
         &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
         &#039;givenName&#039;     =&amp;gt; $givenName,&lt;br /&gt;
         &#039;hccAchternaam&#039; =&amp;gt; $hccAchternaam,&lt;br /&gt;
         &#039;hccTussenVoegsels =&amp;gt; hccTussenVoegsels,  &lt;br /&gt;
         &#039;hccGeslacht&#039;   =&amp;gt; $hccGeslacht,&lt;br /&gt;
         &#039;hccStraatnaam&#039; =&amp;gt; $hccStraatnaam,&lt;br /&gt;
         &#039;hccHuisnummer&#039; =&amp;gt; $hccHuisnummer, &lt;br /&gt;
         &#039;hccPostcode&#039;   =&amp;gt; $hccPostcode,&lt;br /&gt;
         &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
         &#039;hccLand&#039;       =&amp;gt; $hccLand, &lt;br /&gt;
         &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
         &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
         &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
         &#039;mailHccnet&#039;    =&amp;gt; $mailHccnet,&lt;br /&gt;
         &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail,&lt;br /&gt;
         &#039;hccRegio&#039;      =&amp;gt; $hccRegio,&lt;br /&gt;
         &#039;hccIG&#039;         =&amp;gt; $hccIG,&lt;br /&gt;
         &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
         &#039;hccLogin&#039;      =&amp;gt; $hccLogin,&lt;br /&gt;
         &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem)]*));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) niet gevonden&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten **&lt;br /&gt;
// A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,    // lid dat aanwezig gemeld moet worden&lt;br /&gt;
     [&#039;correctie&#039;   =&amp;gt; $hccLidnr,]   // lid dat gecorrigeerd moet worden&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Bezoeker weggeschreven&#039;,&lt;br /&gt;
    &#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
      // info van deze bezoeker&lt;br /&gt;
      &#039;cn&#039;               =&amp;gt; $cn,                // cn (Verbeek, H.J.)&lt;br /&gt;
      &#039;hccGeslacht&#039;      =&amp;gt; $hccGeslacht,       // hccGeslacht van de bezoeker&lt;br /&gt;
      &#039;groeperingslid&#039;   =&amp;gt; $groeperingslid,    // TRUE of FALSE: is deze persoon lid van deze groepering&lt;br /&gt;
      &#039;mijnGroeperingen&#039; =&amp;gt; $mijnGroeperingen,  // komma-gescheiden lijst (regio, [hccIG]*)&lt;br /&gt;
      &#039;aantalBezoeken&#039;   =&amp;gt; $aantalBezoeken,    // hoe vaak heeft dit lid deze bijeenkomst bezocht&lt;br /&gt;
      // info van de bijeenkomst&lt;br /&gt;
      &#039;AantalBezoekers&#039;  =&amp;gt; $AantalBezoekers);  // aantal bezoekers van deze bijeenkomst&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.5 Vraag Lidgegevens token aan (geldig voor dit lid, en deze groepering, op deze datum)&lt;br /&gt;
// Als geen datum gegeven is, dan is het token vandaag geldig&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnummer, // vraag het token voor dit lid aan&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering,   // zoek binnen deze groepering&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]       // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;     =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;     =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;    =&amp;gt; &#039;Token opgevraagd&#039;,&lt;br /&gt;
    &#039;groepering&#039; =&amp;gt; $Groepering,&lt;br /&gt;
    &#039;token&#039;      =&amp;gt; $token,&lt;br /&gt;
    &#039;sn&#039;         =&amp;gt; $sn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.6 Toon bezoekersoverzicht&lt;br /&gt;
// (authenticatie op basis van lidnummer en bezoekersregistratie token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bezoekersoverzicht opgevraagd&#039;,&lt;br /&gt;
    &#039;Bezoekers&#039; =&amp;gt; $bezoekers,&lt;br /&gt;
   [&#039;Locatie&#039;   =&amp;gt; $Locatie]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// A.7 Geef het array met alle locaties&lt;br /&gt;
// (of beperk dit tot de locaties van de groepering $Groepering)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij hccToonInJoomla aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij ToonOpKaderNet aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocaties&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $hccGroepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;       =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;      =&amp;gt; &#039;Geen locaties gevonden voor groepering $hccGroepering&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// A.8 Registreer een niet-hcclid als bezoeker tijdens een bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RegistreerGast&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039;   =&amp;gt; $lidnr,        // credentials&lt;br /&gt;
      &#039;AccountCode&#039;   =&amp;gt; $AccountCode,  // credentials&lt;br /&gt;
      &#039;token&#039;         =&amp;gt; $token,        // credentials&lt;br /&gt;
      &#039;Bijeenkomst&#039;   =&amp;gt; $groepering,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;naam&#039;          =&amp;gt; $naam,&lt;br /&gt;
      &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;buitenland&#039;    =&amp;gt; $buitenland,&lt;br /&gt;
     [&#039;nietLidNummer&#039; =&amp;gt; $nietLidNummer,]&lt;br /&gt;
     [&#039;instructies&#039;   =&amp;gt; $instructies,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $aanroep,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid als bezoeker geregistreerd&#039;,&lt;br /&gt;
    &#039;Result&#039;  =&amp;gt; $result_array);&lt;br /&gt;
&lt;br /&gt;
// A.9 Geef het array met alle locatienamen&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;           =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locatienamen niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;          =&amp;gt; &#039;Geen locatienamen gevonden&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
// A.10 Schrijf een niet-lid in op een bulletin&lt;br /&gt;
// (2019.12.05: wordt actief gebruikt in Joomla module)&lt;br /&gt;
//      Deze aanroep mag *ook* worden gebruikt om een wel-lid in te schrijven.&lt;br /&gt;
//      Voorwaarde is dat bewezen is dat er controle bestaat over het opgegeven email adres&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
      &#039;hccOptin&#039;       =&amp;gt; $hccOptin,       // bulletin waarop ingeschreven wordt&lt;br /&gt;
      &#039;hccOptinSource&#039; =&amp;gt; $hccOptinSource, // site waar aanmelding vandaan komt&lt;br /&gt;
      &#039;Email&#039;          =&amp;gt; $Email,          // niet-lid: email adres&lt;br /&gt;
      &#039;Naam&#039;           =&amp;gt; $Naam,           // niet-lid: naam&lt;br /&gt;
     [&#039;hccLidNummer&#039;   =&amp;gt; $hccLidNummer,]  // optioneel: ik ben lid, dit is mijn lidnummer&lt;br /&gt;
     [&#039;Postcode&#039;       =&amp;gt; $Postcode,]      // optioneel: niet-lid: postcode&lt;br /&gt;
     [&#039;Huisnummer&#039;     =&amp;gt; $Huisnummer,]    // optioneel: niet-lid: huisnummer&lt;br /&gt;
     [&#039;hccGeslacht&#039;    =&amp;gt; $hccGeslacht,] // optioneel: niet-lid: geslacht (M/V/O)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Inschrijving op bulletin gelukt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                   &#039;Gegevenscombinatie onjuist&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid DN syntax&#039;    |&lt;br /&gt;
                   &#039;Invalid credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.12 GeefAlleBulletins&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Bulletins opgevraagd&#039;,&lt;br /&gt;
    &#039;bulletins&#039;       =&amp;gt; $bulletins);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.13 ExpandeerPostcode&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Postcode opgevraagd&#039;,&lt;br /&gt;
    &#039;detailgegevens&#039;  =&amp;gt; $detailgegevens);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.25 UpdateNAW&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateNAW&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;toevoeging&#039;    =&amp;gt; $toevoeging,&lt;br /&gt;
      &#039;straat&#039;        =&amp;gt; $straat,&lt;br /&gt;
      &#039;woonplaats&#039;    =&amp;gt; $woonplaats,&lt;br /&gt;
      &#039;landcode&#039;      =&amp;gt; $landcode,&lt;br /&gt;
      &#039;email&#039;         =&amp;gt; $email,&lt;br /&gt;
      &#039;voornaam&#039;      =&amp;gt; $voornaam,&lt;br /&gt;
      &#039;voorletters&#039;   =&amp;gt; $voorletters,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateNAW&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Contactgegevens bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.18 NormaliseerTelefoon&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLand&#039;        =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Telefoonnummer genormaliseerd&#039;,&lt;br /&gt;
    &#039;Telefoonnummer&#039;  =&amp;gt; $Telefoonnummer);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.20 UpdateMobiel&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateMobiel&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateMobiel&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Mobiel nummer bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.21 HaalIGBedragenOp&lt;br /&gt;
//      Geef alle IG&#039;s waar je zelf lid van kunt worden, inclusief het bijbehorende bedrag&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Interessegroepen en bedragen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.22 HaalTariefGroepenOp&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Tariefgroepen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.23 PasInteressegroepAan&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;nieuw&#039;         =&amp;gt; $IG_lijst_nieuw,]&lt;br /&gt;
     [&#039;weg&#039;           =&amp;gt; $IG_lijst_weg,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;IG keuzen aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.24 GeefSSOUrls&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;SSO_urls&#039;        =&amp;gt; $sso_urls,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Single Sign On URLs opgevraagd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken beheer pagina **&lt;br /&gt;
// A.26 Verwijder een niet-lid record&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnummer,   // het te verwijderen niet-lid nummer&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Niet-lid record verwijderd&#039;,&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid record niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** HenZ **&lt;br /&gt;
// ** t.b.v. daily cron job  **&lt;br /&gt;
// ** t.b.v. dagelijkse opschoon jobs Joomla template sites **&lt;br /&gt;
// C.1 Vraag de lijst met uitgeschreven leden op&lt;br /&gt;
//     Dit kan beperkt worden tot een bepaalde regio of interessegroep&lt;br /&gt;
//     Daarnaast kan het tijdvak waarin gezocht wordt vrij gekozen worden&lt;br /&gt;
//     (gesteld dat de LDAP database nog leden uit die periode bevat)&lt;br /&gt;
//     Antwoord: lijst met (lidnummer, hccLogin, sn,&lt;br /&gt;
//                          datum einde lidmaatschap (formaat:YYYYMMDD))&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; GeefUitgeschrevenLeden &amp;lt;== (oud: GeefOpgezegdeLeden)&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccRegio&#039;       =&amp;gt; $hccRegio,    // of leeg&lt;br /&gt;
      &#039;hccIg&#039;          =&amp;gt; $hccIg,       // of leeg&lt;br /&gt;
      &#039;datum_vanaf&#039;    =&amp;gt; $datum_sinds, // YYYY-MM-DD of YYYYMMDD of leeg (leeg: 3 dagen geleden)&lt;br /&gt;
      &#039;datum_tot&#039;      =&amp;gt; $datum_tot,   // YYYY-MM-DD of YYYYMMDD of leeg (leeg: vandaag)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Uitgeschreven leden&#039;,&lt;br /&gt;
   [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
   [&#039;hccIg&#039;       =&amp;gt; $hccIg,]&lt;br /&gt;
   [&#039;datum_vanaf&#039; =&amp;gt; $datum_vanaf,]&lt;br /&gt;
   [&#039;datum_tot&#039;   =&amp;gt; $datum_tot,]&lt;br /&gt;
   [&#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
     [array(&lt;br /&gt;
        &#039;hccLogin&#039;               =&amp;gt; $hccLogin,&lt;br /&gt;
        &#039;hccLidNummer&#039;           =&amp;gt; $hccLidnummer,&lt;br /&gt;
        &#039;sn&#039;                     =&amp;gt; $sn,&lt;br /&gt;
        &#039;DatumEindeLidmaatschap&#039; =&amp;gt; $DatumEindeLidmaatschap)]*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCCpartner aanroepen ===&lt;br /&gt;
(interface versie 1)&amp;lt;br&amp;gt;&lt;br /&gt;
(oude interface, niet meer gebruiken!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.1 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    array(&#039;partnerLogin&#039;,    $partnerLogin),&lt;br /&gt;
    array(&#039;partnerPassword&#039;, $partnerPassword),&lt;br /&gt;
    array(&#039;hccLidnummer&#039;,    $hcclidnummer),&lt;br /&gt;
    array(&#039;postcode&#039;,        $postcode)));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;TRUE&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;FALSE&#039;));&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Onjuiste credentials&#039;));&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
     &#039;HCCpartner&#039;,&lt;br /&gt;
     array(&lt;br /&gt;
       &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
       array(&#039;parameter&#039;, $iets)));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;OnbekendeAanroep&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Opdracht onbekend&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCCpartners aanroepen ===&lt;br /&gt;
(interface versie 2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.2 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;          =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
      &#039;partnerLogin&#039;    =&amp;gt; $partnerLogin,&lt;br /&gt;
      &#039;partnerPassword&#039; =&amp;gt; $partnerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hcclidnummer,&lt;br /&gt;
      &#039;postcode&#039;        =&amp;gt; $postcode,&lt;br /&gt;
     [&#039;ServerID&#039;        =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;          =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;        =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;groepering=$groepering&#039;]); // als de partner beperkt is tot 1 groepering&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;FALSE&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;    =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
      &#039;parameter&#039; =&amp;gt; $iets));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Opdracht onbekend&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-kader aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** beheer.hcc.nl **&lt;br /&gt;
// F.2 Controleer of dit een kaderlid is&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsKaderLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Is kaderlid&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;cn&#039;              =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;              =&amp;gt; $sn,&lt;br /&gt;
    &#039;hccRol&#039;          =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;mail&#039;            =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;      =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;    =&amp;gt; $hccKaderMail,&lt;br /&gt;
    &#039;hccKaderForward&#039; =&amp;gt; $hccKaderForward);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Is geen kaderlid&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.4 Vraag alle groeperingen op&lt;br /&gt;
// Het is mogelijk om een groepering te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  ToonInOverzichtenFilter : attribuut &#039;hccToonInOverzichten&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  BulletinsFilter         : attribuut &#039;hccBulletins&#039;&lt;br /&gt;
//  EmailFilter             : attribuut &#039;hccFunctionalEmail&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;                =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;                  =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;                =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;          =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;BulletinsFilter&#039;         =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;EmailFilter&#039;             =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;&#039; | &#039;TRUE&#039;));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;                  =&amp;gt; &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    &#039;Status&#039;                  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;                 =&amp;gt; &#039;Lijst met groeperingen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;                  =&amp;gt; $groeperingen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;          =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.5 Vraag alle kaderrollen op&lt;br /&gt;
// Het is mogelijk om een kaderrol  te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Lijst met kaderrollen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;             =&amp;gt; $kaderrollen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de kantoor-beheerpagina **&lt;br /&gt;
// F.9 Geef de gevevens van de mailbox van dit kaderlid&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;     =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039;  =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039;));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de Joomla Kadernet module **&lt;br /&gt;
//  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID en als extra hccCode van de aanvrager)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccCode&#039;        =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
      &#039;hccLidnummer    =&amp;gt; $hccLidnummer, // lidnummer van het te muteren hcc lid&lt;br /&gt;
      &#039;hccRol&#039;         =&amp;gt; $hccRol,       // de nieuwe dan wel op te heffen rol&lt;br /&gt;
                                         // de rol &#039;ALLES_WEG&#039; ruimt alle rollen van dit hcc lid voor deze groepering op&lt;br /&gt;
      &#039;actie&#039;          =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Groepering samenstelling aangepast&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Bedankmail gestuuurd aan ex-kaderlid&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Oude rol niet gevonden&#039; |&lt;br /&gt;
		   &#039;Nieuwe rol kan niet samen met bestaande rol&#039; |&lt;br /&gt;
		   &#039;Alleen voorzitter of secretaris kan kadermutaties uitvoeren&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-groepering aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// I.2 controleer of een gebruiker bestaat op basis van de combinatie&lt;br /&gt;
//     lidnummer + postcode + huisnummer&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
// (alternatieve authenticatie mogelijk door lidnummer + hcc-code in te vullen)&lt;br /&gt;
//&lt;br /&gt;
// Aan de aanroeper worden zekere eisen gesteld:&lt;br /&gt;
// * dient een rol te vervullen binnen de groepering &#039;FOR&#039;(forum)&lt;br /&gt;
// * dan wel dient de rol &#039;VRBK&#039; (vraagbaak) te vervullen binnen een groepering&lt;br /&gt;
//&lt;br /&gt;
// Er wordt door de gehele leden-database gezocht, waarna terug wordt gegeven &lt;br /&gt;
// * of dit hcc lid inderdaad bestaat&lt;br /&gt;
// en, als het om een aanvraag van een vraagbaak vrijwilliger gaat, &lt;br /&gt;
// * tevens of het gezochte hcc lid deel uitmaakt van zijn groepering&lt;br /&gt;
//&lt;br /&gt;
// 2021.12 Mocht weg: laatste aanroep 2018.07.27&lt;br /&gt;
// Toch weer terug: 2022.03.23 (OTOBO ticket 2022032394001082)&lt;br /&gt;
//&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;        =&amp;gt; [$hccLogin | $hccLidnummer],&lt;br /&gt;
      &#039;userPassword&#039;    =&amp;gt; [$userPassword | $hccCode],&lt;br /&gt;
      &#039;zoekhccLidnr&#039;    =&amp;gt; $zoekhccLidnr,&lt;br /&gt;
      &#039;zoekhccPostcode&#039; =&amp;gt; $zoekhccPostcode,&lt;br /&gt;
      &#039;zoekhccHuisnr&#039;   =&amp;gt; $zoekhccHuisnr,&lt;br /&gt;
      &#039;zoekgroepering&#039;  =&amp;gt; $zoekgroepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens gecontroleerd&#039;,&lt;br /&gt;
   [&#039;Groeperingslid&#039; =&amp;gt; $IsGroeperingLid]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker bestaat niet&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Wel HCC lid, maar geen lid van groepering $groepering&#039; |&lt;br /&gt;
                 &#039;Onvoldoende rechten&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HenZ aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// I.3 Geef de einddatum van een actief dan wel uitgeschreven lid&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
    &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccEindDatum&#039; =&amp;gt; $hccEindDatum (&#039;yyyymmdd&#039; | &#039;&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;Lidnummer niet gevonden&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== (Forum,vraagbaak) onderwerpen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// L.1 MaakOnderwerp&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is aangemaakt&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.2 VerwijderOnderwerp&lt;br /&gt;
&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is verwijderd&#039;,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039;            |&lt;br /&gt;
                   &#039;Geen webmaster&#039;                 |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;         |&lt;br /&gt;
		   &#039;Ruim eerst alle geautoriseerde gebruikers op&#039; |&lt;br /&gt;
		   &#039;Kan onderwerp niet verwijderen&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.3 GeefOnderwerpen &lt;br /&gt;
// Geef het array met de lijst van onderwerpen voor de betreffende groepering&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerpen opgevraagd&#039;,&lt;br /&gt;
    &#039;onderwerpen&#039; =&amp;gt; $onderwerpen); // het array met onderwerpen&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.4 MuteerOnderwerp&lt;br /&gt;
// Pas de description van een onderwerp aan&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
   &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
   array(&lt;br /&gt;
     &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
     &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
     &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
     &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     &#039;groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
     &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
     &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp aangepast&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039; |&lt;br /&gt;
		   &#039;Onderwerp behoort bij andere groepering&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
// Geef kaderlid $kaderLidNr de autorisatie MOD, VRBK of RED bij onderwerp $onderwerp&lt;br /&gt;
// (of haal die autorisatie weg)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
    &#039;onderwerp&#039;      =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;kaderLidNr&#039;     =&amp;gt; $kaderLidNr,&lt;br /&gt;
    &#039;hccAutorisatie&#039; =&amp;gt; &#039;MOD&#039; | &#039;VRBK&#039; | &#039;RED&#039;,&lt;br /&gt;
   [&#039;verwijder&#039;      =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp autorisatie aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Onjuiste autorisatie opgegeven&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Autorisaties opgehaald&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;    =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039;  =&amp;gt; $description,&lt;br /&gt;
    &#039;autorisaties&#039; =&amp;gt; &lt;br /&gt;
      [Array(&lt;br /&gt;
        &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer&lt;br /&gt;
        &#039;cn&#039;              =&amp;gt; $cn&lt;br /&gt;
        &#039;hccAutorisatie&#039;  =&amp;gt; {komma-gescheiden autorisaties})]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Dynamics Cloud (Cayentis) onderwerpen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// M.1 Upload_CSV_bestand&lt;br /&gt;
// De CRM proxy upload de dagelijkse CSV synchronisatie-bestanden naar de XML-RPC server&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;      =&amp;gt; $beheerLogin,     // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039;   =&amp;gt; $beheerPassword,  // xml-rpc password&lt;br /&gt;
    &#039;CSV_bestand_type&#039; =&amp;gt; &#039;1&#039; | &#039;2&#039; | &#039;3&#039; , // 1=Contactpersonen/Hoofdlidmaatschappen&lt;br /&gt;
                                            // 2=Gremiumlidmaatschap codes&lt;br /&gt;
                                            // 3=Gremiumlidmaatschappen&lt;br /&gt;
    &#039;CSV_bestand&#039;      =&amp;gt; $CSV_bestand));   // het CSV bestand (base64 encoded)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bestand opgeslagen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.2 SchrijfNieuwLidIn&lt;br /&gt;
// &lt;br /&gt;
// Maak in het CRM een nieuw HCC lid aan&lt;br /&gt;
// De NAW gegevens worden in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;NAWgegevens&#039;    =&amp;gt; $NAW_Array,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress);&lt;br /&gt;
// $NAW_array = array(&lt;br /&gt;
//   &#039;GeboorteDatum&#039;         =&amp;gt; $geboortedatum,&lt;br /&gt;
//   &#039;Geslacht&#039;              =&amp;gt; $geslacht,&lt;br /&gt;
//   &#039;Voornaam&#039;              =&amp;gt; $voornaam,&lt;br /&gt;
//   &#039;Voorletters&#039;           =&amp;gt; $voorletters,&lt;br /&gt;
//   &#039;Tussenvoegsel&#039;         =&amp;gt; $tussenvoegsel,&lt;br /&gt;
//   &#039;Achternaam&#039;            =&amp;gt; $achternaam,&lt;br /&gt;
//   &#039;Straatnaam&#039;            =&amp;gt; $straatnaam,&lt;br /&gt;
//   &#039;Huisnummer&#039;            =&amp;gt; $huisnummer,&lt;br /&gt;
//   &#039;HuisnummerToevoeging&#039;  =&amp;gt; $huisnummertoevoeging,&lt;br /&gt;
//   &#039;Woonplaats&#039;            =&amp;gt; $woonplaats,&lt;br /&gt;
//   &#039;Postcode&#039;              =&amp;gt; $postcode,&lt;br /&gt;
//   &#039;Land&#039;                  =&amp;gt; $land,&lt;br /&gt;
//   &#039;Telefoonnummer&#039;        =&amp;gt; $telefoonnummer,&lt;br /&gt;
//   &#039;MobielNummer&#039;          =&amp;gt; $mobielnummer,&lt;br /&gt;
//   &#039;Mail&#039;                  =&amp;gt; $mail,&lt;br /&gt;
//   &#039;IBAN&#039;                  =&amp;gt; $IBAN,&lt;br /&gt;
//   &#039;Interessegroep&#039;        =&amp;gt; $IGs, // komma-gescheiden lijst met IG&#039;s&lt;br /&gt;
//   &#039;Geschenk&#039;              =&amp;gt; $geschenk,&lt;br /&gt;
//   &#039;Actiecode&#039;             =&amp;gt; $actiecode,&lt;br /&gt;
//   &#039;Voorwaarden&#039;           =&amp;gt; $Akkoord); // &#039;Akkoord&#039;&lt;br /&gt;
)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;nieuw lid ingeschreven&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;  =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccCode&#039;   =&amp;gt; $hccCode);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.3 Verwerk_JSON_mutatie&lt;br /&gt;
// De CRM proxy kan NAW en/of IG mutaties en/of hccCode mutaties live doorgeven&lt;br /&gt;
// Deze gegevens worden in JSON in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;mutatie_type&#039;   =&amp;gt; &#039;1&#039; | &#039;2&#039;,       // 1=Contactpersoon/Hoofdlidmaatschap&lt;br /&gt;
                                         // 2=Gremiumlidmaatschap&lt;br /&gt;
    &#039;JSON_mutatie&#039;   =&amp;gt; $JSON_mutatie)); // de JSON payload&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Mutatie verwerkt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.4 Vertaal landcode&lt;br /&gt;
// Het CRM werkt met numerieke landcodes, wij met cijfers&lt;br /&gt;
// Vertaal die&lt;br /&gt;
// Er moet in de aanroep 1 veld aanwezig zijn, beide waarden komen in het antwoord terug&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ISO_landcode&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    [&#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,]&lt;br /&gt;
    [&#039;ISO_code   &#039;  =&amp;gt; $ISO_code]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;ISO code lookup geslaagd&#039;,&lt;br /&gt;
    &#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,&lt;br /&gt;
    &#039;ISO_code   &#039;  =&amp;gt; $ISO_code,&lt;br /&gt;
    &#039;ISO_benaming&#039; =&amp;gt; $ISO_benaming); // de descriptive name van deze ISO code&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Kan geen bijpassende vertaling vinden&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.5 MuteerAanmeldingsformulier&lt;br /&gt;
// Sla een JSON veld op in de XML-RPC server zodat deze weer opgehaald kan worden door de websites&lt;br /&gt;
// Authenticatie op basis van hccLidnummer en JoomlaToken&lt;br /&gt;
// Deze mutaties mogen alleen door HN#WM of SITE#WM gedaan worden.&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MuteerAanmeldingsformulier&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;formulierdata&#039; =&amp;gt; $formulierdata, // JSON veld met alle gegevens voor het aanmeld formulier&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress ));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;MuteerAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;aanmeldingsformulier bijgewerkt&#039;;&lt;br /&gt;
 &lt;br /&gt;
// M.6 HaalAanmeldingsformulier&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalAanmeldingsformulier&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;HaalAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;formulierdata&#039; =&amp;gt; $formulierdata); // JSON veld met alle gegevens voor het aanmeld formulier &lt;br /&gt;
&lt;br /&gt;
// M.7 GeefFactuurOverzicht&lt;br /&gt;
// (authenticatie op basis van hccLidnummer + JoomlaToken + siteID&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefFactuurOverzicht&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),]&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID, &lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;           =&amp;gt; &#039;GeefFactuurOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;           =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;FactuurOverzicht&#039; =&amp;gt; $FactuurOverzicht); &lt;br /&gt;
//  $FactuurOverzicht =&lt;br /&gt;
//     array(&lt;br /&gt;
//       array(&lt;br /&gt;
//         &#039;FactuurID&#039;     =&amp;gt; &#039;a5b93460-4536-ea11-a813-000d3a2c53fa&#039;,&lt;br /&gt;
//         &#039;FactuurNummer&#039; =&amp;gt; &#039;200118673J5&#039;&lt;br /&gt;
//         &#039;FactuurDatum&#039;  =&amp;gt; &#039;2020-01-15&#039;&lt;br /&gt;
//         &#039;bedrag&#039;        =&amp;gt; 42.37&lt;br /&gt;
//         &#039;BetaalStatus&#039;  =&amp;gt; 0]));&lt;br /&gt;
//     )&lt;br /&gt;
&lt;br /&gt;
// M.8 HaalFactuur&lt;br /&gt;
// (authenticatie op basis van JoomlaToken of FactuurToken)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalFactuur&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;FactuurToken&#039;  =&amp;gt; $FactuurToken,]&lt;br /&gt;
      &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalFactuur&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;factuur&#039; =&amp;gt; $factuurgegevens); &lt;br /&gt;
//  $factuurgegevens =&lt;br /&gt;
//    array(&lt;br /&gt;
//         &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
//         &#039;FactuurDatum&#039;  =&amp;gt; $FactuurDatum,&lt;br /&gt;
//         &#039;FactuurID&#039;     =&amp;gt; $FactuurID,&lt;br /&gt;
//         &#039;Bestandsnaam&#039;  =&amp;gt; $Bestandsnaam,&lt;br /&gt;
//         &#039;PDF&#039;           =&amp;gt; $PDF) // base64 encoded PDF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Echo test ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// t.b.v. controle of de verbinding met de XML-RPC server functioneert&lt;br /&gt;
// Eenvoudige echo test&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;echo&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;What&#039;     =&amp;gt; $string,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;echo&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; $string);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HenZ XML-RPC interface ===&lt;br /&gt;
&lt;br /&gt;
Overzicht van XML-RPC procedures die bij HenZ draaien&lt;br /&gt;
(worden via de Hobbynet XML-RPC server afgehandeld)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- Action=2&lt;br /&gt;
  wijzig gebruikersnaam en wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=3&lt;br /&gt;
  controleer of een gebruikersnaam bestaat&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.2)&lt;br /&gt;
&lt;br /&gt;
- Action=4&lt;br /&gt;
  creer een nieuwe gebruiker. Per lidnummer is er 1 account. Als er al een &lt;br /&gt;
  account voor dit lidnummer bestaat wordt het bestaande account hernoemd.&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.1)&lt;br /&gt;
&lt;br /&gt;
- Action=5&lt;br /&gt;
  wijzig wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=7&lt;br /&gt;
  Uitgeschreven lid is weer actief lid geworden&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&lt;br /&gt;
- Action=8&lt;br /&gt;
  Lid heeft een nieuwe hcc-code gekregen&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Release notes ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2012.02.08 Wijzigingen versie 5:&lt;br /&gt;
 - 4.1 verwijder_hcc_Lidnummer i.p.v. hcc_Lidnummer&lt;br /&gt;
 - 4.1 optionele extra parameter verwijder_hccLogin&lt;br /&gt;
 - Optionele parameters aangegeven&lt;br /&gt;
 - Vanwege de duidelijkheid de beheerLogin en beheerPassword velden&lt;br /&gt;
   bovenin de betreffende aanroepen gezet&lt;br /&gt;
   (De volgorde van de parameters is niet relevant, dus dit is geen&lt;br /&gt;
    interface-aanpassing)&lt;br /&gt;
2012.02.16 Wijzigingen versie 6:&lt;br /&gt;
 - 2.1/2.2/2.3 geef ook cn en sn terug na aanpassen van het wachtwoord&lt;br /&gt;
 - 3.1 geef cn en sn terug na aanmaken nieuwe gebruiker&lt;br /&gt;
2012.02.27 Wijzigingen versie 7:&lt;br /&gt;
 - Neem de XML-RPC interface van HenZ in deze XML-RPC server op&lt;br /&gt;
   8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gegevens tevens in LDAP op&lt;br /&gt;
 - 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.2 wijzig wachtwoord, optie 2&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * gebruikersnaam kan niet meer via deze interface aangepast worden&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.3 wijzig wachtwoord, optie 3&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
2012.03.26 Wijzigingen versie 8:&lt;br /&gt;
  - Breidt de XML-RPC interface van HenZ in deze XML-RPC server uit met&lt;br /&gt;
    8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
2012.04.09 Wijzigingen versie 9:&lt;br /&gt;
 - Vervang alle &#039;ldap&#039; aanroepen door &#039;HCCldap&#039; aanroepen&lt;br /&gt;
 - documentatie van HenZ call action=2 aangepast, action=5 toegevoegd&lt;br /&gt;
2012.05.03 Wijzigingen versie 10:&lt;br /&gt;
 - 1.1 / 1.2 / 1.3 geven nu ook &#039;ProfielBekend&#039; terug om uniek te bepalen&lt;br /&gt;
   of deze bezoeker een first-time-login pagina te zien dient te krijgen&lt;br /&gt;
 - documentatie van 2.1 (wijzig wachtwoord) aangepast: &lt;br /&gt;
   2.1 kan alleen als profiel is doorlopen&lt;br /&gt;
 - nieuwe procedure t.b.v. zoekscherm PC30&lt;br /&gt;
   * A.1 ZoekHCCLid &lt;br /&gt;
     - hiervoor is de database met diverse velden uitgebreid&lt;br /&gt;
       (postcode, e-mailadres, huisadres, woonplaats, land, telefoonnummer)&lt;br /&gt;
       Dit heeft impact op diverse andere procedures (t.b.s.)&lt;br /&gt;
 - nieuwe procedure t.b.v. &#039;gewone&#039; profielpagina&lt;br /&gt;
   * B.1 GeefDBFPersoonID&lt;br /&gt;
 - nieuwe procedure t.b.v. cron-job&lt;br /&gt;
   * C.1 GeefOpgezegdeLeden&lt;br /&gt;
2012.05.10 Wijzigingen versie 11&lt;br /&gt;
 - 1.3 GebruikerBestaatControle&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
   * nieuw veld in antwoord: hccPseudoniem&lt;br /&gt;
 - 2.3 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 2.4 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * nieuwe parameter: nieuw_hccPseudoniem&lt;br /&gt;
   * alle parameters zijn verplicht (niet langer optioneel)&lt;br /&gt;
   * nieuw antwoord: Gegevenscombinatie onjuist&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * Nieuwe procedure t.b.v. 1e keer doorlopen profielpagina&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * &#039;Zoeklimiet bereikt&#039; wordt als ExtraInfo meegegeven&lt;br /&gt;
   * nieuwe velden in antwoord: hccPseudoniem en hccLogin&lt;br /&gt;
 - B.1 GeefDBFPersoonID&lt;br /&gt;
   * Zoeken kan nu ook op hccLogin en op hccPseudoniem&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden&lt;br /&gt;
   * Geef nu ook hccLogin en hccPseudoniem terug&lt;br /&gt;
2012.05.14 Wijzigingen versie 12&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook DBFPersoonID terug&lt;br /&gt;
 - 4.1 Gooi een gebruiker weg.&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 5.1 Wijzig hccIG&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 6.1 Wijzig hccRegio&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 7.1 Wijzig hccRol&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
2012.05.20 Wijzigingen versie 13&lt;br /&gt;
 - A.1 ZoekHCCLid &lt;br /&gt;
   * Geef resultaten gestructureerder formaat&lt;br /&gt;
   * Geef in ExtraInfo weer hoeveel echte resultaten er gevonden zijn&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef resultaten in gestructureerder formaat&lt;br /&gt;
2012.06.03 Wijzigingen versie 14&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * Geef ook DBFPersoonID mee&lt;br /&gt;
2012.08.17 Wijzigingen versie 15&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef ook hccLogin in het antwoord terug&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.09.29 Wijzigingen versie 16&lt;br /&gt;
 - Alle cron gerelateerde opdrachten verwijderd&lt;br /&gt;
   * 3.1 NieuweGebruiker&lt;br /&gt;
   * 4.1 GooiGebruikerWeg&lt;br /&gt;
   * 5.1 WijzigHccIG&lt;br /&gt;
   * 6.1 WijzigHccRegio&lt;br /&gt;
   * 7.1 WijzigHccRol&lt;br /&gt;
2012.10.28 Wijzigingen versie 17&lt;br /&gt;
 - nieuwe procedure t.b.v. PC30 beheerpagina&lt;br /&gt;
   * A.2 HaalPC30Token&lt;br /&gt;
 - nieuwe procedure t.b.v. Drupal profielpagina&lt;br /&gt;
   * 2.4 vervallen &lt;br /&gt;
     (WijzigGebruikersGegevens op basis van pseudoniem)&lt;br /&gt;
   * 2.5 WijzigGebruikersGegevens&lt;br /&gt;
     Nieuwe keuze: wijzig pseudoniem&lt;br /&gt;
2012.11.14 Wijzigingen versie 18&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook mail in het antwoord terug&lt;br /&gt;
2012.11.30 Wijzigingen versie 19&lt;br /&gt;
 - E.1 HCCkader/WijzigGebruikersGegevens&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.1 / F.2 / F.3 ControleerKaderlid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.12.18 Wijzigingen versie 20&lt;br /&gt;
 - Haal DBFPersoonID weg uit alle aanroepen en alle resultaten&lt;br /&gt;
   * Antwoord van 1.x GebruikerBestaatControle&lt;br /&gt;
   * B.1 GeefDBFPersoonID opgeheven&lt;br /&gt;
 - A.1 ZoekHCCLid geeft nu ook hccMobiel terug (t.b.v. PC30 zoekpagina)&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden verder uitgewerkt:&lt;br /&gt;
   * Geeft alleen de door Drupal gebruikte velden &#039;hccLogin&#039; en &#039;hccEindDatum&#039;&lt;br /&gt;
     terug in het antwoord&lt;br /&gt;
   * Geeft nu &#039;echte&#039; antwoorden i.p.v. dummy resultaten&lt;br /&gt;
 - F.1 ControleerKaderlid geeft nu ook optioneel &#039;sn&#039; en &#039;givenName&#039; &lt;br /&gt;
     terug (in de beheer-variant)&lt;br /&gt;
2013.01.25 Wijzigingen versie 21&lt;br /&gt;
 - A.1 ZoekHCCLid uitgebreid&lt;br /&gt;
   * Geeft nu ook hccBeginDatum, hccEindDatum en hccRol terug&lt;br /&gt;
2013.02.02 Wijzigingen versie 22&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * Interface aangepast&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2013.03.01 Wijzigingen versie 23&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Geeft andere resultaten terug&lt;br /&gt;
 - 2.2 WijzigWachtwoord&lt;br /&gt;
   * Geeft nu ook hccLogin terug (voor ww-vergeten op de Drupal site)&lt;br /&gt;
 - HCCenquete implementatie&lt;br /&gt;
   * G.1 Expandeer NL postcode&lt;br /&gt;
   * G.2 Haal lidgegevens op&lt;br /&gt;
   * G.3 Pas lidgegevens aan&lt;br /&gt;
2013.03.18 Wijzigingen versie 24&lt;br /&gt;
 - ZoekGroeperingsLid op basis van token&lt;br /&gt;
 - A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - A.5 VraagLidgegevensTokenAan&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2013.04.07 Wijzigingen versie 25&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   Simpeler interface ontwikkeld (&#039;HCCpartners&#039; i.p.v. &#039;HCCpartner&#039;)&lt;br /&gt;
 - G.3 mag ook Tussenvoegsels aanpassen&lt;br /&gt;
2013.04.25 Wijzigingen versie 26&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   Nieuwe interface voor validatie vanaf groeperings websites&lt;br /&gt;
2013.05.03 Wijzigingen versie 27&lt;br /&gt;
 - 2.6 HaalOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.8 HaalOptInLijst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - HCCpartners aanroep nieuwe interface (&#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;)&lt;br /&gt;
2013.07.05 Wijzigingen versie 28&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * extra parameters (mail, hccPseudoniem) in het antwoord&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
2013.08.31 Wijzigingen versie 29&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / ControleerKaderlid&lt;br /&gt;
   * extra output parameter (hccKaderMail)&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccForumLogin)&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   * komma-gescheiden lijst met groeperingen mogelijk&lt;br /&gt;
   * extra output parameter (mailHccnet)&lt;br /&gt;
2013.12.26 Wijzigingen versie 30&lt;br /&gt;
 - 3.1 Geef mijn lidnummer&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * geef nu ook &#039;ProfielBekend&#039; terug om aan de PC30 omgeving door te geven&lt;br /&gt;
     dat het wachtwoord niet veranderd mag worden door PC30&lt;br /&gt;
 - A.6 GeefBezoekersOverzicht&lt;br /&gt;
   * geef nu ook &#039;Locatie&#039; terug indien van toepassing&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * parameters aangepast&lt;br /&gt;
   * authenticatie op basis van hccLogin + userPassword of lidnummer + hcc-code&lt;br /&gt;
   * geen algemene hcc-forum authenticatie meer mogelijk&lt;br /&gt;
 - F.7 ControleerKaderlidGroep&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2014.02.01 Wijzigingen versie 31&lt;br /&gt;
 - A.8 RegistreerGast&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - nieuwe interface (losse, unieke aanroepen, niet meer gegroepeerd)&lt;br /&gt;
2014.09.27 Wijzigingen versie 32&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden hernoemd naar GeefUitgeschrevenLeden&lt;br /&gt;
 - I.3 GeefhccEindDatum&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - Action=7 en Action=8 toegevoegd aan de HenZ interface&lt;br /&gt;
2014.12.12 Wijzigingen versie 33&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / IsKaderLid&lt;br /&gt;
   * extra output parameter (mail, mailHccnet, hccKaderForward)&lt;br /&gt;
 - F.8 HCC-kader / ZetKaderForward&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.05.06 Wijzigingen versie 34&lt;br /&gt;
 - GeefMijnGegevens&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - ValideerPCActiveAbonnee&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 1.4 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccKaderForward)&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * optionele extra output parameter (ExtraInfo)&lt;br /&gt;
2015.09.27 Wijzigingen versie 35&lt;br /&gt;
 - HeeftForumCredentials&lt;br /&gt;
   * vervallen&lt;br /&gt;
2015.11.20 Wijzigingen versie 36&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.12.13 Wijzigingen versie 37&lt;br /&gt;
 - serverID als optionele parameter&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * Maak velden optioneel&lt;br /&gt;
2016.01.05 Wijzigingen versie 38&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
2016.01.15 Wijzigingen versie 39&lt;br /&gt;
 - H.3 GeefMijnGegevens&lt;br /&gt;
   * geeft nu ook hccOptIn terug&lt;br /&gt;
   * geeft nu ook JoomlaToken terug&lt;br /&gt;
 - H.4 PasOptInKeuzeAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - SiteID en RemoteID als optionele parameter&lt;br /&gt;
2016.03.17 Wijzigingen versie 40&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.03.20 Wijzigingen versie 41&lt;br /&gt;
 - ServerID, SiteID en RemoteID als optionele parameters bij alle aanroepen&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - A.9 GeefLocatieNamen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.6 WijzigHccRol&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - F.7 IsGroeperingsKaderlid&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.5 WijzigGebruikersGegevens (hccPseudoniem)&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * vervallen&lt;br /&gt;
2016.04.02 Wijzigingen versie 42&lt;br /&gt;
 - H.6 GeefMijnKaderDetails&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.07.03 Wijzigingen versie 43&lt;br /&gt;
 - Ubuntu 16.04 aanpassingen (PHP versie 7) beschreven&lt;br /&gt;
2016.09.01 Wijzigingen versie 44&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * extra parameter &#039;hccMobiel&#039;&lt;br /&gt;
2016.10.13 Wijzigingen versie 45&lt;br /&gt;
 - H.3 GeefMijnGegevens (dedecated Joomla aanroep)&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
   * Als het om een webmaster gaat, vul dan eventueel hccRegio of hccIG aan &lt;br /&gt;
     met die groepering, ook als hij geen lid is van die groepering&lt;br /&gt;
 - I.4 GebruikerBestaatControle&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
2016.12.01 Wijzigingen versie 46&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar teruggezet&lt;br /&gt;
2017.05.28 Wijzigingen versie 47&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens (t.b.v. eenmalige kadermailing)&lt;br /&gt;
 - H.8 ZetMinimaleKaderGegevens  (t.b.v. eenmalige kadermailing)&lt;br /&gt;
2017.09.01 Wijzigingen versie 48&lt;br /&gt;
 - A.10 SchrijfNietlidInOpBulletin nu alleen voor 1 bulletin tegelijk&lt;br /&gt;
 - 2.2 WijzigGebruikersGegevens (op basis van gebruikersnaam en wachtwoord)&lt;br /&gt;
       is vervallen (was een oude Drupal aanroep)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens geeft ook hccKaderToonMobiel terug&lt;br /&gt;
2017.11.14 Wijzigingen versie 49&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft geen hccKaderToonMobiel meer terug&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft alleen hccMobiel als hccKaderToonMobiel dat toestaat&lt;br /&gt;
2018.02.18 Wijzigingen versie 50&lt;br /&gt;
 - H.6 GeefMijnKaderDetails geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.9 PasKaderGegevensAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft 3 extra parameters terug (hccKaderMail, hccKaderForward,&lt;br /&gt;
   hccKaderToonMobiel)&lt;br /&gt;
 - JoomlaTokens worden gevalideerd op siteID, niet langer op serverID&lt;br /&gt;
 - diverse aanroepen kunnen nu ook via de bezoekersregistratie-proxy aangeroepen worden. &lt;br /&gt;
   Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
   (GeefAlleGroeperingen, GeefAlleKaderRollen, GeefLocaties, GeefLocatieNamen)&lt;br /&gt;
   De bezoekersregistratie aanroepen hebben enkel JoomlaToken als extra parameter nodig:&lt;br /&gt;
   (LidBezoektBijeenkomst, GeefBezoekersOverzicht)&lt;br /&gt;
2018.02.26 Wijzigingen versie 51&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft extra parameter hccMobiel terug &lt;br /&gt;
 - H.9 PasKaderGegevensAan kan nu ook kadermail password aanpassen&lt;br /&gt;
 - K.1 ValideerToken&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - K.2 ValideerHCCCode&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2018.03.17 Wijzigingen versie 52&lt;br /&gt;
 - H.3 Haal al mijn gegevens&lt;br /&gt;
   Extra optie &#039;compact&#039; om alleen essentiele resultaten te verkrijgen&lt;br /&gt;
   (t.b.v. de Android bezoekersregistratie applicatie)&lt;br /&gt;
2018.03.25 Wijzigingen versie 53&lt;br /&gt;
 - I.2 IsHCCLid&lt;br /&gt;
   (Oude aanroep teruggezet, wordt nog in vraagbaak module gebruikt)&lt;br /&gt;
2018.07.01 Wijzigingen versie 54&lt;br /&gt;
   * A.1 beheer authenticatie op basis van lidnummer + hccCode (tbv VZ-portal)&lt;br /&gt;
   * A.2 HaalPC30Token weggehaald&lt;br /&gt;
2018.08.22 Wijzigingen versie 55&lt;br /&gt;
  * 1.2 GebruikerBestaatControle&#039; (op basis van hccLogin en userPassword) weggehaald&lt;br /&gt;
  * 1.4 GebruikerBestaatControle&#039; (op basis van zoekHccLogin of zoekHccLidnr) weggehaald&lt;br /&gt;
  * 2.8 HaalOptInLijst weggehaald&lt;br /&gt;
  * E.1 PasKaderWachtwoordAan weggehaald&lt;br /&gt;
  * F.1 IsKaderLid (op basis van hccLidnr en hccCode) weggehaald&lt;br /&gt;
  * F.3 IsKaderLid (op basis van beheerdernaam en beheerderwachtwoord) was al weg&lt;br /&gt;
  * F.8 ZetKaderForward weggehaald&lt;br /&gt;
  * H.1 IsGroeperingsLid weggehaald&lt;br /&gt;
  * H.6 GeefMijnKaderDetails weggehaald&lt;br /&gt;
  * H.7 GeefMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * H.8 ZetMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * K.1 ValideerHCCCode weggehaald&lt;br /&gt;
  * K.2 ValideerToken weggehaald&lt;br /&gt;
  * H.3 GeefMijnGegevens geeft omvang kader mailbox mee terug&lt;br /&gt;
2018.11.06 Wijzigingen versie 56&lt;br /&gt;
  Nieuwe aanroepen t.b.v. forum en vraagbaak autorisaties&lt;br /&gt;
  * L.1 MaakOnderwerp&lt;br /&gt;
  * L.2 VerwijderOnderwerp&lt;br /&gt;
  * L.3 GeefOnderwerpen&lt;br /&gt;
  * L.4 MuteerOnderwerp&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
  * L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
  * H.5 ZoekKaderLeden heeft compact optie&lt;br /&gt;
2018.11.16 Wijzigingen versie 57&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie kent nu ook RED(acteur)&lt;br /&gt;
2018.12.17 Wijzigingen versie 58&lt;br /&gt;
  * A.11 GeefBezoekersAantallen (nieuwe aanroep)&lt;br /&gt;
  * H.10 PasUserWachtwoordAan (nieuwe aanroep)&lt;br /&gt;
2019.02.21 Wijzigingen versie 59&lt;br /&gt;
  * A. 6 GeefBezoekersOverzicht geeft enkel lijst van bezoekers laatste bijeenkomst&lt;br /&gt;
2019.10.26 Wijzigingen versie 60&lt;br /&gt;
  * A.4 Schrijf bezoekers niet meer automatisch in op bulletins&lt;br /&gt;
  * H.4  PasOptInKeuzeAan kan ook door LA aangeroepen worden&lt;br /&gt;
  Nieuwe aanroepen t.b.v. eigen implementatie van mijn.hcc.nl in de Joomla modules&lt;br /&gt;
  * H.11 PasPseudoniemAan&lt;br /&gt;
  * H.12 ValideerWachtwoordEisen&lt;br /&gt;
  * H.13 PasWachtwoordAan (1: op JoomlaToken, 2: op PWResetToken)&lt;br /&gt;
  * H.14 MaakPWResetToken&lt;br /&gt;
  * H.15 ValideerPWResetToken&lt;br /&gt;
  * H.16 RuimJoomlaTokenOp&lt;br /&gt;
  * A.12 GeefAlleBulletins&lt;br /&gt;
  * A.13 ExpandeerPostcode&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.18 NormaliseerTelefoon&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  * A.21 HaalIGBedragenOp&lt;br /&gt;
  * A.22 HaalTariefGroepenOp&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
  * A.24 GeefSSOUrls&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  8.1 MaakGebruikerAan&lt;br /&gt;
  F.5 GeefAlleKaderRollen&lt;br /&gt;
2020.01.04 Wijzigingen versie 61&lt;br /&gt;
  Nieuwe aanroepen t.b.v. IDEAL betaling hobbynet abonnees&lt;br /&gt;
  H.17 GeefAantalDomeinen&lt;br /&gt;
2020.01.06 Wijzigingen versie 62&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Cayentis (CRM webproxy) implementatie&lt;br /&gt;
  * M.1  Upload_CSV_bestand&lt;br /&gt;
  * M.2  SchrijfNieuwLidIn&lt;br /&gt;
  * M.3  Verwerk_JSON_mutatie&lt;br /&gt;
  * M.4  ISO_landcode&lt;br /&gt;
  * M.5  MuteerAanmeldingsformulier&lt;br /&gt;
  * M.6  HaalAanmeldingsformulier&lt;br /&gt;
  * M.7  GeefFactuurOverzicht&lt;br /&gt;
  * M.8  HaalFactuur&lt;br /&gt;
  * A.25 UpdateNAW&lt;br /&gt;
  Vervallen aanroepen&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  Aangepaste aanroepen&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
2020.03.27 Wijzigingen versie 63&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.18 ResetHCCCode&lt;br /&gt;
  * H.19 PasHccLoginAan&lt;br /&gt;
2020.04.10 Wijzigingen versie 64&lt;br /&gt;
  Nieuwe aanroepen &lt;br /&gt;
  * A.26 VerwijderNietLid&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  * A.1  ZoekHCCLid: nieuwe zoekoptie &#039;niet_leden&#039;&lt;br /&gt;
  Opnieuw geimplementeerd&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
2020.11.26 Wijzigingen versie 65&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.20 MaakTestLogin&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.3 GeefMijnGegevens: optionele parameter &#039;hccGroepering&#039;&lt;br /&gt;
  Het werken met een testaccount heeft impact op de volgende aanroepen:&lt;br /&gt;
  - G.7  GeefFactuurOverzicht&lt;br /&gt;
  - M.8  HaalFactuur&lt;br /&gt;
  - L.1  MaakOnderwerp&lt;br /&gt;
  - H.14 MaakPWResetToken&lt;br /&gt;
  - F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
  - L.4  MuteerOnderwerp&lt;br /&gt;
  - L.5  MuteerOnderwerpAutorisatie&lt;br /&gt;
  - H.19 PasHccLoginAan&lt;br /&gt;
  - A.23 PasInteressegroepAan&lt;br /&gt;
  - H.9  PasKaderGegevensAan&lt;br /&gt;
  - H.4  PasOptInKeuzeAan&lt;br /&gt;
  - H.11 PasPseudoniemAan&lt;br /&gt;
  - H.13 PasWachtwoordAan&lt;br /&gt;
  - H.18 ResetHCCCode&lt;br /&gt;
  - A.20 UpdateMobiel&lt;br /&gt;
  - A.25 UpdateNAW&lt;br /&gt;
  - L.2  VerwijderOnderwerp&lt;br /&gt;
  - A.5  VraagLidgegevensTokenAan&lt;br /&gt;
  - 2.1  WijzigGebruikersGegevens&lt;br /&gt;
  - H.3 GeefMijnGegevens geeft extra parameter terug (testaccount)&lt;br /&gt;
2021.08.01 Wijzigingen versie 66&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.4 PasOptInKeuzeAan werkt nu ook op basis van OptOutToken&lt;br /&gt;
2021.10.10 Wijzigingen versie 67&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  - H.21 UpdateOTP&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.3 GeefMijnGegevens geeft extra parameters terug (hccOtpKey en hccOtep)&lt;br /&gt;
2021.10.13 Wijzigingen versie 68&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.21 UpdateOTP &lt;br /&gt;
2021.11.03 Wijzigingen versie 69&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  - H.22 HeeftOtpKey&lt;br /&gt;
2021.12.24 Wijzigingen versie 70&lt;br /&gt;
  Vervallen aanroepen&lt;br /&gt;
  - A.11 GeefBezoekersAantallen (laatste aanroep 2018.12.15)&lt;br /&gt;
  - I.2  IsHCCLid (vraagbaak module al minstens 2 jaar niet meer gebruikt)&lt;br /&gt;
  - 2.6  HaalOptInKeuzen (niet meer in gebruik sinds 2020.03.01)&lt;br /&gt;
2022.03.24 Wijzigingen versie 71&lt;br /&gt;
 - I.2 IsHCCLid&lt;br /&gt;
   (Oude aanroep teruggezet, Esther vraagt opnieuw om deze functionaliteit tbv vraagbaak, ticket 2022032394001082)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Aanpassingen aan de Apache omgeving =&lt;br /&gt;
&lt;br /&gt;
== Apache modules (PHP 8) ==&lt;br /&gt;
Ubuntu 20.04 wordt standaard met PHP versie 7.0 uitgeleverd.&lt;br /&gt;
&lt;br /&gt;
In /etc/apt/sources.list.d/ondrej-ubuntu-php-focal.list dient de volgende regel opgenomen te worden:&lt;br /&gt;
 deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main&lt;br /&gt;
&lt;br /&gt;
De opdrachten om de modules op te halen zijn:&lt;br /&gt;
 apt-get install php-xmlrpc&lt;br /&gt;
 apt-get install apache2&lt;br /&gt;
 apt-get install ldap-utils&lt;br /&gt;
 apt-get install php-ldap&lt;br /&gt;
 apt-get install libapache2-mod-php&lt;br /&gt;
 apt-get install php-gnupg&lt;br /&gt;
&lt;br /&gt;
= algemeen =&lt;br /&gt;
&lt;br /&gt;
Het encrypted backup script is verplaatst naar &#039;/usr/local/hobbynet/local&#039; en hernoemd naar &#039;backup-encrypted.bash&#039;.&lt;br /&gt;
Dit is omdat deze niet mee mag worden gesynchroniseerd.&lt;br /&gt;
&lt;br /&gt;
Tevens wordt 1x per dag /usr/local/hobbynet/bin gesynchroniseerd (1-richting van hcc-ldap-lb1 naar hcc-ldap-lb2)&lt;br /&gt;
&lt;br /&gt;
== Aanpassingen in de firewall ==&lt;br /&gt;
Op de server waar de XML-RPC server staat, moeten enkele firewall aanpassingen gemaakt worden.&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf het interne netwerk (www-prod, www-test), en vanaf eventuele andere plekken die we expliciet toe willen staan.&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf mijn.hcc.nl (XML-RPC aanroepen vanaf de portal)&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf service.hccnet.nl toe (XML-RPC aanroep GeefUitgeschrevenLeden vanuit HenZ)&lt;br /&gt;
* uitgaand: sta TCP 443 naar service.hccnet.nl toe (XML-RPC aanroepen naar HenZ)&lt;br /&gt;
&lt;br /&gt;
== Aanpassingen aan AppArmor ==&lt;br /&gt;
Alhoewel technisch gezien dit bij slapd behoort, neem ik het toch hier op.&lt;br /&gt;
&lt;br /&gt;
Als het Hobbynet certificaat in de map /disk/site/etc/ssl/hobby.nl/ wordt neergezet, dan zal apparrmor de toegang tot de certificaten blokkeren. Neem daarom in de &#039;&#039;&#039;local&#039;&#039;&#039; directory van apparmor het volgende op:&lt;br /&gt;
 # /etc/apparmor.d/local/usr.sbin.slapd&lt;br /&gt;
 # Site-specific additions and overrides for usr.sbin.slapd.&lt;br /&gt;
 # For more details, please see /etc/apparmor.d/local/README.&lt;br /&gt;
 #include &amp;lt;abstractions/ssl_certs&amp;gt;&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/ r,&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/* r,&lt;br /&gt;
&lt;br /&gt;
= CRM (Azure) proxy herstarten =&lt;br /&gt;
Als er indicaties zijn dat niet alle JSON berichten meer vanuit het CRM aangeboden worden aan de XML-RPC server, dan kan het helpen om de CRM proxy te herstarten&lt;br /&gt;
&lt;br /&gt;
* Ga naar https://portal.azure.com/&lt;br /&gt;
* Login met zelfde account als voor het CRM&lt;br /&gt;
* Soms krijg je een popup. Die kan je weg klikken, je wilt geen rondleiding&lt;br /&gt;
* Klik op &#039;&#039;&#039;hccdyn01-aps-crm01&#039;&#039;&#039; voor productie en &#039;&#039;&#039;hccdyn01-aps-dev01&#039;&#039;&#039; voor test&lt;br /&gt;
* En dan kan je op opnieuw starten klikken.&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=PDNS_authoritative_dns_server%27s&amp;diff=79522</id>
		<title>PDNS authoritative dns server&#039;s</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=PDNS_authoritative_dns_server%27s&amp;diff=79522"/>
		<updated>2022-03-27T17:02:28Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Doel =&lt;br /&gt;
Dit zijn de autoritive name servers van hobbynet&lt;br /&gt;
&lt;br /&gt;
= opzet =&lt;br /&gt;
pdns1 is de master server. Hier draait de database op met alle records, in een mysql database.&lt;br /&gt;
&lt;br /&gt;
De overige dns servers draaien een slave van deze server en worden zo automatisch voorzien van de meest recente records.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;let op alle wijzigingen moeten dus op pdns1 worden uitgevoerd, anders help je de replicatie om zeep&amp;lt;/u&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
= zones =&lt;br /&gt;
== zone bewerken ==&lt;br /&gt;
=== cli ===&lt;br /&gt;
eenvoudig via : &lt;br /&gt;
 pdnsutil edit-zone (zonenaam zonder extra .)&lt;br /&gt;
&lt;br /&gt;
== zone migreren ==&lt;br /&gt;
in /root staat migratie script . Dit script haalt de zone file uit /root/master.&lt;br /&gt;
&lt;br /&gt;
Deze zorgt dat de zone wordt ingelezen in de database en nameserver records worden goed gezet.&lt;br /&gt;
&lt;br /&gt;
 /root/migrate.sh&lt;br /&gt;
&lt;br /&gt;
= zone bewerken =&lt;br /&gt;
== cli ==&lt;br /&gt;
activeren van dnssec gaat relatief eenvoudig draai &lt;br /&gt;
 /disk/scripting/powerdns/dnssec/activeerdnssec.sh domeinnaam.tld&lt;br /&gt;
en de benodigde handelingen worden verricht, ksk en zsk worden aangemaakt en geactiveerd en nsec3 wordt geactiveerd.&lt;br /&gt;
&lt;br /&gt;
Hierna kan je paar uur wachten of je draait het dnsseconderhoud script om te zorgen dat de leverancier wordt bij gewerkt.&lt;br /&gt;
== web ==&lt;br /&gt;
Je kan de webinterface benaderen via:  &lt;br /&gt;
 https://poweradmin.hobby.nl/ &lt;br /&gt;
&lt;br /&gt;
Wacht woord wijzigen kan via about me &lt;br /&gt;
&lt;br /&gt;
Dit is nog tijdelijke web interface &lt;br /&gt;
= dnssec =&lt;br /&gt;
Om te zorgen dat de KSK key&#039;s automatisch worden uitgerold naar de verschillende leveranciers is er een database genaamd Domeinbeheer&lt;br /&gt;
== activeren ==&lt;br /&gt;
Om DNSsec te activeren, dit gaat alleen vanaf de commandline met het commando&lt;br /&gt;
 activeerdnssec domein.tld&lt;br /&gt;
&lt;br /&gt;
En als je wilt dat dit direct geactiveerd wordt bij de TLD, dan moet je dit commando draaien: &lt;br /&gt;
 php /disk/scripting/powerdns/dnssec/dnsseconderhoud.php&lt;br /&gt;
&lt;br /&gt;
Je kan ook wachten tot 4:42 of 16:42 dan draait het onderhoud script uit crontab&lt;br /&gt;
&lt;br /&gt;
== database ==&lt;br /&gt;
=== tabellen ===&lt;br /&gt;
==== dnssec ====&lt;br /&gt;
Deze tabel houd bij welke KSK actief is, en wanneer hij verloopt &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Naam veld&lt;br /&gt;
!Omschrijving&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|Primary key&lt;br /&gt;
|-&lt;br /&gt;
|Domein naam&lt;br /&gt;
|Naam van de zone/domein (met extra punt)&lt;br /&gt;
|-&lt;br /&gt;
|actieve-ksk&lt;br /&gt;
|keytag van de actieve ksk&lt;br /&gt;
|-&lt;br /&gt;
|standby-ksk&lt;br /&gt;
|keytag van de standby ksk&lt;br /&gt;
|-&lt;br /&gt;
|verlopen-ksk&lt;br /&gt;
|keytag van de verlopen ksk&lt;br /&gt;
|-&lt;br /&gt;
|verval-actieve&lt;br /&gt;
|Datum wanneer key in gebruik is genomen&lt;br /&gt;
|-&lt;br /&gt;
|Verval-verlopen&lt;br /&gt;
|Datum wanneer key inactief is geworden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Leveranciers ====&lt;br /&gt;
Om te kunnen bepalen bij welke leverancier een domein hoort wordt aan de hand van de tld bepaald wat de leverancier is.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Naam veld&lt;br /&gt;
!Omschrijving&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|Primary key&lt;br /&gt;
|-&lt;br /&gt;
|tld&lt;br /&gt;
|de extentie van domein&lt;br /&gt;
|-&lt;br /&gt;
|leveransier&lt;br /&gt;
|de leverancier van deze tld&lt;br /&gt;
|}&lt;br /&gt;
== api ==&lt;br /&gt;
=== epp sidn ===&lt;br /&gt;
Helaas is de EPP interface best complex en niet al te makkelijk, maar wordt deels eigen scripting gebruikt en deels een php-client van metaregistry opgehaald en up2date gehouden via composer&lt;br /&gt;
=== Transip rest api ===&lt;br /&gt;
We maken gebruiken van de rest interface van Transip&lt;br /&gt;
&lt;br /&gt;
We hebben een PHP class &#039;&#039;&#039;TransIP_AccessToken&#039;&#039;&#039; voor het aanmaken van een autorisatie token. &lt;br /&gt;
&lt;br /&gt;
Dit token is 30 min geldig &lt;br /&gt;
=== ripe rest api ===&lt;br /&gt;
Voor ripe gebruiken we de standaard rest interface van ripe.&lt;br /&gt;
&lt;br /&gt;
We halen het json object op bij RIPE. Als er 1 ds-record niet klopt dan wordt het hele record overschreven, met het meest recente record.&lt;br /&gt;
&lt;br /&gt;
Update van record is traag&lt;br /&gt;
&lt;br /&gt;
=== godaddy api ===&lt;br /&gt;
Godaddy heeft geen api, voor dit 1e domein hcc.contact heb ik dnssec uit staan. In de toekomst maken we hier nog wat voor, of we wachten tot transip ook aan .contact doet&lt;br /&gt;
&lt;br /&gt;
= scripting =&lt;br /&gt;
Alle scripting staat op /disk/scripting/powerdns&lt;br /&gt;
&lt;br /&gt;
Op deze manier wordt ook netjes geback-upt&lt;br /&gt;
&lt;br /&gt;
== dnsseconderhoud.php ==&lt;br /&gt;
Dit script verricht onderhoud in paar fases:&lt;br /&gt;
&lt;br /&gt;
# Fase 1 kijken of er verlopen actieve ksk&#039;s zijn en zo ja wissel KSK  met standby KSK en maak nieuwe KSK (elke 3 maanden wisselen)&lt;br /&gt;
# Fase 2 controleer of records kloppen bij leveranciers en zo nodig update soms altijd update zie api omschrijving&lt;br /&gt;
# Fase 3 verwijder alle verlopen KSK die ouder zijn dan 1 week&lt;br /&gt;
# Fase 4 verwijder niet gekoppelde KSK&#039;s uit powerdns&lt;br /&gt;
&lt;br /&gt;
== functions.php ==&lt;br /&gt;
Deze file bevat alle gebruikte functies&lt;br /&gt;
&lt;br /&gt;
== credentials* ==&lt;br /&gt;
Spreekt voor zich&lt;br /&gt;
&lt;br /&gt;
== transip/zetnameservergoed.php ==&lt;br /&gt;
Dit script zet nameserver van domein goed bij transip&lt;br /&gt;
 transip/zetnameservergoed.php domein.tld&lt;br /&gt;
== sidn/zetnameservergoed.php ==&lt;br /&gt;
Dit script zet nameserver van domein goed bij sidn&lt;br /&gt;
 sidn/zetnameservergoed.php domein.nl&lt;br /&gt;
&lt;br /&gt;
= vragen =&lt;br /&gt;
Stoppen met vullen van groeperingen uit ldap (vereenvoudigen)&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=79379</id>
		<title>MediaWikiSites</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=79379"/>
		<updated>2022-01-03T15:57:34Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Lijst met Mediawiki sites die wij bijhouden ==&lt;br /&gt;
&lt;br /&gt;
* Hobbynet wiki  (https://wiki.hobby.nl/)&lt;br /&gt;
&lt;br /&gt;
== upgrade procedure ==&lt;br /&gt;
&lt;br /&gt;
* log in op hobbynet-lb1-int&lt;br /&gt;
&lt;br /&gt;
* maak met tar een backup van de wiki:&lt;br /&gt;
 cd /disk/site/hobbynet/wiki.hobby.nl/&lt;br /&gt;
 tar -cf wiki-backup-20200830.tar www&lt;br /&gt;
 bzip2 wiki-backup-20200830.tar&lt;br /&gt;
&lt;br /&gt;
* maak met phpmyadmin een backup van de database&lt;br /&gt;
&lt;br /&gt;
* download de wiki software upgrade van http://www.mediawiki.org/&lt;br /&gt;
&lt;br /&gt;
* volg de instructies zoals beschreven op http://www.mediawiki.org/wiki/Manual:Upgrading&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hobbynet wiki updaten ===&lt;br /&gt;
* Volg de instructies om de wiki te updaten&lt;br /&gt;
&lt;br /&gt;
====optie 1: volledige versie downloaden en installeren====&lt;br /&gt;
 &amp;lt;b&amp;gt;Ons eigen lijstje:&amp;lt;/b&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 ssh hobbynet-lb1-int&lt;br /&gt;
 cd /disk/site/hobbynet/wiki.hobby.nl&lt;br /&gt;
 rm -rf www-old&lt;br /&gt;
 cp -a www www-old&lt;br /&gt;
 wget https://releases.wikimedia.org/mediawiki/1.37/mediawiki-1.37.1&amp;lt;nowiki/&amp;gt;.tar.gz&lt;br /&gt;
 tar xzf mediawiki-1.37.1.tar.gz&lt;br /&gt;
 chown wiki-hobby-nl:wiki-hobby-nl  mediawiki-1.37.1 -R&lt;br /&gt;
 cp -a www-old/LocalSettings.php   mediawiki-1.37.1&lt;br /&gt;
 cp -a www-old/images/*            mediawiki-1.37.1/images&lt;br /&gt;
 cp -a www-old/getip*              mediawiki-1.37.1&lt;br /&gt;
 rm -rf www&lt;br /&gt;
 mv mediawiki-1.37.1 www&lt;br /&gt;
 cd www/maintenance&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
Op 2021.08.15 wilde de update naar 1.36.1 niet starten. Bleek dat eerst de module &#039;php-intl&#039; met apt erbij gezet moest worden.&lt;br /&gt;
&lt;br /&gt;
Op 2020.08.30 weigerde de update correct te lopen. Bleek dat er geen skins meer waren, en de extensie WikiEditor ontbrak ook.&lt;br /&gt;
Pas na het terugzetten van die bestanden uit de oude omgeving wilde het update script draaien&lt;br /&gt;
 cp -a ../../www-old/skins/MonoBook ../skins/&lt;br /&gt;
 cp -a ../../www-old/skins/Vector/ ../skins/&lt;br /&gt;
 cp -a ../../www-old/skins/Timeless/ ../skins/&lt;br /&gt;
 cp -a ../../www-old/extensions/WikiEditor ../extensions/&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
*Als update.php niet draait, omdat er geen sql modules beschikbaar zouden zijn, selecteer dan eerst de juiste php versie&lt;br /&gt;
 update-alternatives --config php &lt;br /&gt;
&lt;br /&gt;
* Op de hobbynet wiki staan 2 losse bestanden die geen directe relatie met de wiki software hebben (&#039;&#039;&#039;getip.html&#039;&#039;&#039; en &#039;&#039;&#039;getip.php&#039;&#039;&#039;).&amp;lt;br&amp;gt;&lt;br /&gt;
Plaats die bestanden terug, tijdens de wiki upgrade actie!&lt;br /&gt;
&lt;br /&gt;
====optie 2: patch enkel de verschillen====&lt;br /&gt;
&lt;br /&gt;
Op 2021.10.03 is er voor het eerst gebruik gemaakt van de patch procedure om de upgrade naar versie 1.36.2 uit te voeren.&lt;br /&gt;
 wget https://releases.wikimedia.org/mediawiki/1.36/mediawiki-1.36.2.patch.gz&lt;br /&gt;
 gunzip mediawiki-1.36.2.patch.gz&lt;br /&gt;
 patch -p1 --dry-run -i mediawiki-1.36.2.patch&lt;br /&gt;
 patch -p1           -i mediawiki-1.36.2.patch&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=79377</id>
		<title>MediaWikiSites</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=79377"/>
		<updated>2022-01-03T15:36:42Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Lijst met Mediawiki sites die wij bijhouden ==&lt;br /&gt;
&lt;br /&gt;
* Hobbynet wiki  (https://wiki.hobby.nl/)&lt;br /&gt;
&lt;br /&gt;
== upgrade procedure ==&lt;br /&gt;
&lt;br /&gt;
* log in op hobbynet-lb1-int&lt;br /&gt;
&lt;br /&gt;
* maak met tar een backup van de wiki:&lt;br /&gt;
 cd /disk/site/hobbynet/wiki.hobby.nl/&lt;br /&gt;
 tar -cf wiki-backup-20200830.tar www&lt;br /&gt;
 bzip2 wiki-backup-20200830.tar&lt;br /&gt;
&lt;br /&gt;
* maak met phpmyadmin een backup van de database&lt;br /&gt;
&lt;br /&gt;
* download de wiki software upgrade van http://www.mediawiki.org/&lt;br /&gt;
&lt;br /&gt;
* volg de instructies zoals beschreven op http://www.mediawiki.org/wiki/Manual:Upgrading&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hobbynet wiki updaten ===&lt;br /&gt;
* Volg de instructies om de wiki te updaten&lt;br /&gt;
&lt;br /&gt;
====optie 1: volledige versie downloaden en installeren====&lt;br /&gt;
 &amp;lt;b&amp;gt;Ons eigen lijstje:&amp;lt;/b&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 ssh hobbynet-lb1-int&lt;br /&gt;
 cd /disk/site/hobbynet/wiki.hobby.nl&lt;br /&gt;
 rm -rf www-old&lt;br /&gt;
 cp -a www www-old&lt;br /&gt;
 wget https://releases.wikimedia.org/mediawiki/1.36/mediawiki-1.36.1&amp;lt;nowiki/&amp;gt;.tar.gz&lt;br /&gt;
 tar xzf mediawiki-1.36.1.tar.gz&lt;br /&gt;
 chown wiki-hobby-nl:wiki-hobby-nl  mediawiki-1.36.1 -R&lt;br /&gt;
 cp -a www-old/LocalSettings.php   mediawiki-1.36.1&lt;br /&gt;
 cp -a www-old/images/*            mediawiki-1.36.1/images&lt;br /&gt;
 cp -a www-old/getip*              mediawiki-1.36.1&lt;br /&gt;
 rm -rf www&lt;br /&gt;
 mv mediawiki-1.36.1 www&lt;br /&gt;
 cd www/maintenance&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
Op 2021.08.15 wilde de update naar 1.36.1 niet starten. Bleek dat eerst de module &#039;php-intl&#039; met apt erbij gezet moest worden.&lt;br /&gt;
&lt;br /&gt;
Op 2020.08.30 weigerde de update correct te lopen. Bleek dat er geen skins meer waren, en de extensie WikiEditor ontbrak ook.&lt;br /&gt;
Pas na het terugzetten van die bestanden uit de oude omgeving wilde het update script draaien&lt;br /&gt;
 cp -a ../../www-old/skins/MonoBook ../skins/&lt;br /&gt;
 cp -a ../../www-old/skins/Vector/ ../skins/&lt;br /&gt;
 cp -a ../../www-old/skins/Timeless/ ../skins/&lt;br /&gt;
 cp -a ../../www-old/extensions/WikiEditor ../extensions/&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
*Als update.php niet draait, omdat er geen sql modules beschikbaar zouden zijn, selecteer dan eerst de juiste php versie&lt;br /&gt;
 update-alternatives --config php &lt;br /&gt;
&lt;br /&gt;
* Op de hobbynet wiki staan 2 losse bestanden die geen directe relatie met de wiki software hebben (&#039;&#039;&#039;getip.html&#039;&#039;&#039; en &#039;&#039;&#039;getip.php&#039;&#039;&#039;).&amp;lt;br&amp;gt;&lt;br /&gt;
Plaats die bestanden terug, tijdens de wiki upgrade actie!&lt;br /&gt;
&lt;br /&gt;
====optie 2: patch enkel de verschillen====&lt;br /&gt;
&lt;br /&gt;
Op 2021.10.03 is er voor het eerst gebruik gemaakt van de patch procedure om de upgrade naar versie 1.36.2 uit te voeren.&lt;br /&gt;
 wget https://releases.wikimedia.org/mediawiki/1.36/mediawiki-1.36.2.patch.gz&lt;br /&gt;
 gunzip mediawiki-1.36.2.patch.gz&lt;br /&gt;
 patch -p1 --dry-run -i mediawiki-1.36.2.patch&lt;br /&gt;
 patch -p1           -i mediawiki-1.36.2.patch&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=79335</id>
		<title>XML-RPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=79335"/>
		<updated>2021-11-04T11:38:18Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XML-RPC interface =&lt;br /&gt;
&lt;br /&gt;
De LDAP server kan direct gemuteerd worden via een LDAP koppeling. Zie&lt;br /&gt;
de standaard LDAP pagina voor de uitleg welke poorten daarvoor gebruikt&lt;br /&gt;
kunnen worden.&lt;br /&gt;
&lt;br /&gt;
Daarnaast is er de wens ontstaan om via een standaard protocol met de&lt;br /&gt;
LDAP omgeving te kunnen communiceren. Er is hiertoe een XML-RPC&lt;br /&gt;
koppeling ontwikkeld. XML-RPC is een standaard interface, waarmee het&lt;br /&gt;
mogelijk is om vanuit diverse omgevingen op een gestandaardiseerde&lt;br /&gt;
manier te communiceren.&lt;br /&gt;
&lt;br /&gt;
== Globale functie omschrijving ==&lt;br /&gt;
* Algemene aanroepen&lt;br /&gt;
** Controleer of een gebruiker bestaat&lt;br /&gt;
** Wijzig het wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
** Zoek een gebruiker (t.b.v. kantoor en/of LA-akties groeperingssecretaris)&lt;br /&gt;
** Maak een gebruiker aan (geef gebruiker een andere hccLogin waarde, maak ook bij HCCnet deze gebruiker aan)&lt;br /&gt;
** Controleer of een gebruiker zijn profiel al doorlopen heeft&lt;br /&gt;
** Haal de lijst met opgeheven accounts op&lt;br /&gt;
** Haal de lijst met bulletins van een hcc lid (OptIn)&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. hcc partners&lt;br /&gt;
** Controleer of lidnummer/postcode correct is&lt;br /&gt;
** Controleer of lidnummer/postcode correct is, en tevens ingeschreven staat bij een specifieke IG&lt;br /&gt;
&lt;br /&gt;
* Joomla template site functies (op basis van JoomlaToken)&lt;br /&gt;
** Maak een JoomlaToken&lt;br /&gt;
** Ruim een JoomlaToken op&lt;br /&gt;
** Pas mijn OptIn (bulletin inschrijving) aan&lt;br /&gt;
** Regel alles rondom Onderwerpen en de autorisatie hiervan&lt;br /&gt;
** Pas mijn wachtwoord aan&lt;br /&gt;
&lt;br /&gt;
* Joomla kadernet site functies (op basis van JoomlaToken)&lt;br /&gt;
** Zoek een hcc kaderlid (t.b.v. de kaderleden zoekpagina)&lt;br /&gt;
** Pas mijn kadermail forwarding aan en toon ja/nee mijn GSM nummer&lt;br /&gt;
** Pas het kadernet e-mail wachtwoord aan&lt;br /&gt;
** Haal de lijst met alle groeperingen op&lt;br /&gt;
** Haal de lijst met alle kaderrollen op&lt;br /&gt;
&lt;br /&gt;
* Joomla hcc.nl site (op basis van JoomlaToken)(mijn.hcc.nl vervanging)&lt;br /&gt;
** Pas mijn adresgegevens aan&lt;br /&gt;
** Pas mijn voorletters, voornaam, pseudoniem, telefoonnummer, GSM nummer etcetera aan&lt;br /&gt;
** Schrijf me in of uit op een bulletin&lt;br /&gt;
** Toon info over de kosten van een IG lidmaatschap&lt;br /&gt;
** Voer een wachtwoord reset uit op basis van een PWResetToken (een variant op JoomlaToken)&lt;br /&gt;
** Vraag een nieuwe HCC code aan, en stuur die per SMS&lt;br /&gt;
&lt;br /&gt;
* Joomla hobby.nl site (op basis van JoomlaToken)(t.b.v. IDEAL betaling)&lt;br /&gt;
** Haal het aantal hobbyDomains op&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. CRM (Microsoft Dynamics Cloud) koppeling&lt;br /&gt;
** Haal de dagelijkse synchronisatie bestanden op&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de NAW gegevens bij&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de IG gegevens van een lid bij&lt;br /&gt;
&lt;br /&gt;
* HenZ&lt;br /&gt;
** Haal de lijst met opzeggers op&lt;br /&gt;
** Valideer de opzegdatum van een opgegeven gebruiker&lt;br /&gt;
&lt;br /&gt;
=== Authenticatie ===&lt;br /&gt;
&lt;br /&gt;
Alle aanroepen gebeuren op basis van authenticatie vanuit de aanroeper.&lt;br /&gt;
Dit valt uiteen in de volgende categorieën:&lt;br /&gt;
* gebruikersnaam (&#039;hccLogin&#039;) en wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;), Joomla token (&#039;JoomlaToken&#039;) en website (&#039;siteID&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;) en hcc code (&#039;hccCode&#039;)&lt;br /&gt;
* beheerders-DN (&#039;beheerLogin&#039;) en beheerders wachtwoord (&#039;beheerPassword&#039;)&lt;br /&gt;
* partner-DN (&#039;partnerLogin&#039;) en partner wachtwoord (&#039;partnerPassword&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Aanroepen, gedaan via de bezoekersregistratie-proxy ===&lt;br /&gt;
(de bezoekersregistratie proxy is een mislukt project tbv de Android app van René Prins)&lt;br /&gt;
(deze proxy bestaat niet meer)&amp;lt;br&amp;gt;&lt;br /&gt;
Diverse aanroepen kunnen ook via de bezoekersregistratie-proxy aangeroepen worden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
* GeefAlleGroeperingen&lt;br /&gt;
* GeefAlleKaderRollen&lt;br /&gt;
* GeefLocaties&lt;br /&gt;
* GeefLocatieNamen&lt;br /&gt;
De bezoekersregistratie aanroepen hebben &#039;JoomlaToken&#039; als extra parameter nodig:&lt;br /&gt;
* LidBezoektBijeenkomst&lt;br /&gt;
* GeefBezoekersOverzicht&lt;br /&gt;
* GeefBezoekersAantallen&lt;br /&gt;
De aanroepen die over de proxy uitgevoerd worden dienen voorafgegaan te worden door een aanroep naar&lt;br /&gt;
* GeefMijnGegevens (dit geeft na validatie immers &#039;JoomlaToken&#039; terug)&lt;br /&gt;
&lt;br /&gt;
=== Resultaten ===&lt;br /&gt;
&lt;br /&gt;
Alle aanroepen geven de volgende elementen terug:&lt;br /&gt;
* Naam van de uitgevoerde procedure (&#039;Action&#039;)&lt;br /&gt;
* Resultaat van de uitgevoerde procedure (&#039;Status&#039;)&lt;br /&gt;
* Een tekstuele vertaling van het resultaat dan wel de foutmelding (&#039;Message&#039;)&lt;br /&gt;
* Tijdens de ontwikkelfase kan er debug-info teruggeleverd worden (&#039;ExtraInfo&#039;)&lt;br /&gt;
Daarnaast geven specifieke aanroepen extra resultaten terug&lt;br /&gt;
&lt;br /&gt;
== Technische omschrijving ==&lt;br /&gt;
XML-RPC beschrijving van acties in hcc.nl LDAP database&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2021.11.03 HaVe&lt;br /&gt;
XML-RPC Hobbynet versie 69.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kort overzicht ===&lt;br /&gt;
&lt;br /&gt;
Dit is een lijst met alle XML-RPC aanroepen. In het volgende hoofdstuk worden ze in detail besproken.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo				(partners)&lt;br /&gt;
ExpandeerPostcode               (Joomla module Bas, tbv verhuizingen)&lt;br /&gt;
GebruikerBestaatControle	(Joomla sites)&lt;br /&gt;
GeefAantalDomeinen              (Joomla module Bas)&lt;br /&gt;
GeefAlleBulletins               (Joomla module Bas)&lt;br /&gt;
GeefAlleGroeperingen		(kadersite, forum, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefAlleKaderRollen		(forum, secr. portal, kantoor portal, hobbynet portal, Joomla module Bas)&lt;br /&gt;
GeefBezoekersOverzicht		(bezoekersregistratie)&lt;br /&gt;
GeefBezoekersAantallen		(bezoekersregistratie)&lt;br /&gt;
GeefFactuurOverzicht		(Joomla module Bas)&lt;br /&gt;
GeefhccEindDatum		(HenZ)&lt;br /&gt;
GeefKadermailGegevens		(kantoor portal)&lt;br /&gt;
GeefLocatieNamen		(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefLocaties			(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefMijnGegevens		(Joomla inlog module Bas)&lt;br /&gt;
GeefMijnLidnummer		(beheer.hcc.nl secretaris portal)&lt;br /&gt;
GeefOnderwerpen                 (Joomla template sites)&lt;br /&gt;
GeefSSOUrls			(Joomla module Bas)&lt;br /&gt;
GeefUitgeschrevenLeden		(Joomla sites, HenZ)&lt;br /&gt;
HaalAanmeldingsformulier	(Joomla module Bas)&lt;br /&gt;
HaalFactuur			(Joomla module Bas)&lt;br /&gt;
HaalIGBedragenOp                (Joomla module Bas)&lt;br /&gt;
HaalOptInKeuzen			(kantoor portal)&lt;br /&gt;
HaalTariefGroepenOp		(kantoor portal)&lt;br /&gt;
HCCpartner			(Partner aanroep)&lt;br /&gt;
HCCpartners			(Partner aanroep)&lt;br /&gt;
HeeftOtpKey                     (Joomla Hobbynet/LA aanroep)&lt;br /&gt;
IsDezeNaamNogBeschikbaar	(aangeroepen vanuit de CRM omgeving)&lt;br /&gt;
IsDezePseudoniemNogBeschikbaar	(kantoor portal)&lt;br /&gt;
IsHCCLid			(vraagbaak aanroep)&lt;br /&gt;
IsKaderLid			(in veel apps gebruikt)&lt;br /&gt;
LidBezoektBijeenkomst		(bezoekersregistratie)&lt;br /&gt;
MaakGebruikerAan		(mijnhcc.nl, maak hccnet account aan en ldap gebruikersnaam)&lt;br /&gt;
MaakOnderwerp                   (Joomla template sites)&lt;br /&gt;
MaakPWResetToken                (Joomla module Bas)&lt;br /&gt;
MaakTestLogin                   (Joomla module Bas)&lt;br /&gt;
MuteerAanmeldingsformulier	(Joomla module Bas)&lt;br /&gt;
MuteerGroeperingSamenstelling   (Joomla kadernet module Bas)&lt;br /&gt;
MuteerOnderwerp                 (Joomla template sites)&lt;br /&gt;
MuteerOnderwerpAutorisatie      (Joomla template sites)&lt;br /&gt;
NormaliseerTelefoon             (Joomla module Bas)&lt;br /&gt;
PasHccLoginAan			(Joomla module Bas)(enkel Hobbynet)&lt;br /&gt;
PasInteressegroepAan            (Joomla module Bas)&lt;br /&gt;
PasKaderGegevensAan		(kadersite, Joomla module Bas)&lt;br /&gt;
PasOptInKeuzeAan		(Joomla module Bas)&lt;br /&gt;
PasPseudoniemAan		(Joomla module Bas)&lt;br /&gt;
PasUserWachtwoordAan		(beheer.hcc.nl Hobbynet gebruikers portal)&lt;br /&gt;
PasWachtwoordAan		(Joomla module Bas)&lt;br /&gt;
RegistreerGast			(bezoekersregistratie)&lt;br /&gt;
ResetHCCCode                    (Joomla module Bas)&lt;br /&gt;
RuimJoomlaTokenOp               (Joomla module Bas)&lt;br /&gt;
SchrijfNietlidInOpBulletin      (Joomla site bulletin module Bas)&lt;br /&gt;
SchrijfNieuwLidIn               (Joomla CRM module Bas)&lt;br /&gt;
ToonOnderwerpAutorisatie        (Joomla template sites)&lt;br /&gt;
UpdateContactEmail		(Joomla module Bas)&lt;br /&gt;
UpdateContactGegevens		(Joomla module Bas)&lt;br /&gt;
UpdateMobiel                    (Joomla module Bas)&lt;br /&gt;
UpdateNAW                       (Joomla module Bas)&lt;br /&gt;
UpdateOTP                       (Joomla module Bas)&lt;br /&gt;
UpdateTelefoon			(Joomla module Bas)&lt;br /&gt;
UpdateVoorletters		(Joomla module Bas)&lt;br /&gt;
UpdateVoornaam			(Joomla module Bas)&lt;br /&gt;
Upload_CSV_bestand              (CRM webproxy)&lt;br /&gt;
ValideerPWResetToken            (Joomla module Bas)&lt;br /&gt;
ValideerWachtwoordEisen		(Joomla module Bas)&lt;br /&gt;
Verwerk_JSON_mutatie            (CRM webproxy)&lt;br /&gt;
VerwijderNietLid		(Joomla beheer module Bas)&lt;br /&gt;
VerwijderOnderwerp              (Joomla template sites)&lt;br /&gt;
VraagLidgegevensTokenAan	(bezoekersregistratie)&lt;br /&gt;
WijzigGebruikersGegevens	(kantoor en Joomla template sites, ww aanpassen van gebruiker)&lt;br /&gt;
ZoekGroeperingsLid		(secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
ZoekHCCLid			(VZ portal)&lt;br /&gt;
ZoekKaderLeden			(Joomla kadernet module Bas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-ldap en/of HCC-net aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** Joomla sites, www.hcc.nl **&lt;br /&gt;
// 1.1 controleer of een gebruiker bestaat - optie 1&lt;br /&gt;
// (authenticatie op basis van hccLidnr en hccCode)&lt;br /&gt;
// Alleen bedoeld om gebruikers op www.hcc.nl op basis van het lidnr het ww te laten wijzigen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GebruikerBestaatControle&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039; =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;  =&amp;gt; $hccCode,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $method,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;);&lt;br /&gt;
    if ($hccLidnr      != &#039;&#039;) { $reply[&#039;hccLidnr&#039;]      = $hccLidnr;      }&lt;br /&gt;
    if ($hccLogin      != &#039;&#039;) { $reply[&#039;hccLogin&#039;]      = $hccLogin;      }&lt;br /&gt;
    if ($hccPseudoniem != &#039;&#039;) { $reply[&#039;hccPseudoniem&#039;] = $hccPseudoniem; }&lt;br /&gt;
    if ($cn            != &#039;&#039;) { $reply[&#039;cn&#039;]            = $cn;            }&lt;br /&gt;
    if ($sn            != &#039;&#039;) { $reply[&#039;sn&#039;]            = $sn;            }&lt;br /&gt;
    if ($mail          != &#039;&#039;) { $reply[&#039;mail&#039;]          = $mail;          }&lt;br /&gt;
    if ($mailHccnet    != &#039;&#039;) { $reply[&#039;mailHccnet&#039;]    = $mailHccnet;    }&lt;br /&gt;
    if ($hccRegio      != &#039;&#039;) { $reply[&#039;hccRegio&#039;]      = $hccRegio;      }&lt;br /&gt;
    if ($hccIG         != &#039;&#039;) { $reply[&#039;hccIG&#039;]         = $hccIG;         }&lt;br /&gt;
    if ($hccRol        != &#039;&#039;) { $reply[&#039;hccRol&#039;]        = $hccRol;        }&lt;br /&gt;
    if ($ProfielBekend != &#039;&#039;) { $reply[&#039;ProfielBekend&#039;] = $ProfielBekend; }&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
// op basis van hccLidnummer en hccCode &lt;br /&gt;
// Essentiele aanroep, gebruikt vanuit mijnhcc.nl (lidnr + hccCode)&lt;br /&gt;
// Ook gebruikt t.b.v. wachtwoord-vergeten procedure op de Joomla template sites&lt;br /&gt;
// Als de profielpagina nog niet is doorlopen wordt deze aanroep afgekeurd.&lt;br /&gt;
//&lt;br /&gt;
// Ook gebruikt om gebruiker rechtstreeks vanaf Joomla template sites wachtwoord te&lt;br /&gt;
// laten aanpassen (op basis van lidnummer en hcc code)&lt;br /&gt;
//&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;            =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Gebruikersgegevens gewijzigd&#039;,&lt;br /&gt;
    &#039;hccLogin&#039; =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;cn&#039;       =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;       =&amp;gt; $sn);&lt;br /&gt;
&lt;br /&gt;
// 2.3 wijzig wachtwoord - optie 3&lt;br /&gt;
// (t.b.v. VZ-portal)&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
// * Als hccLidnr gevuld is, dan wordt hccLidnr gebruikt om het juiste record te zoeken&lt;br /&gt;
//   Als hccLidnr leeg   is, dan wordt hccLogin gebruikt om het juiste record te zoeken&lt;br /&gt;
//   1 van beide velden MOET aanwezig zijn&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;        =&amp;gt; $beheerLogin,    // beheerder lidnummer&lt;br /&gt;
      &#039;beheerPassword&#039;     =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
     [&#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,]&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. ophalen van de opt-in keuzes op de beheer pagina **&lt;br /&gt;
// 2.6 Geef de complete lijst met opt-ins van dit lid&lt;br /&gt;
// (LET OP: authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
     [&#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;       =&amp;gt; $hccLogin,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptInLijst opgehaald&#039;,&lt;br /&gt;
    &#039;hccOptIn&#039; =&amp;gt; $hccOptIn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gebruikersnaam, pseudoniem &lt;br /&gt;
//     en wachtwoord tevens in LDAP op&lt;br /&gt;
// (authenticatie op basis van hcc lidnummer en hcc-code)&lt;br /&gt;
// ** Deze gegevens worden doorgezet naar hccnet.nl (action=4) **&lt;br /&gt;
// &lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;             =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_hccLogin&#039;      =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
      &#039;nieuw_userPassword&#039;  =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem,&lt;br /&gt;
     [&#039;ServerID&#039;            =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;              =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;       =&amp;gt; &#039;Gebruiker aangemaakt&#039;,&lt;br /&gt;
    &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
    &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;       |&lt;br /&gt;
                 &#039;Gebruikersnaam bestaat al&#039;  |&lt;br /&gt;
                 &#039;Pseudoniem bestaat al&#039;      |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.3 Haal al mijn gegevens&lt;br /&gt;
// (wordt gebruikt door de Joomla inlogmodule)&lt;br /&gt;
// Voor gebruik over de proxy t.b.v. de Android app kan compact=TRUE meegegeven worden.&lt;br /&gt;
// In dat geval worden enkel de meest essentiele gegevens teruggestuurd&lt;br /&gt;
// Voor gebruik na MaakGebruikerAan kan deze functie ook op basis van hccLidnr en JoomlaToken&lt;br /&gt;
// worden aangeroepen&lt;br /&gt;
// De optionele parameter &#039;PrevSiteID&#039; is bedoeld voor single-sign-on. Op basis van JoomlaToken,&lt;br /&gt;
// hccLidnr en PrevSiteID worden dan de credentials gevalideerd. Als die kloppen, geeft deze aanroep&lt;br /&gt;
// een 2e JoomlaToken terug, maar dan uitgegeven op basis van SiteID.&lt;br /&gt;
// Als PrevSiteID leeg is, dan wordt het token op basis van siteID gevalideerd.&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,]&lt;br /&gt;
     [&#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;PrevSiteID&#039;   =&amp;gt; $PrevSiteID,]&lt;br /&gt;
     [&#039;compact&#039;      =&amp;gt; $compact,]        // leeg of &#039;TRUE&#039;&lt;br /&gt;
     [&#039;hccGroepering&#039;=&amp;gt; $hccGroepering,]  // Een testgebruiker mag alleen op deze site inloggen&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccRegio&#039;           =&amp;gt; $hccRegio,&lt;br /&gt;
    &#039;hccIG&#039;              =&amp;gt; $hccIG,&lt;br /&gt;
    &#039;hccRol&#039;             =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;hccAutorisatie&#039;     =&amp;gt; $hccAutorisatie,&lt;br /&gt;
    &#039;cn&#039;                 =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;                 =&amp;gt; $sn,&lt;br /&gt;
    &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
   [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccPseudoniem&#039;      =&amp;gt; $hccPseudoniem,&lt;br /&gt;
    &#039;givenname&#039;          =&amp;gt; $givenname,&lt;br /&gt;
    &#039;hccAanhef&#039;          =&amp;gt; $hccAanhef,&lt;br /&gt;
    &#039;hccGeslacht&#039;        =&amp;gt; $hccGeslacht,&lt;br /&gt;
    &#039;hccTussenVoegsels&#039;  =&amp;gt; $hccTussenVoegsels,&lt;br /&gt;
    &#039;hccAchternaam&#039;      =&amp;gt; $hccAchternaam,&lt;br /&gt;
    &#039;hccStraatnaam&#039;      =&amp;gt; $hccStraatnaam,&lt;br /&gt;
    &#039;hccHuisnummer&#039;      =&amp;gt; $hccHuisnummer&lt;br /&gt;
    &#039;hccPostcode&#039;        =&amp;gt; $hccPostcode,&lt;br /&gt;
    &#039;hccWoonplaats&#039;      =&amp;gt; $hccWoonplaats,&lt;br /&gt;
    &#039;hccLand&#039;            =&amp;gt; $hccLand,&lt;br /&gt;
    &#039;hccTelefoon&#039;        =&amp;gt; $hccTelefoon,&lt;br /&gt;
    &#039;mail&#039;               =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;         =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;       =&amp;gt; $hccKaderMail, &lt;br /&gt;
    &#039;hccKaderForward&#039;    =&amp;gt; $hccKaderForward,&lt;br /&gt;
    &#039;hccKaderToonMobiel&#039; =&amp;gt; $hccKaderToonMobiel,&lt;br /&gt;
    &#039;hccOptIn&#039;           =&amp;gt; $hccOptIn,&lt;br /&gt;
    &#039;ProfielBekend&#039;      =&amp;gt; $ProfielBekend,&lt;br /&gt;
    &#039;hccBeginDatum&#039;      =&amp;gt; $hccBeginDatum,&lt;br /&gt;
    &#039;testaccount&#039;        =&amp;gt; is_testaccount(),     // &#039;TRUE&#039; | &#039;FALSE&#039;&lt;br /&gt;
    &#039;hccOtpKey&#039;          =&amp;gt; $hccOtpKey,&lt;br /&gt;
    &#039;hccOtep&#039;            =&amp;gt; $hccOtep,&lt;br /&gt;
   [&#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,     // in Mb&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald;]]);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de opt-in keuzes op een Joomla site **&lt;br /&gt;
// H.4 Pas 1 opt-in van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van hccLidnr, JoomlaToken en siteID)&lt;br /&gt;
//          of&lt;br /&gt;
//          authenticatie op basis van hccLidnr en OptOutToken (voor een directe uitschrijving door een lid)&lt;br /&gt;
// Als hccLidnummer gevuld is, dan is dat het lidnummer waar de mutatie op moet worden uitgevoerd.&lt;br /&gt;
// Dat kan alleen als de aanvrager HCC#LAD of HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
     [&#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;OptOutToken&#039;  =&amp;gt; $OptOutToken,]&lt;br /&gt;
     [&#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,]&lt;br /&gt;
      &#039;hccOptIn&#039;     =&amp;gt; $hccOptIn,&lt;br /&gt;
      &#039;actie&#039;        =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptIn aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials | Token ongeldig | Token verlopen&#039;);&lt;br /&gt;
    &lt;br /&gt;
// H.5 Zoek kaderleden NAW (t.b.v. de Joomla kadersite)&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
//&lt;br /&gt;
// * Er dient minstens 1 zoekcriterium opgegeven te worden.&lt;br /&gt;
// * Als zowel hccRegio als tegelijk ook hccIG opgegeven worden is de uitkomst onvoorspelbaar.&lt;br /&gt;
// * Als compact=TRUE worden enkel lidnummer, cn en sn in het antwoord gezet&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
     [&#039;hccIG&#039;       =&amp;gt; $hccIG,]&lt;br /&gt;
     [&#039;hccRol&#039;      =&amp;gt; $hccRol,]&lt;br /&gt;
     [&#039;hccLocatie&#039;  =&amp;gt; $hccLocatie,]&lt;br /&gt;
     [&#039;achternaam&#039;  =&amp;gt; $achternaam,]&lt;br /&gt;
     [&#039;compact&#039;     =&amp;gt; $compact]));        // leeg of &#039;TRUE&#039;&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Kaderleden opgevraagd&#039;&lt;br /&gt;
    &#039;Kaderleden&#039;      =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidNummer&#039;  =&amp;gt; $hccLidNummer,&lt;br /&gt;
      &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccAanhef&#039;     =&amp;gt; $hccAanhef,&lt;br /&gt;
      &#039;givenname&#039;     =&amp;gt; $givenname,&lt;br /&gt;
      &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
      &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
      &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;]);&lt;br /&gt;
&lt;br /&gt;
// H.9 PasKaderGegevensAan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
// Om de kaderleden hun forward in te laten stellen,&lt;br /&gt;
// en tegelijkertijd de opt-in / opt-out voor hccToonMobiel te laten regelen&lt;br /&gt;
// Kan tevens het kader email wachtwoord aanpassen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;         =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;            =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;              =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;hccKaderForward&#039;     =&amp;gt; $hccKaderForward,    // &#039;&#039; | $mail | $mailHccNet&lt;br /&gt;
      &#039;hccKaderToonMobiel&#039;  =&amp;gt; $hccKaderToonMobiel, // &#039;TRUE&#039; | &#039;FALSE&#039; | &#039;NULL&#039;&lt;br /&gt;
     [&#039;nieuw_kaderPassword&#039; =&amp;gt; $nieuw_kaderPassword]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;kadergegevens aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;|&#039;Alleen kaderleden mogen deze aanroep uitvoeren&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** Portal beheer.hcc.nl&lt;br /&gt;
// ** H.10 PasUserWachtwoordAan&lt;br /&gt;
// ** Betalende Hobbynet gebruikers kunnen hiermee hun wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van hccLogin en userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;         =&amp;gt; $username,&lt;br /&gt;
      &#039;userpassword&#039;     =&amp;gt; $password,&lt;br /&gt;
      &#039;hobbynetAccount&#039;  =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;nieuw_wachtwoord&#039; =&amp;gt; $nieuw_wachtwoord,&lt;br /&gt;
      &#039;ServerID&#039;         =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;           =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;         =&amp;gt; $remoteAddr));        &lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;     |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij gebruiker $hccLogin&#039; |&lt;br /&gt;
                 &#039;Kan ww van account $hobbynetAccount niet aanpassen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.11 Pas het pseudoniem van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Pseudoniem aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039; | &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.12 Controleer of een opgegeven wachtwoord aan de minimum eisen voldoet&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Wachtwoord voldoet aan de minimale eisen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Wachtwoord voldoet niet aan de minimale eisen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit een Joomla template site kunnen gebruikers hiermee hun eigen wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van JoomlaToken, lidnummer, siteID. Extra controle via userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;userpassword&#039;       =&amp;gt; $password,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13.1 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee hun eigen wachtwoord resetten&lt;br /&gt;
// (authenticatie op basis van PWResetToken en hccLogin).&lt;br /&gt;
// (Als de aanroep geslaagd is, dan is daarna het PWResetToken ongeldig)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039;       =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.14 MaakPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee een wachtwoord reset aanvragen&lt;br /&gt;
//    Deze aanroep geeft naast het PWResetToken ook het contact emailadres mee terug,&lt;br /&gt;
//    zodat Joomla een reset-mail kan sturen&lt;br /&gt;
// (acties op basis van gebruikersnaam)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;   =&amp;gt; $username,&lt;br /&gt;
      &#039;ServerID&#039;   =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;     =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;   =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
    &#039;mail&#039;         =&amp;gt; $mail,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token aangemaakt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.15 ValideerPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers een wachtwoord reset aanvragen&lt;br /&gt;
//    Controleer dat het hier om een bestaand (en nog niet gebruikt) token gaat&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token gevonden&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;hccLogin bestaat niet&#039; | &#039;PWResetToken bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.16 Ruim een bestaand JoomlaToken op&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;JoomlaToken opgeruimd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuist JoomlaToken&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.17 GeefAantalDomeinen&lt;br /&gt;
// ** Vraag het aantal domeinen op van een betalende Hobbynet gebruiker (t.b.v. IDEAL betaling)&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;     =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;ServerID&#039;        =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;          =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;        =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
    &#039;AantalDomeinen&#039;  =&amp;gt; $aantalDomeinen,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;aantal domeinen opgevraagd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij deze gebruiker&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18 ResetHCCCode&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // geheime credentials van de site&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // geheime credentials van de site&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18.1 ResetHCCCode (hcc kantoor aanroep)&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,    // Het Joomla token van de sessie van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,       // Het lidnummer van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de hccLogin van een gebruiker (Hobbynet functie op Joomla site)  **&lt;br /&gt;
// H.19 Pas de hccLogin van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// hccLidnummer is het lidnummer waar de mutatie op moet worden uitgevoerd&lt;br /&gt;
// Kan alleen als de aanvrager HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,     // lidnummer van de aanvrager&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,  // JoomlaToken van de aanvrager&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer, // pas de hccLogin van dit lidnummer aan&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,     // dit is de gewenste nieuwe hccLogin&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;hccLogin aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039;       | &lt;br /&gt;
                 &#039;Gebruikersnaam al in gebruik&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. het aanmaken van een testaccount door een webmaster&lt;br /&gt;
// H.20 Maak een testaccount aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// Kan alleen als de aanvrager WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakTestLogin&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,     // JoomlaToken van de aanvrager&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,    // lidnummer van de aanvrager&lt;br /&gt;
      &#039;hccRol&#039;        =&amp;gt; $hccRol,          // (mag leeg zijn)&lt;br /&gt;
      &#039;hccGroepering&#039; =&amp;gt; $hccGroepering,   // (regio of IG)&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;MaakTestLogin&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Tijdelijk test account aangemaakt&#039;,&lt;br /&gt;
    &#039;TestAccountNaam&#039; =&amp;gt; &#039;test-&amp;lt;groepering&amp;gt;-&amp;lt;hccLogin&amp;gt;&#039;&lt;br /&gt;
    &#039;userpassword&#039;    =&amp;gt; $nieuw_userpassword,&lt;br /&gt;
    &#039;hccGroepering&#039;   =&amp;gt; $hccGroepering,&lt;br /&gt;
    &#039;hccRol&#039;          =&amp;gt; $hccRol);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MaakTestLogin&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// Joomla functie&lt;br /&gt;
// ** t.b.v. aanpassen van de OneTime Passwords &lt;br /&gt;
// H.21 Pas de OTP gegevens van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van hccLidnr, JoomlaToken en siteID)&lt;br /&gt;
// Als hccLidnummer gevuld is, dan is dat het lidnummer waar de mutatie op moet worden uitgevoerd.&lt;br /&gt;
// Dat kan alleen als de aanvrager HCC#LAD of HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateOTP&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,]&lt;br /&gt;
      &#039;hccOtpKey&#039;    =&amp;gt; $hccOtpKey, // De otp encryptie key van de gebruiker (mag leeg zijn, dan weg)&lt;br /&gt;
      &#039;hccOtep&#039;      =&amp;gt; $hccOtep,   // Het one time recovery password (mag leeg zijn, dan weg)&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;UpdateOTP&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OTP gegevens aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;UpdateOTP&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// Joomla functie&lt;br /&gt;
// H.22 Heeft een lid een OTP key ja/nee&lt;br /&gt;
// (LET OP: authenticatie op basis van hccLidnr, JoomlaToken en siteID)&lt;br /&gt;
// hccLidnummer is het lidnummer waar de aanvraag op moet worden uitgevoerd.&lt;br /&gt;
// Dat kan alleen als de aanvrager HCC#LAD of HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HeefOtpKey&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;HeefOtpKey&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;HeeftOtpKey&#039; =&amp;gt; &#039;TRUE&#039;|&#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;OTP status opgevraagd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HeefOtpKey&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// 3.1 Geef mijn lidnummer&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Lidnummer opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039; =&amp;gt; $hccLidnr);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Deze gegevens worden opgevraagd bij hccnet.nl (action=3)       **&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccLogin&#039; =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Enkel voor gebruik vanaf de kantoor portal **&lt;br /&gt;
// **  t.b.v. het hernoemen van accounts in CRM  **&lt;br /&gt;
// 8.3 Controleer of een Pseudoniem op dit moment bestaat		??? NIET GEBRUIKT ??&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken zoekpagina **&lt;br /&gt;
// A.1 Zoek alle bij de query passende hcc leden&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;ZoekMethode&#039;    =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;     =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;     =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $Groepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (eerste deel van) de naam               |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | emailadres          | (eerste deel van) e-mail adres          |&lt;br /&gt;
 | gebruikersnaam      | (eerste deel van) de login naam         |&lt;br /&gt;
 | pseudoniem          | (eerste deel van) het pseudoniem        |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | niet_leden          | het volledige niet-lid lidnummer        |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
   [&#039;ExtraInfo&#039;   =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;     =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidnummer&#039;      =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;hccBeginDatum&#039;     =&amp;gt; $hccBeginDatum,&lt;br /&gt;
      &#039;hccEindDatum&#039;      =&amp;gt; $hccEindDatum,&lt;br /&gt;
      &#039;sn&#039;                =&amp;gt; $sn,&lt;br /&gt;
      &#039;givenName&#039;         =&amp;gt; $givenName,&lt;br /&gt;
      &#039;hccGeslacht&#039;       =&amp;gt; $hccGeslacht,&lt;br /&gt;
      &#039;hccStraatnaam&#039;     =&amp;gt; $hccStraatnaam,&lt;br /&gt;
      &#039;hccHuisnummer&#039;     =&amp;gt; $hccHuisnummer&lt;br /&gt;
      &#039;hccHuisToevoeging&#039; =&amp;gt; $hcchuisToevoeging,&lt;br /&gt;
      &#039;hccPostcode&#039;       =&amp;gt; $hccPostcode,&lt;br /&gt;
      &#039;hccWoonplaats&#039;     =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccLand&#039;           =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;hccTelefoon&#039;       =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;         =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;mail&#039;              =&amp;gt; $mail,&lt;br /&gt;
      &#039;mailHccnet&#039;        =&amp;gt; $mailHccnet,&lt;br /&gt;
      &#039;hccIG&#039;             =&amp;gt; $hccIG,&lt;br /&gt;
      &#039;hccRol&#039;            =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccLogin&#039;          =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;hccPseudoniem&#039;     =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ProfielBekend&#039;     =&amp;gt; &#039;TRUE&#039; | &#039;FALSE&#039;])*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. beheer.hcc.nl **&lt;br /&gt;
// A.3 Zoek alle bij de query passende hcc leden van deze groepering&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
      &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;  =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;  =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,] // Alleen voor gebruik op de&lt;br /&gt;
                                      // bijeenkomsten aanwezigheidsregistratie pagina&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (deel van) de naam                      |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | nieuwe_leden        | YYYYMMDD vanaf waar gezocht moet worden |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | kaderleden          | n.v.t.                                  |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;   =&amp;gt;&lt;br /&gt;
      [array(&lt;br /&gt;
         &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
         &#039;hccBeginDatum&#039; =&amp;gt; $hccBeginDatum,&lt;br /&gt;
         &#039;hccEindDatum&#039;  =&amp;gt; $hccEindDatum,&lt;br /&gt;
         &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
         &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
         &#039;givenName&#039;     =&amp;gt; $givenName,&lt;br /&gt;
         &#039;hccAchternaam&#039; =&amp;gt; $hccAchternaam,&lt;br /&gt;
         &#039;hccTussenVoegsels =&amp;gt; hccTussenVoegsels,  &lt;br /&gt;
         &#039;hccGeslacht&#039;   =&amp;gt; $hccGeslacht,&lt;br /&gt;
         &#039;hccStraatnaam&#039; =&amp;gt; $hccStraatnaam,&lt;br /&gt;
         &#039;hccHuisnummer&#039; =&amp;gt; $hccHuisnummer, &lt;br /&gt;
         &#039;hccPostcode&#039;   =&amp;gt; $hccPostcode,&lt;br /&gt;
         &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
         &#039;hccLand&#039;       =&amp;gt; $hccLand, &lt;br /&gt;
         &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
         &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
         &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
         &#039;mailHccnet&#039;    =&amp;gt; $mailHccnet,&lt;br /&gt;
         &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail,&lt;br /&gt;
         &#039;hccRegio&#039;      =&amp;gt; $hccRegio,&lt;br /&gt;
         &#039;hccIG&#039;         =&amp;gt; $hccIG,&lt;br /&gt;
         &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
         &#039;hccLogin&#039;      =&amp;gt; $hccLogin,&lt;br /&gt;
         &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem)]*));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) niet gevonden&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten **&lt;br /&gt;
// A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,    // lid dat aanwezig gemeld moet worden&lt;br /&gt;
     [&#039;correctie&#039;   =&amp;gt; $hccLidnr,]   // lid dat gecorrigeerd moet worden&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Bezoeker weggeschreven&#039;,&lt;br /&gt;
    &#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
      // info van deze bezoeker&lt;br /&gt;
      &#039;cn&#039;               =&amp;gt; $cn,                // cn (Verbeek, H.J.)&lt;br /&gt;
      &#039;hccGeslacht&#039;      =&amp;gt; $hccGeslacht,       // hccGeslacht van de bezoeker&lt;br /&gt;
      &#039;groeperingslid&#039;   =&amp;gt; $groeperingslid,    // TRUE of FALSE: is deze persoon lid van deze groepering&lt;br /&gt;
      &#039;mijnGroeperingen&#039; =&amp;gt; $mijnGroeperingen,  // komma-gescheiden lijst (regio, [hccIG]*)&lt;br /&gt;
      &#039;aantalBezoeken&#039;   =&amp;gt; $aantalBezoeken,    // hoe vaak heeft dit lid deze bijeenkomst bezocht&lt;br /&gt;
      // info van de bijeenkomst&lt;br /&gt;
      &#039;AantalBezoekers&#039;  =&amp;gt; $AantalBezoekers);  // aantal bezoekers van deze bijeenkomst&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.5 Vraag Lidgegevens token aan (geldig voor dit lid, en deze groepering, op deze datum)&lt;br /&gt;
// Als geen datum gegeven is, dan is het token vandaag geldig&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnummer, // vraag het token voor dit lid aan&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering,   // zoek binnen deze groepering&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]       // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;     =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;     =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;    =&amp;gt; &#039;Token opgevraagd&#039;,&lt;br /&gt;
    &#039;groepering&#039; =&amp;gt; $Groepering,&lt;br /&gt;
    &#039;token&#039;      =&amp;gt; $token,&lt;br /&gt;
    &#039;sn&#039;         =&amp;gt; $sn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.6 Toon bezoekersoverzicht&lt;br /&gt;
// (authenticatie op basis van lidnummer en bezoekersregistratie token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bezoekersoverzicht opgevraagd&#039;,&lt;br /&gt;
    &#039;Bezoekers&#039; =&amp;gt; $bezoekers,&lt;br /&gt;
   [&#039;Locatie&#039;   =&amp;gt; $Locatie]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// A.7 Geef het array met alle locaties&lt;br /&gt;
// (of beperk dit tot de locaties van de groepering $Groepering)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij hccToonInJoomla aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij ToonOpKaderNet aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocaties&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $hccGroepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;       =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;      =&amp;gt; &#039;Geen locaties gevonden voor groepering $hccGroepering&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// A.8 Registreer een niet-hcclid als bezoeker tijdens een bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RegistreerGast&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039;   =&amp;gt; $lidnr,        // credentials&lt;br /&gt;
      &#039;AccountCode&#039;   =&amp;gt; $AccountCode,  // credentials&lt;br /&gt;
      &#039;token&#039;         =&amp;gt; $token,        // credentials&lt;br /&gt;
      &#039;Bijeenkomst&#039;   =&amp;gt; $groepering,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;naam&#039;          =&amp;gt; $naam,&lt;br /&gt;
      &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;buitenland&#039;    =&amp;gt; $buitenland,&lt;br /&gt;
     [&#039;nietLidNummer&#039; =&amp;gt; $nietLidNummer,]&lt;br /&gt;
     [&#039;instructies&#039;   =&amp;gt; $instructies,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $aanroep,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid als bezoeker geregistreerd&#039;,&lt;br /&gt;
    &#039;Result&#039;  =&amp;gt; $result_array);&lt;br /&gt;
&lt;br /&gt;
// A.9 Geef het array met alle locatienamen&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;           =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locatienamen niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;          =&amp;gt; &#039;Geen locatienamen gevonden&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
// A.10 Schrijf een niet-lid in op een bulletin&lt;br /&gt;
// (2019.12.05: wordt actief gebruikt in Joomla module)&lt;br /&gt;
//      Deze aanroep mag *ook* worden gebruikt om een wel-lid in te schrijven.&lt;br /&gt;
//      Voorwaarde is dat bewezen is dat er controle bestaat over het opgegeven email adres&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
      &#039;hccOptin&#039;       =&amp;gt; $hccOptin,       // bulletin waarop ingeschreven wordt&lt;br /&gt;
      &#039;hccOptinSource&#039; =&amp;gt; $hccOptinSource, // site waar aanmelding vandaan komt&lt;br /&gt;
      &#039;Email&#039;          =&amp;gt; $Email,          // niet-lid: email adres&lt;br /&gt;
      &#039;Naam&#039;           =&amp;gt; $Naam,           // niet-lid: naam&lt;br /&gt;
     [&#039;hccLidNummer&#039;   =&amp;gt; $hccLidNummer,]  // optioneel: ik ben lid, dit is mijn lidnummer&lt;br /&gt;
     [&#039;Postcode&#039;       =&amp;gt; $Postcode,]      // optioneel: niet-lid: postcode&lt;br /&gt;
     [&#039;Huisnummer&#039;     =&amp;gt; $Huisnummer,]    // optioneel: niet-lid: huisnummer&lt;br /&gt;
     [&#039;hccGeslacht&#039;    =&amp;gt; $hccGeslacht,] // optioneel: niet-lid: geslacht (M/V/O)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Inschrijving op bulletin gelukt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                   &#039;Gegevenscombinatie onjuist&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid DN syntax&#039;    |&lt;br /&gt;
                   &#039;Invalid credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.11 Toon bezoekers aantallen&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
//&lt;br /&gt;
// ==&amp;gt; Mag weg: laatste aanroep 2018.12.15 &amp;lt;==&lt;br /&gt;
//&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]      // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;BezoekersAantallen opgevraagd&#039;,&lt;br /&gt;
    &#039;Datum&#039;       =&amp;gt; $datum,&lt;br /&gt;
    &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,&lt;br /&gt;
    &#039;Bezoekers&#039;   =&amp;gt; array(&lt;br /&gt;
      [HCC!seniorenacademie] =&amp;gt; Array(&lt;br /&gt;
        [Gorinchem] =&amp;gt; 15&lt;br /&gt;
        [Woerden]   =&amp;gt; 36)&lt;br /&gt;
      ...));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.12 GeefAlleBulletins&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Bulletins opgevraagd&#039;,&lt;br /&gt;
    &#039;bulletins&#039;       =&amp;gt; $bulletins);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.13 ExpandeerPostcode&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Postcode opgevraagd&#039;,&lt;br /&gt;
    &#039;detailgegevens&#039;  =&amp;gt; $detailgegevens);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.25 UpdateNAW&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateNAW&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;toevoeging&#039;    =&amp;gt; $toevoeging,&lt;br /&gt;
      &#039;straat&#039;        =&amp;gt; $straat,&lt;br /&gt;
      &#039;woonplaats&#039;    =&amp;gt; $woonplaats,&lt;br /&gt;
      &#039;landcode&#039;      =&amp;gt; $landcode,&lt;br /&gt;
      &#039;email&#039;         =&amp;gt; $email,&lt;br /&gt;
      &#039;voornaam&#039;      =&amp;gt; $voornaam,&lt;br /&gt;
      &#039;voorletters&#039;   =&amp;gt; $voorletters,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateContactGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Contactgegevens bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.18 NormaliseerTelefoon&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLand&#039;        =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Telefoonnummer genormaliseerd&#039;,&lt;br /&gt;
    &#039;Telefoonnummer&#039;  =&amp;gt; $Telefoonnummer);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.20 UpdateMobiel&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateMobiel&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateMobiel&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Mobiel nummer bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.21 HaalIGBedragenOp&lt;br /&gt;
//      Geef alle IG&#039;s waar je zelf lid van kunt worden, inclusief het bijbehorende bedrag&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Interessegroepen en bedragen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.22 HaalTariefGroepenOp&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Tariefgroepen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.23 PasInteressegroepAan&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;nieuw&#039;         =&amp;gt; $IG_lijst_nieuw,]&lt;br /&gt;
     [&#039;weg&#039;           =&amp;gt; $IG_lijst_weg,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;IG keuzen aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.24 GeefSSOUrls&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;SSO_urls&#039;        =&amp;gt; $sso_urls,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Single Sign On URLs opgevraagd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken beheer pagina **&lt;br /&gt;
// A.26 Verwijder een niet-lid record&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnummer,   // het te verwijderen niet-lid nummer&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Niet-lid record verwijderd&#039;,&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid record niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** HenZ **&lt;br /&gt;
// ** t.b.v. daily cron job  **&lt;br /&gt;
// ** t.b.v. dagelijkse opschoon jobs Joomla template sites **&lt;br /&gt;
// C.1 Vraag de lijst met uitgeschreven leden op&lt;br /&gt;
//     Dit kan beperkt worden tot een bepaalde regio of interessegroep&lt;br /&gt;
//     Daarnaast kan het tijdvak waarin gezocht wordt vrij gekozen worden&lt;br /&gt;
//     (gesteld dat de LDAP database nog leden uit die periode bevat)&lt;br /&gt;
//     Antwoord: lijst met (lidnummer, hccLogin, sn,&lt;br /&gt;
//                          datum einde lidmaatschap (formaat:YYYYMMDD))&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; GeefUitgeschrevenLeden &amp;lt;== (oud: GeefOpgezegdeLeden)&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccRegio&#039;       =&amp;gt; $hccRegio,    // of leeg&lt;br /&gt;
      &#039;hccIg&#039;          =&amp;gt; $hccIg,       // of leeg&lt;br /&gt;
      &#039;datum_vanaf&#039;    =&amp;gt; $datum_sinds, // YYYY-MM-DD of YYYYMMDD of leeg (leeg: 3 dagen geleden)&lt;br /&gt;
      &#039;datum_tot&#039;      =&amp;gt; $datum_tot,   // YYYY-MM-DD of YYYYMMDD of leeg (leeg: vandaag)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Uitgeschreven leden&#039;,&lt;br /&gt;
   [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
   [&#039;hccIg&#039;       =&amp;gt; $hccIg,]&lt;br /&gt;
   [&#039;datum_vanaf&#039; =&amp;gt; $datum_vanaf,]&lt;br /&gt;
   [&#039;datum_tot&#039;   =&amp;gt; $datum_tot,]&lt;br /&gt;
   [&#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
     [array(&lt;br /&gt;
        &#039;hccLogin&#039;               =&amp;gt; $hccLogin,&lt;br /&gt;
        &#039;hccLidNummer&#039;           =&amp;gt; $hccLidnummer,&lt;br /&gt;
        &#039;sn&#039;                     =&amp;gt; $sn,&lt;br /&gt;
        &#039;DatumEindeLidmaatschap&#039; =&amp;gt; $DatumEindeLidmaatschap)]*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCCpartner aanroepen ===&lt;br /&gt;
(interface versie 1)&amp;lt;br&amp;gt;&lt;br /&gt;
(oude interface, niet meer gebruiken!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.1 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    array(&#039;partnerLogin&#039;,    $partnerLogin),&lt;br /&gt;
    array(&#039;partnerPassword&#039;, $partnerPassword),&lt;br /&gt;
    array(&#039;hccLidnummer&#039;,    $hcclidnummer),&lt;br /&gt;
    array(&#039;postcode&#039;,        $postcode)));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;TRUE&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;FALSE&#039;));&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Onjuiste credentials&#039;));&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
     &#039;HCCpartner&#039;,&lt;br /&gt;
     array(&lt;br /&gt;
       &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
       array(&#039;parameter&#039;, $iets)));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;OnbekendeAanroep&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Opdracht onbekend&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCCpartners aanroepen ===&lt;br /&gt;
(interface versie 2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.2 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;          =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
      &#039;partnerLogin&#039;    =&amp;gt; $partnerLogin,&lt;br /&gt;
      &#039;partnerPassword&#039; =&amp;gt; $partnerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hcclidnummer,&lt;br /&gt;
      &#039;postcode&#039;        =&amp;gt; $postcode,&lt;br /&gt;
     [&#039;ServerID&#039;        =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;          =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;        =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;groepering=$groepering&#039;]); // als de partner beperkt is tot 1 groepering&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;FALSE&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;    =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
      &#039;parameter&#039; =&amp;gt; $iets));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Opdracht onbekend&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-kader aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** beheer.hcc.nl **&lt;br /&gt;
// F.2 Controleer of dit een kaderlid is&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsKaderLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Is kaderlid&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;cn&#039;              =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;              =&amp;gt; $sn,&lt;br /&gt;
    &#039;hccRol&#039;          =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;mail&#039;            =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;      =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;    =&amp;gt; $hccKaderMail,&lt;br /&gt;
    &#039;hccKaderForward&#039; =&amp;gt; $hccKaderForward);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Is geen kaderlid&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.4 Vraag alle groeperingen op&lt;br /&gt;
// Het is mogelijk om een groepering te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  ToonInOverzichtenFilter : attribuut &#039;hccToonInOverzichten&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  BulletinsFilter         : attribuut &#039;hccBulletins&#039;&lt;br /&gt;
//  EmailFilter             : attribuut &#039;hccFunctionalEmail&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;                =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;                  =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;                =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;          =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;BulletinsFilter&#039;         =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;EmailFilter&#039;             =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;&#039; | &#039;TRUE&#039;));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;                  =&amp;gt; &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    &#039;Status&#039;                  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;                 =&amp;gt; &#039;Lijst met groeperingen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;                  =&amp;gt; $groeperingen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;          =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.5 Vraag alle kaderrollen op&lt;br /&gt;
// Het is mogelijk om een kaderrol  te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Lijst met kaderrollen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;             =&amp;gt; $kaderrollen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de kantoor-beheerpagina **&lt;br /&gt;
// F.9 Geef de gevevens van de mailbox van dit kaderlid&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;     =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039;  =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039;));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de Joomla Kadernet module **&lt;br /&gt;
//  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID en als extra hccCode van de aanvrager)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccCode&#039;        =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
      &#039;hccLidnummer    =&amp;gt; $hccLidnummer, // lidnummer van het te muteren hcc lid&lt;br /&gt;
      &#039;hccRol&#039;         =&amp;gt; $hccRol,       // de nieuwe dan wel op te heffen rol&lt;br /&gt;
                                         // de rol &#039;ALLES_WEG&#039; ruimt alle rollen van dit hcc lid voor deze groepering op&lt;br /&gt;
      &#039;actie&#039;          =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Groepering samenstelling aangepast&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Bedankmail gestuuurd aan ex-kaderlid&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Oude rol niet gevonden&#039; |&lt;br /&gt;
		   &#039;Nieuwe rol kan niet samen met bestaande rol&#039; |&lt;br /&gt;
		   &#039;Alleen voorzitter of secretaris kan kadermutaties uitvoeren&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-groepering aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// I.2 controleer of een gebruiker bestaat op basis van de combinatie&lt;br /&gt;
//     lidnummer + postcode + huisnummer&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
// (alternatieve authenticatie mogelijk door lidnummer + hcc-code in te vullen)&lt;br /&gt;
//&lt;br /&gt;
// Aan de aanroeper worden zekere eisen gesteld:&lt;br /&gt;
// * dient een rol te vervullen binnen de groepering &#039;FOR&#039;(forum)&lt;br /&gt;
// * dan wel dient de rol &#039;VRBK&#039; (vraagbaak) te vervullen binnen een groepering&lt;br /&gt;
//&lt;br /&gt;
// Er wordt door de gehele leden-database gezocht, waarna terug wordt gegeven &lt;br /&gt;
// * of dit hcc lid inderdaad bestaat&lt;br /&gt;
// en, als het om een aanvraag van een vraagbaak vrijwilliger gaat, &lt;br /&gt;
// * tevens of het gezochte hcc lid deel uitmaakt van zijn groepering&lt;br /&gt;
//&lt;br /&gt;
// ==&amp;gt; Mag weg: laatste aanroep 2018.07.27 &amp;lt;==&lt;br /&gt;
//&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;        =&amp;gt; [$hccLogin | $hccLidnummer],&lt;br /&gt;
      &#039;userPassword&#039;    =&amp;gt; [$userPassword | $hccCode],&lt;br /&gt;
      &#039;zoekhccLidnr&#039;    =&amp;gt; $zoekhccLidnr,&lt;br /&gt;
      &#039;zoekhccPostcode&#039; =&amp;gt; $zoekhccPostcode,&lt;br /&gt;
      &#039;zoekhccHuisnr&#039;   =&amp;gt; $zoekhccHuisnr,&lt;br /&gt;
      &#039;zoekgroepering&#039;  =&amp;gt; $zoekgroepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens gecontroleerd&#039;,&lt;br /&gt;
   [&#039;Groeperingslid&#039; =&amp;gt; $IsGroeperingLid]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker bestaat niet&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Wel HCC lid, maar geen lid van groepering $groepering&#039; |&lt;br /&gt;
                 &#039;Onvoldoende rechten&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HenZ aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// I.3 Geef de einddatum van een actief dan wel uitgeschreven lid&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
    &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccEindDatum&#039; =&amp;gt; $hccEindDatum (&#039;yyyymmdd&#039; | &#039;&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;Lidnummer niet gevonden&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== (Forum,vraagbaak) onderwerpen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// L.1 MaakOnderwerp&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is aangemaakt&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.2 VerwijderOnderwerp&lt;br /&gt;
&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is verwijderd&#039;,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039;            |&lt;br /&gt;
                   &#039;Geen webmaster&#039;                 |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;         |&lt;br /&gt;
		   &#039;Ruim eerst alle geautoriseerde gebruikers op&#039; |&lt;br /&gt;
		   &#039;Kan onderwerp niet verwijderen&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.3 GeefOnderwerpen &lt;br /&gt;
// Geef het array met de lijst van onderwerpen voor de betreffende groepering&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerpen opgevraagd&#039;,&lt;br /&gt;
    &#039;onderwerpen&#039; =&amp;gt; $onderwerpen); // het array met onderwerpen&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.4 MuteerOnderwerp&lt;br /&gt;
// Pas de description van een onderwerp aan&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
   &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
   array(&lt;br /&gt;
     &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
     &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
     &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
     &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     &#039;groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
     &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
     &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp aangepast&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039; |&lt;br /&gt;
		   &#039;Onderwerp behoort bij andere groepering&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
// Geef kaderlid $kaderLidNr de autorisatie MOD, VRBK of RED bij onderwerp $onderwerp&lt;br /&gt;
// (of haal die autorisatie weg)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
    &#039;onderwerp&#039;      =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;kaderLidNr&#039;     =&amp;gt; $kaderLidNr,&lt;br /&gt;
    &#039;hccAutorisatie&#039; =&amp;gt; &#039;MOD&#039; | &#039;VRBK&#039; | &#039;RED&#039;,&lt;br /&gt;
   [&#039;verwijder&#039;      =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp autorisatie aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Onjuiste autorisatie opgegeven&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Autorisaties opgehaald&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;    =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039;  =&amp;gt; $description,&lt;br /&gt;
    &#039;autorisaties&#039; =&amp;gt; &lt;br /&gt;
      [Array(&lt;br /&gt;
        &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer&lt;br /&gt;
        &#039;cn&#039;              =&amp;gt; $cn&lt;br /&gt;
        &#039;hccAutorisatie&#039;  =&amp;gt; {komma-gescheiden autorisaties})]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Dynamics Cloud (Cayentis) onderwerpen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// M.1 Upload_CSV_bestand&lt;br /&gt;
// De CRM proxy upload de dagelijkse CSV synchronisatie-bestanden naar de XML-RPC server&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;      =&amp;gt; $beheerLogin,     // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039;   =&amp;gt; $beheerPassword,  // xml-rpc password&lt;br /&gt;
    &#039;CSV_bestand_type&#039; =&amp;gt; &#039;1&#039; | &#039;2&#039; | &#039;3&#039; , // 1=Contactpersonen/Hoofdlidmaatschappen&lt;br /&gt;
                                            // 2=Gremiumlidmaatschap codes&lt;br /&gt;
                                            // 3=Gremiumlidmaatschappen&lt;br /&gt;
    &#039;CSV_bestand&#039;      =&amp;gt; $CSV_bestand));   // het CSV bestand (base64 encoded)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bestand opgeslagen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.2 SchrijfNieuwLidIn&lt;br /&gt;
// &lt;br /&gt;
// Maak in het CRM een nieuw HCC lid aan&lt;br /&gt;
// De NAW gegevens worden in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;NAWgegevens&#039;    =&amp;gt; $NAW_Array,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress);&lt;br /&gt;
// $NAW_array = array(&lt;br /&gt;
//   &#039;GeboorteDatum&#039;         =&amp;gt; $geboortedatum,&lt;br /&gt;
//   &#039;Geslacht&#039;              =&amp;gt; $geslacht,&lt;br /&gt;
//   &#039;Voornaam&#039;              =&amp;gt; $voornaam,&lt;br /&gt;
//   &#039;Voorletters&#039;           =&amp;gt; $voorletters,&lt;br /&gt;
//   &#039;Tussenvoegsel&#039;         =&amp;gt; $tussenvoegsel,&lt;br /&gt;
//   &#039;Achternaam&#039;            =&amp;gt; $achternaam,&lt;br /&gt;
//   &#039;Straatnaam&#039;            =&amp;gt; $straatnaam,&lt;br /&gt;
//   &#039;Huisnummer&#039;            =&amp;gt; $huisnummer,&lt;br /&gt;
//   &#039;HuisnummerToevoeging&#039;  =&amp;gt; $huisnummertoevoeging,&lt;br /&gt;
//   &#039;Woonplaats&#039;            =&amp;gt; $woonplaats,&lt;br /&gt;
//   &#039;Postcode&#039;              =&amp;gt; $postcode,&lt;br /&gt;
//   &#039;Land&#039;                  =&amp;gt; $land,&lt;br /&gt;
//   &#039;Telefoonnummer&#039;        =&amp;gt; $telefoonnummer,&lt;br /&gt;
//   &#039;MobielNummer&#039;          =&amp;gt; $mobielnummer,&lt;br /&gt;
//   &#039;Mail&#039;                  =&amp;gt; $mail,&lt;br /&gt;
//   &#039;IBAN&#039;                  =&amp;gt; $IBAN,&lt;br /&gt;
//   &#039;Interessegroep&#039;        =&amp;gt; $IGs, // komma-gescheiden lijst met IG&#039;s&lt;br /&gt;
//   &#039;Geschenk&#039;              =&amp;gt; $geschenk,&lt;br /&gt;
//   &#039;Actiecode&#039;             =&amp;gt; $actiecode,&lt;br /&gt;
//   &#039;Voorwaarden&#039;           =&amp;gt; $Akkoord); // &#039;Akkoord&#039;&lt;br /&gt;
)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;nieuw lid ingeschreven&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;  =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccCode&#039;   =&amp;gt; $hccCode);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.3 Verwerk_JSON_mutatie&lt;br /&gt;
// De CRM proxy kan NAW en/of IG mutaties en/of hccCode mutaties live doorgeven&lt;br /&gt;
// Deze gegevens worden in JSON in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;mutatie_type&#039;   =&amp;gt; &#039;1&#039; | &#039;2&#039;,       // 1=Contactpersoon/Hoofdlidmaatschap&lt;br /&gt;
                                         // 2=Gremiumlidmaatschap&lt;br /&gt;
    &#039;JSON_mutatie&#039;   =&amp;gt; $JSON_mutatie)); // de JSON payload&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Mutatie verwerkt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.4 Vertaal landcode&lt;br /&gt;
// Het CRM werkt met numerieke landcodes, wij met cijfers&lt;br /&gt;
// Vertaal die&lt;br /&gt;
// Er moet in de aanroep 1 veld aanwezig zijn, beide waarden komen in het antwoord terug&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ISO_landcode&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    [&#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,]&lt;br /&gt;
    [&#039;ISO_code   &#039;  =&amp;gt; $ISO_code]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;ISO code lookup geslaagd&#039;,&lt;br /&gt;
    &#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,&lt;br /&gt;
    &#039;ISO_code   &#039;  =&amp;gt; $ISO_code,&lt;br /&gt;
    &#039;ISO_benaming&#039; =&amp;gt; $ISO_benaming); // de descriptive name van deze ISO code&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Kan geen bijpassende vertaling vinden&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.5 MuteerAanmeldingsformulier&lt;br /&gt;
// Sla een JSON veld op in de XML-RPC server zodat deze weer opgehaald kan worden door de websites&lt;br /&gt;
// Authenticatie op basis van hccLidnummer en JoomlaToken&lt;br /&gt;
// Deze mutaties mogen alleen door HN#WM of SITE#WM gedaan worden.&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    MuteerAanmeldingsformulier,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;formulierdata&#039; =&amp;gt; $formulierdata, // JSON veld met alle gegevens voor het aanmeld formulier&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress ));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;MuteerAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;aanmeldingsformulier bijgewerkt&#039;;&lt;br /&gt;
 &lt;br /&gt;
// M.6 HaalAanmeldingsformulier&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    HaalAanmeldingsformulier,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;HaalAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;formulierdata&#039; =&amp;gt; $formulierdata); // JSON veld met alle gegevens voor het aanmeld formulier &lt;br /&gt;
&lt;br /&gt;
// M.7 GeefFactuurOverzicht&lt;br /&gt;
// (authenticatie op basis van hccLidnummer + JoomlaToken + siteID&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    GeefFactuurOverzicht,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),]&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID, &lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;           =&amp;gt; &#039;GeefFactuurOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;           =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;FactuurOverzicht&#039; =&amp;gt; $FactuurOverzicht); &lt;br /&gt;
//  $FactuurOverzicht =&lt;br /&gt;
//     array(&lt;br /&gt;
//       array(&lt;br /&gt;
//         &#039;FactuurID&#039;     =&amp;gt; &#039;a5b93460-4536-ea11-a813-000d3a2c53fa&#039;,&lt;br /&gt;
//         &#039;FactuurNummer&#039; =&amp;gt; &#039;200118673J5&#039;&lt;br /&gt;
//         &#039;FactuurDatum&#039;  =&amp;gt; &#039;2020-01-15&#039;&lt;br /&gt;
//         &#039;bedrag&#039;        =&amp;gt; 42.37&lt;br /&gt;
//         &#039;BetaalStatus&#039;  =&amp;gt; 0]));&lt;br /&gt;
//     )&lt;br /&gt;
&lt;br /&gt;
// M.8 HaalFactuur&lt;br /&gt;
// (authenticatie op basis van JoomlaToken of FactuurToken)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    HaalFactuur,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;FactuurToken&#039;  =&amp;gt; $FactuurToken,]&lt;br /&gt;
      &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalFactuur&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;factuur&#039; =&amp;gt; $factuurgegevens); &lt;br /&gt;
//  $factuurgegevens =&lt;br /&gt;
//    array(&lt;br /&gt;
//         &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
//         &#039;FactuurDatum&#039;  =&amp;gt; $FactuurDatum,&lt;br /&gt;
//         &#039;FactuurID&#039;     =&amp;gt; $FactuurID,&lt;br /&gt;
//         &#039;Bestandsnaam&#039;  =&amp;gt; $Bestandsnaam,&lt;br /&gt;
//         &#039;PDF&#039;           =&amp;gt; $PDF) // base64 encoded PDF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Echo test ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// t.b.v. controle of de verbinding met de XML-RPC server functioneert&lt;br /&gt;
// Eenvoudige echo test&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;echo&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;What&#039;     =&amp;gt; $string,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;echo&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; $string);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HenZ XML-RPC interface ===&lt;br /&gt;
&lt;br /&gt;
Overzicht van XML-RPC procedures die bij HenZ draaien&lt;br /&gt;
(worden via de Hobbynet XML-RPC server afgehandeld)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- Action=2&lt;br /&gt;
  wijzig gebruikersnaam en wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=3&lt;br /&gt;
  controleer of een gebruikersnaam bestaat&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.2)&lt;br /&gt;
&lt;br /&gt;
- Action=4&lt;br /&gt;
  creer een nieuwe gebruiker. Per lidnummer is er 1 account. Als er al een &lt;br /&gt;
  account voor dit lidnummer bestaat wordt het bestaande account hernoemd.&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.1)&lt;br /&gt;
&lt;br /&gt;
- Action=5&lt;br /&gt;
  wijzig wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=7&lt;br /&gt;
  Uitgeschreven lid is weer actief lid geworden&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&lt;br /&gt;
- Action=8&lt;br /&gt;
  Lid heeft een nieuwe hcc-code gekregen&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Release notes ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2012.02.08 Wijzigingen versie 5:&lt;br /&gt;
 - 4.1 verwijder_hcc_Lidnummer i.p.v. hcc_Lidnummer&lt;br /&gt;
 - 4.1 optionele extra parameter verwijder_hccLogin&lt;br /&gt;
 - Optionele parameters aangegeven&lt;br /&gt;
 - Vanwege de duidelijkheid de beheerLogin en beheerPassword velden&lt;br /&gt;
   bovenin de betreffende aanroepen gezet&lt;br /&gt;
   (De volgorde van de parameters is niet relevant, dus dit is geen&lt;br /&gt;
    interface-aanpassing)&lt;br /&gt;
2012.02.16 Wijzigingen versie 6:&lt;br /&gt;
 - 2.1/2.2/2.3 geef ook cn en sn terug na aanpassen van het wachtwoord&lt;br /&gt;
 - 3.1 geef cn en sn terug na aanmaken nieuwe gebruiker&lt;br /&gt;
2012.02.27 Wijzigingen versie 7:&lt;br /&gt;
 - Neem de XML-RPC interface van HenZ in deze XML-RPC server op&lt;br /&gt;
   8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gegevens tevens in LDAP op&lt;br /&gt;
 - 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.2 wijzig wachtwoord, optie 2&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * gebruikersnaam kan niet meer via deze interface aangepast worden&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.3 wijzig wachtwoord, optie 3&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
2012.03.26 Wijzigingen versie 8:&lt;br /&gt;
  - Breidt de XML-RPC interface van HenZ in deze XML-RPC server uit met&lt;br /&gt;
    8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
2012.04.09 Wijzigingen versie 9:&lt;br /&gt;
 - Vervang alle &#039;ldap&#039; aanroepen door &#039;HCCldap&#039; aanroepen&lt;br /&gt;
 - documentatie van HenZ call action=2 aangepast, action=5 toegevoegd&lt;br /&gt;
2012.05.03 Wijzigingen versie 10:&lt;br /&gt;
 - 1.1 / 1.2 / 1.3 geven nu ook &#039;ProfielBekend&#039; terug om uniek te bepalen&lt;br /&gt;
   of deze bezoeker een first-time-login pagina te zien dient te krijgen&lt;br /&gt;
 - documentatie van 2.1 (wijzig wachtwoord) aangepast: &lt;br /&gt;
   2.1 kan alleen als profiel is doorlopen&lt;br /&gt;
 - nieuwe procedure t.b.v. zoekscherm PC30&lt;br /&gt;
   * A.1 ZoekHCCLid &lt;br /&gt;
     - hiervoor is de database met diverse velden uitgebreid&lt;br /&gt;
       (postcode, e-mailadres, huisadres, woonplaats, land, telefoonnummer)&lt;br /&gt;
       Dit heeft impact op diverse andere procedures (t.b.s.)&lt;br /&gt;
 - nieuwe procedure t.b.v. &#039;gewone&#039; profielpagina&lt;br /&gt;
   * B.1 GeefDBFPersoonID&lt;br /&gt;
 - nieuwe procedure t.b.v. cron-job&lt;br /&gt;
   * C.1 GeefOpgezegdeLeden&lt;br /&gt;
2012.05.10 Wijzigingen versie 11&lt;br /&gt;
 - 1.3 GebruikerBestaatControle&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
   * nieuw veld in antwoord: hccPseudoniem&lt;br /&gt;
 - 2.3 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 2.4 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * nieuwe parameter: nieuw_hccPseudoniem&lt;br /&gt;
   * alle parameters zijn verplicht (niet langer optioneel)&lt;br /&gt;
   * nieuw antwoord: Gegevenscombinatie onjuist&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * Nieuwe procedure t.b.v. 1e keer doorlopen profielpagina&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * &#039;Zoeklimiet bereikt&#039; wordt als ExtraInfo meegegeven&lt;br /&gt;
   * nieuwe velden in antwoord: hccPseudoniem en hccLogin&lt;br /&gt;
 - B.1 GeefDBFPersoonID&lt;br /&gt;
   * Zoeken kan nu ook op hccLogin en op hccPseudoniem&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden&lt;br /&gt;
   * Geef nu ook hccLogin en hccPseudoniem terug&lt;br /&gt;
2012.05.14 Wijzigingen versie 12&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook DBFPersoonID terug&lt;br /&gt;
 - 4.1 Gooi een gebruiker weg.&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 5.1 Wijzig hccIG&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 6.1 Wijzig hccRegio&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 7.1 Wijzig hccRol&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
2012.05.20 Wijzigingen versie 13&lt;br /&gt;
 - A.1 ZoekHCCLid &lt;br /&gt;
   * Geef resultaten gestructureerder formaat&lt;br /&gt;
   * Geef in ExtraInfo weer hoeveel echte resultaten er gevonden zijn&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef resultaten in gestructureerder formaat&lt;br /&gt;
2012.06.03 Wijzigingen versie 14&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * Geef ook DBFPersoonID mee&lt;br /&gt;
2012.08.17 Wijzigingen versie 15&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef ook hccLogin in het antwoord terug&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.09.29 Wijzigingen versie 16&lt;br /&gt;
 - Alle cron gerelateerde opdrachten verwijderd&lt;br /&gt;
   * 3.1 NieuweGebruiker&lt;br /&gt;
   * 4.1 GooiGebruikerWeg&lt;br /&gt;
   * 5.1 WijzigHccIG&lt;br /&gt;
   * 6.1 WijzigHccRegio&lt;br /&gt;
   * 7.1 WijzigHccRol&lt;br /&gt;
2012.10.28 Wijzigingen versie 17&lt;br /&gt;
 - nieuwe procedure t.b.v. PC30 beheerpagina&lt;br /&gt;
   * A.2 HaalPC30Token&lt;br /&gt;
 - nieuwe procedure t.b.v. Drupal profielpagina&lt;br /&gt;
   * 2.4 vervallen &lt;br /&gt;
     (WijzigGebruikersGegevens op basis van pseudoniem)&lt;br /&gt;
   * 2.5 WijzigGebruikersGegevens&lt;br /&gt;
     Nieuwe keuze: wijzig pseudoniem&lt;br /&gt;
2012.11.14 Wijzigingen versie 18&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook mail in het antwoord terug&lt;br /&gt;
2012.11.30 Wijzigingen versie 19&lt;br /&gt;
 - E.1 HCCkader/WijzigGebruikersGegevens&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.1 / F.2 / F.3 ControleerKaderlid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.12.18 Wijzigingen versie 20&lt;br /&gt;
 - Haal DBFPersoonID weg uit alle aanroepen en alle resultaten&lt;br /&gt;
   * Antwoord van 1.x GebruikerBestaatControle&lt;br /&gt;
   * B.1 GeefDBFPersoonID opgeheven&lt;br /&gt;
 - A.1 ZoekHCCLid geeft nu ook hccMobiel terug (t.b.v. PC30 zoekpagina)&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden verder uitgewerkt:&lt;br /&gt;
   * Geeft alleen de door Drupal gebruikte velden &#039;hccLogin&#039; en &#039;hccEindDatum&#039;&lt;br /&gt;
     terug in het antwoord&lt;br /&gt;
   * Geeft nu &#039;echte&#039; antwoorden i.p.v. dummy resultaten&lt;br /&gt;
 - F.1 ControleerKaderlid geeft nu ook optioneel &#039;sn&#039; en &#039;givenName&#039; &lt;br /&gt;
     terug (in de beheer-variant)&lt;br /&gt;
2013.01.25 Wijzigingen versie 21&lt;br /&gt;
 - A.1 ZoekHCCLid uitgebreid&lt;br /&gt;
   * Geeft nu ook hccBeginDatum, hccEindDatum en hccRol terug&lt;br /&gt;
2013.02.02 Wijzigingen versie 22&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * Interface aangepast&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2013.03.01 Wijzigingen versie 23&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Geeft andere resultaten terug&lt;br /&gt;
 - 2.2 WijzigWachtwoord&lt;br /&gt;
   * Geeft nu ook hccLogin terug (voor ww-vergeten op de Drupal site)&lt;br /&gt;
 - HCCenquete implementatie&lt;br /&gt;
   * G.1 Expandeer NL postcode&lt;br /&gt;
   * G.2 Haal lidgegevens op&lt;br /&gt;
   * G.3 Pas lidgegevens aan&lt;br /&gt;
2013.03.18 Wijzigingen versie 24&lt;br /&gt;
 - ZoekGroeperingsLid op basis van token&lt;br /&gt;
 - A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - A.5 VraagLidgegevensTokenAan&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2013.04.07 Wijzigingen versie 25&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   Simpeler interface ontwikkeld (&#039;HCCpartners&#039; i.p.v. &#039;HCCpartner&#039;)&lt;br /&gt;
 - G.3 mag ook Tussenvoegsels aanpassen&lt;br /&gt;
2013.04.25 Wijzigingen versie 26&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   Nieuwe interface voor validatie vanaf groeperings websites&lt;br /&gt;
2013.05.03 Wijzigingen versie 27&lt;br /&gt;
 - 2.6 HaalOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.8 HaalOptInLijst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - HCCpartners aanroep nieuwe interface (&#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;)&lt;br /&gt;
2013.07.05 Wijzigingen versie 28&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * extra parameters (mail, hccPseudoniem) in het antwoord&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
2013.08.31 Wijzigingen versie 29&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / ControleerKaderlid&lt;br /&gt;
   * extra output parameter (hccKaderMail)&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccForumLogin)&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   * komma-gescheiden lijst met groeperingen mogelijk&lt;br /&gt;
   * extra output parameter (mailHccnet)&lt;br /&gt;
2013.12.26 Wijzigingen versie 30&lt;br /&gt;
 - 3.1 Geef mijn lidnummer&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * geef nu ook &#039;ProfielBekend&#039; terug om aan de PC30 omgeving door te geven&lt;br /&gt;
     dat het wachtwoord niet veranderd mag worden door PC30&lt;br /&gt;
 - A.6 GeefBezoekersOverzicht&lt;br /&gt;
   * geef nu ook &#039;Locatie&#039; terug indien van toepassing&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * parameters aangepast&lt;br /&gt;
   * authenticatie op basis van hccLogin + userPassword of lidnummer + hcc-code&lt;br /&gt;
   * geen algemene hcc-forum authenticatie meer mogelijk&lt;br /&gt;
 - F.7 ControleerKaderlidGroep&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2014.02.01 Wijzigingen versie 31&lt;br /&gt;
 - A.8 RegistreerGast&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - nieuwe interface (losse, unieke aanroepen, niet meer gegroepeerd)&lt;br /&gt;
2014.09.27 Wijzigingen versie 32&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden hernoemd naar GeefUitgeschrevenLeden&lt;br /&gt;
 - I.3 GeefhccEindDatum&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - Action=7 en Action=8 toegevoegd aan de HenZ interface&lt;br /&gt;
2014.12.12 Wijzigingen versie 33&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / IsKaderLid&lt;br /&gt;
   * extra output parameter (mail, mailHccnet, hccKaderForward)&lt;br /&gt;
 - F.8 HCC-kader / ZetKaderForward&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.05.06 Wijzigingen versie 34&lt;br /&gt;
 - GeefMijnGegevens&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - ValideerPCActiveAbonnee&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 1.4 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccKaderForward)&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * optionele extra output parameter (ExtraInfo)&lt;br /&gt;
2015.09.27 Wijzigingen versie 35&lt;br /&gt;
 - HeeftForumCredentials&lt;br /&gt;
   * vervallen&lt;br /&gt;
2015.11.20 Wijzigingen versie 36&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.12.13 Wijzigingen versie 37&lt;br /&gt;
 - serverID als optionele parameter&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * Maak velden optioneel&lt;br /&gt;
2016.01.05 Wijzigingen versie 38&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
2016.01.15 Wijzigingen versie 39&lt;br /&gt;
 - H.3 GeefMijnGegevens&lt;br /&gt;
   * geeft nu ook hccOptIn terug&lt;br /&gt;
   * geeft nu ook JoomlaToken terug&lt;br /&gt;
 - H.4 PasOptInKeuzeAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - SiteID en RemoteID als optionele parameter&lt;br /&gt;
2016.03.17 Wijzigingen versie 40&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.03.20 Wijzigingen versie 41&lt;br /&gt;
 - ServerID, SiteID en RemoteID als optionele parameters bij alle aanroepen&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - A.9 GeefLocatieNamen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.6 WijzigHccRol&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - F.7 IsGroeperingsKaderlid&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.5 WijzigGebruikersGegevens (hccPseudoniem)&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * vervallen&lt;br /&gt;
2016.04.02 Wijzigingen versie 42&lt;br /&gt;
 - H.6 GeefMijnKaderDetails&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.07.03 Wijzigingen versie 43&lt;br /&gt;
 - Ubuntu 16.04 aanpassingen (PHP versie 7) beschreven&lt;br /&gt;
2016.09.01 Wijzigingen versie 44&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * extra parameter &#039;hccMobiel&#039;&lt;br /&gt;
2016.10.13 Wijzigingen versie 45&lt;br /&gt;
 - H.3 GeefMijnGegevens (dedecated Joomla aanroep)&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
   * Als het om een webmaster gaat, vul dan eventueel hccRegio of hccIG aan &lt;br /&gt;
     met die groepering, ook als hij geen lid is van die groepering&lt;br /&gt;
 - I.4 GebruikerBestaatControle&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
2016.12.01 Wijzigingen versie 46&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar teruggezet&lt;br /&gt;
2017.05.28 Wijzigingen versie 47&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens (t.b.v. eenmalige kadermailing)&lt;br /&gt;
 - H.8 ZetMinimaleKaderGegevens  (t.b.v. eenmalige kadermailing)&lt;br /&gt;
2017.09.01 Wijzigingen versie 48&lt;br /&gt;
 - A.10 SchrijfNietlidInOpBulletin nu alleen voor 1 bulletin tegelijk&lt;br /&gt;
 - 2.2 WijzigGebruikersGegevens (op basis van gebruikersnaam en wachtwoord)&lt;br /&gt;
       is vervallen (was een oude Drupal aanroep)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens geeft ook hccKaderToonMobiel terug&lt;br /&gt;
2017.11.14 Wijzigingen versie 49&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft geen hccKaderToonMobiel meer terug&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft alleen hccMobiel als hccKaderToonMobiel dat toestaat&lt;br /&gt;
2018.02.18 Wijzigingen versie 50&lt;br /&gt;
 - H.6 GeefMijnKaderDetails geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.9 PasKaderGegevensAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft 3 extra parameters terug (hccKaderMail, hccKaderForward,&lt;br /&gt;
   hccKaderToonMobiel)&lt;br /&gt;
 - JoomlaTokens worden gevalideerd op siteID, niet langer op serverID&lt;br /&gt;
 - diverse aanroepen kunnen nu ook via de bezoekersregistratie-proxy aangeroepen worden. &lt;br /&gt;
   Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
   (GeefAlleGroeperingen, GeefAlleKaderRollen, GeefLocaties, GeefLocatieNamen)&lt;br /&gt;
   De bezoekersregistratie aanroepen hebben enkel JoomlaToken als extra parameter nodig:&lt;br /&gt;
   (LidBezoektBijeenkomst, GeefBezoekersOverzicht)&lt;br /&gt;
2018.02.26 Wijzigingen versie 51&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft extra parameter hccMobiel terug &lt;br /&gt;
 - H.9 PasKaderGegevensAan kan nu ook kadermail password aanpassen&lt;br /&gt;
 - K.1 ValideerToken&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - K.2 ValideerHCCCode&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2018.03.17 Wijzigingen versie 52&lt;br /&gt;
 - H.3 Haal al mijn gegevens&lt;br /&gt;
   Extra optie &#039;compact&#039; om alleen essentiele resultaten te verkrijgen&lt;br /&gt;
   (t.b.v. de Android bezoekersregistratie applicatie)&lt;br /&gt;
2018.03.25 Wijzigingen versie 53&lt;br /&gt;
 - I.2 IsHCCLid&lt;br /&gt;
   (Oude aanroep teruggezet, wordt nog in vraagbaak module gebruikt)&lt;br /&gt;
2018.07.01 Wijzigingen versie 54&lt;br /&gt;
   * A.1 beheer authenticatie op basis van lidnummer + hccCode (tbv VZ-portal)&lt;br /&gt;
   * A.2 HaalPC30Token weggehaald&lt;br /&gt;
2018.08.22 Wijzigingen versie 55&lt;br /&gt;
  * 1.2 GebruikerBestaatControle&#039; (op basis van hccLogin en userPassword) weggehaald&lt;br /&gt;
  * 1.4 GebruikerBestaatControle&#039; (op basis van zoekHccLogin of zoekHccLidnr) weggehaald&lt;br /&gt;
  * 2.8 HaalOptInLijst weggehaald&lt;br /&gt;
  * E.1 PasKaderWachtwoordAan weggehaald&lt;br /&gt;
  * F.1 IsKaderLid (op basis van hccLidnr en hccCode) weggehaald&lt;br /&gt;
  * F.3 IsKaderLid (op basis van beheerdernaam en beheerderwachtwoord) was al weg&lt;br /&gt;
  * F.8 ZetKaderForward weggehaald&lt;br /&gt;
  * H.1 IsGroeperingsLid weggehaald&lt;br /&gt;
  * H.6 GeefMijnKaderDetails weggehaald&lt;br /&gt;
  * H.7 GeefMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * H.8 ZetMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * K.1 ValideerHCCCode weggehaald&lt;br /&gt;
  * K.2 ValideerToken weggehaald&lt;br /&gt;
  * H.3 GeefMijnGegevens geeft omvang kader mailbox mee terug&lt;br /&gt;
2018.11.06 Wijzigingen versie 56&lt;br /&gt;
  Nieuwe aanroepen t.b.v. forum en vraagbaak autorisaties&lt;br /&gt;
  * L.1 MaakOnderwerp&lt;br /&gt;
  * L.2 VerwijderOnderwerp&lt;br /&gt;
  * L.3 GeefOnderwerpen&lt;br /&gt;
  * L.4 MuteerOnderwerp&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
  * L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
  * H.5 ZoekKaderLeden heeft compact optie&lt;br /&gt;
2018.11.16 Wijzigingen versie 57&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie kent nu ook RED(acteur)&lt;br /&gt;
2018.12.17 Wijzigingen versie 58&lt;br /&gt;
  * A.11 GeefBezoekersAantallen (nieuwe aanroep)&lt;br /&gt;
  * H.10 PasUserWachtwoordAan (nieuwe aanroep)&lt;br /&gt;
2019.02.21 Wijzigingen versie 59&lt;br /&gt;
  * A. 6 GeefBezoekersOverzicht geeft enkel lijst van bezoekers laatste bijeenkomst&lt;br /&gt;
2019.10.26 Wijzigingen versie 60&lt;br /&gt;
  * A.4 Schrijf bezoekers niet meer automatisch in op bulletins&lt;br /&gt;
  * H.4  PasOptInKeuzeAan kan ook door LA aangeroepen worden&lt;br /&gt;
  Nieuwe aanroepen t.b.v. eigen implementatie van mijn.hcc.nl in de Joomla modules&lt;br /&gt;
  * H.11 PasPseudoniemAan&lt;br /&gt;
  * H.12 ValideerWachtwoordEisen&lt;br /&gt;
  * H.13 PasWachtwoordAan (1: op JoomlaToken, 2: op PWResetToken)&lt;br /&gt;
  * H.14 MaakPWResetToken&lt;br /&gt;
  * H.15 ValideerPWResetToken&lt;br /&gt;
  * H.16 RuimJoomlaTokenOp&lt;br /&gt;
  * A.12 GeefAlleBulletins&lt;br /&gt;
  * A.13 ExpandeerPostcode&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.18 NormaliseerTelefoon&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  * A.21 HaalIGBedragenOp&lt;br /&gt;
  * A.22 HaalTariefGroepenOp&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
  * A.24 GeefSSOUrls&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  8.1 MaakGebruikerAan&lt;br /&gt;
  F.5 GeefAlleKaderRollen&lt;br /&gt;
2020.01.04 Wijzigingen versie 61&lt;br /&gt;
  Nieuwe aanroepen t.b.v. IDEAL betaling hobbynet abonnees&lt;br /&gt;
  H.17 GeefAantalDomeinen&lt;br /&gt;
2020.01.06 Wijzigingen versie 62&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Cayentis (CRM webproxy) implementatie&lt;br /&gt;
  * M.1  Upload_CSV_bestand&lt;br /&gt;
  * M.2  SchrijfNieuwLidIn&lt;br /&gt;
  * M.3  Verwerk_JSON_mutatie&lt;br /&gt;
  * M.4  ISO_landcode&lt;br /&gt;
  * M.5  MuteerAanmeldingsformulier&lt;br /&gt;
  * M.6  HaalAanmeldingsformulier&lt;br /&gt;
  * M.7  GeefFactuurOverzicht&lt;br /&gt;
  * M.8  HaalFactuur&lt;br /&gt;
  * A.25 UpdateNAW&lt;br /&gt;
  Vervallen aanroepen&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  Aangepaste aanroepen&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
2020.03.27 Wijzigingen versie 63&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.18 ResetHCCCode&lt;br /&gt;
  * H.19 PasHccLoginAan&lt;br /&gt;
2020.04.10 Wijzigingen versie 64&lt;br /&gt;
  Nieuwe aanroepen &lt;br /&gt;
  * A.26 VerwijderNietLid&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  * A.1  ZoekHCCLid: nieuwe zoekoptie &#039;niet_leden&#039;&lt;br /&gt;
  Opnieuw geimplementeerd&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
2020.11.26 Wijzigingen versie 65&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.20 MaakTestLogin&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.3 GeefMijnGegevens: optionele parameter &#039;hccGroepering&#039;&lt;br /&gt;
  Het werken met een testaccount heeft impact op de volgende aanroepen:&lt;br /&gt;
  - G.7  GeefFactuurOverzicht&lt;br /&gt;
  - M.8  HaalFactuur&lt;br /&gt;
  - L.1  MaakOnderwerp&lt;br /&gt;
  - H.14 MaakPWResetToken&lt;br /&gt;
  - F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
  - L.4  MuteerOnderwerp&lt;br /&gt;
  - L.5  MuteerOnderwerpAutorisatie&lt;br /&gt;
  - H.19 PasHccLoginAan&lt;br /&gt;
  - A.23 PasInteressegroepAan&lt;br /&gt;
  - H.9  PasKaderGegevensAan&lt;br /&gt;
  - H.4  PasOptInKeuzeAan&lt;br /&gt;
  - H.11 PasPseudoniemAan&lt;br /&gt;
  - H.13 PasWachtwoordAan&lt;br /&gt;
  - H.18 ResetHCCCode&lt;br /&gt;
  - A.20 UpdateMobiel&lt;br /&gt;
  - A.25 UpdateNAW&lt;br /&gt;
  - L.2  VerwijderOnderwerp&lt;br /&gt;
  - A.5  VraagLidgegevensTokenAan&lt;br /&gt;
  - 2.1  WijzigGebruikersGegevens&lt;br /&gt;
  - H.3 GeefMijnGegevens geeft extra parameter terug (testaccount)&lt;br /&gt;
2021.08.01 Wijzigingen versie 66&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.4 PasOptInKeuzeAan werkt nu ook op basis van OptOutToken&lt;br /&gt;
2021.10.10 Wijzigingen versie 67&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  - H.21 UpdateOTP&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.3 GeefMijnGegevens geeft extra parameters terug (hccOtpKey en hccOtep)&lt;br /&gt;
2021.10.13 Wijzigingen versie 68&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.21 UpdateOTP &lt;br /&gt;
2021.11.03 Wijzigingen versie 69&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  - H.22 HeeftOtpKey&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Aanpassingen aan de Apache omgeving =&lt;br /&gt;
&lt;br /&gt;
== php.ini aanpassingen ==&lt;br /&gt;
De XML-RPC server zal &#039;ergens&#039; een bestand moeten kunnen vinden met de&lt;br /&gt;
gebruikersnamen t.b.v. het authenticeren bij de LDAP-server.&lt;br /&gt;
&lt;br /&gt;
Dit bestand wordt geplaatst in de map &#039;/usr/local/hobbynet/etc&#039;. Om dit&lt;br /&gt;
vanuit Apache te mogen benaderen, dient een aanpassing aan php.ini&lt;br /&gt;
gemaakt te worden:&lt;br /&gt;
&lt;br /&gt;
 /etc/php5/apache2/php.ini&lt;br /&gt;
 &lt;br /&gt;
 include_path = &amp;quot;.:/usr/share/php:/usr/share/pear:/usr/local/hobbynet/etc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Apache modules ==&lt;br /&gt;
Nieuwe server geschikt maken voor XML-RPC gebruik&lt;br /&gt;
&lt;br /&gt;
=== Apache modules (PHP 7) ===&lt;br /&gt;
Ubuntu 16.04 wordt standaard met PHP versie 7.0 uitgeleverd.&lt;br /&gt;
De opdrachten om de modules op te halen zijn:&lt;br /&gt;
 apt-get install php-xmlrpc&lt;br /&gt;
 apt-get install apache2&lt;br /&gt;
 apt-get install ldap-utils&lt;br /&gt;
 apt-get install php-ldap&lt;br /&gt;
 apt-get install libapache2-mod-php&lt;br /&gt;
&lt;br /&gt;
== Loadbalancer akties niet naar de logbestanden schrijven ==&lt;br /&gt;
De loadbalancer haalt zeer frequent een testbestand op (/test.txt), om&lt;br /&gt;
te controleren of de xml-server operationeel is. Dat levert extreem veel&lt;br /&gt;
logging op in /var/log/apache2/other_vhosts.log.&lt;br /&gt;
&lt;br /&gt;
Pas de apache configuratie zo aan, dat logging van alle opvragingen&lt;br /&gt;
vanaf de loadbalancers uitgezet wordt.&lt;br /&gt;
 /etc/apache2/sites-enabled/xml-server&lt;br /&gt;
 &lt;br /&gt;
 # Mark requests from loadbalancers&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;212\.72\.227\.93&amp;quot;          dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;212\.72\.227\.94&amp;quot;          dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;172\.31\.1\.249&amp;quot;           dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;172\.31\.1\.250&amp;quot;           dontlog&lt;br /&gt;
 CustomLog ${APACHE_LOG_DIR}/access.log common env=!dontlog&lt;br /&gt;
&lt;br /&gt;
= Firewall algemeen =&lt;br /&gt;
In de file /etc/hobby-firewall/hobby-firewall.local wordt het script&lt;br /&gt;
&#039;/usr/local/hobbynet/bin/gen_fw.sh&#039; aangeroepen.&lt;br /&gt;
Deze haalt de IP adressen op uit ldap. &lt;br /&gt;
(.local omdat we dit ook zo doen op de webservers).&lt;br /&gt;
&lt;br /&gt;
De firewall wordt 4 x per dag herstart en /etc/hobby-firewall wordt&lt;br /&gt;
gesynchroniseerd (1-richting van lb1 naar lb2) met de volgende crontab&lt;br /&gt;
entries:&lt;br /&gt;
&lt;br /&gt;
Op lb1:&lt;br /&gt;
  0  0 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55  5 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0  6 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 11 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0 12 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 17 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0 18 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 23 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
Op lb2:&lt;br /&gt;
 15  6 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15 12 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15 18 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15  0 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null &lt;br /&gt;
&lt;br /&gt;
Het encrypted backup script is verplaatst naar &#039;/usr/local/hobbynet/local&#039; en hernoemd naar &#039;backup-encrypted.bash&#039;.&lt;br /&gt;
Dit is omdat deze niet mee mag worden gesynchroniseerd.&lt;br /&gt;
&lt;br /&gt;
Tevens wordt 1x per dag /usr/local/hobbynet/bin gesynchroniseerd (1-richting van hcc-ldap-lb1 naar hcc-ldap-lb2)&lt;br /&gt;
&lt;br /&gt;
== Aanpassingen in de firewall ==&lt;br /&gt;
Op de server waar de XML-RPC server staat, moeten enkele firewall aanpassingen gemaakt worden.&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf het interne netwerk (www-prod, www-test), en vanaf eventuele andere plekken die we expliciet toe willen staan.&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf mijn.hcc.nl (XML-RPC aanroepen vanaf de portal)&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf service.hccnet.nl toe (XML-RPC aanroep GeefUitgeschrevenLeden vanuit HenZ)&lt;br /&gt;
* uitgaand: sta TCP 443 naar service.hccnet.nl toe (XML-RPC aanroepen naar HenZ)&lt;br /&gt;
* uitgaand: sta TCP 990 en 5000-6000 naar Apps.HCC.local (FTPS verkeer naar de HCC server bij Hobbynet)&lt;br /&gt;
&lt;br /&gt;
== Aanpassingen aan AppArmor ==&lt;br /&gt;
Alhoewel technisch gezien dit bij slapd behoort, neem ik het toch hier op.&lt;br /&gt;
&lt;br /&gt;
Als het Hobbynet certificaat in de map /disk/site/etc/ssl/hobby.nl/ wordt neergezet, dan zal apparrmor de toegang tot de certificaten blokkeren. Neem daarom in de &#039;&#039;&#039;local&#039;&#039;&#039; directory van apparmor het volgende op:&lt;br /&gt;
 # /etc/apparmor.d/local/usr.sbin.slapd&lt;br /&gt;
 # Site-specific additions and overrides for usr.sbin.slapd.&lt;br /&gt;
 # For more details, please see /etc/apparmor.d/local/README.&lt;br /&gt;
 #include &amp;lt;abstractions/ssl_certs&amp;gt;&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/ r,&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/* r,&lt;br /&gt;
&lt;br /&gt;
= CRM (Azure) proxy herstarten =&lt;br /&gt;
Als er indicaties zijn dat niet alle JSON berichten meer vanuit het CRM aangeboden worden aan de XML-RPC server, dan kan het helpen om de CRM proxy te herstarten&lt;br /&gt;
&lt;br /&gt;
* Ga naar https://portal.azure.com/&lt;br /&gt;
* Login met zelfde account als voor het CRM&lt;br /&gt;
* Soms krijg je een popup. Die kan je weg klikken, je wilt geen rondleiding&lt;br /&gt;
* Klik op &#039;&#039;&#039;hccdyn01-aps-crm01&#039;&#039;&#039; voor productie en &#039;&#039;&#039;hccdyn01-aps-dev01&#039;&#039;&#039; voor test&lt;br /&gt;
* En dan kan je op opnieuw starten klikken.&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=79333</id>
		<title>XML-RPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=79333"/>
		<updated>2021-10-13T16:10:21Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XML-RPC interface =&lt;br /&gt;
&lt;br /&gt;
De LDAP server kan direct gemuteerd worden via een LDAP koppeling. Zie&lt;br /&gt;
de standaard LDAP pagina voor de uitleg welke poorten daarvoor gebruikt&lt;br /&gt;
kunnen worden.&lt;br /&gt;
&lt;br /&gt;
Daarnaast is er de wens ontstaan om via een standaard protocol met de&lt;br /&gt;
LDAP omgeving te kunnen communiceren. Er is hiertoe een XML-RPC&lt;br /&gt;
koppeling ontwikkeld. XML-RPC is een standaard interface, waarmee het&lt;br /&gt;
mogelijk is om vanuit diverse omgevingen op een gestandaardiseerde&lt;br /&gt;
manier te communiceren.&lt;br /&gt;
&lt;br /&gt;
== Globale functie omschrijving ==&lt;br /&gt;
* Algemene aanroepen&lt;br /&gt;
** Controleer of een gebruiker bestaat&lt;br /&gt;
** Wijzig het wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
** Zoek een gebruiker (t.b.v. kantoor en/of LA-akties groeperingssecretaris)&lt;br /&gt;
** Maak een gebruiker aan (geef gebruiker een andere hccLogin waarde, maak ook bij HCCnet deze gebruiker aan)&lt;br /&gt;
** Controleer of een gebruiker zijn profiel al doorlopen heeft&lt;br /&gt;
** Haal de lijst met opgeheven accounts op&lt;br /&gt;
** Haal de lijst met bulletins van een hcc lid (OptIn)&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. hcc partners&lt;br /&gt;
** Controleer of lidnummer/postcode correct is&lt;br /&gt;
** Controleer of lidnummer/postcode correct is, en tevens ingeschreven staat bij een specifieke IG&lt;br /&gt;
&lt;br /&gt;
* Joomla template site functies (op basis van JoomlaToken)&lt;br /&gt;
** Maak een JoomlaToken&lt;br /&gt;
** Ruim een JoomlaToken op&lt;br /&gt;
** Pas mijn OptIn (bulletin inschrijving) aan&lt;br /&gt;
** Regel alles rondom Onderwerpen en de autorisatie hiervan&lt;br /&gt;
** Pas mijn wachtwoord aan&lt;br /&gt;
&lt;br /&gt;
* Joomla kadernet site functies (op basis van JoomlaToken)&lt;br /&gt;
** Zoek een hcc kaderlid (t.b.v. de kaderleden zoekpagina)&lt;br /&gt;
** Pas mijn kadermail forwarding aan en toon ja/nee mijn GSM nummer&lt;br /&gt;
** Pas het kadernet e-mail wachtwoord aan&lt;br /&gt;
** Haal de lijst met alle groeperingen op&lt;br /&gt;
** Haal de lijst met alle kaderrollen op&lt;br /&gt;
&lt;br /&gt;
* Joomla hcc.nl site (op basis van JoomlaToken)(mijn.hcc.nl vervanging)&lt;br /&gt;
** Pas mijn adresgegevens aan&lt;br /&gt;
** Pas mijn voorletters, voornaam, pseudoniem, telefoonnummer, GSM nummer etcetera aan&lt;br /&gt;
** Schrijf me in of uit op een bulletin&lt;br /&gt;
** Toon info over de kosten van een IG lidmaatschap&lt;br /&gt;
** Voer een wachtwoord reset uit op basis van een PWResetToken (een variant op JoomlaToken)&lt;br /&gt;
** Vraag een nieuwe HCC code aan, en stuur die per SMS&lt;br /&gt;
&lt;br /&gt;
* Joomla hobby.nl site (op basis van JoomlaToken)(t.b.v. IDEAL betaling)&lt;br /&gt;
** Haal het aantal hobbyDomains op&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. CRM (Microsoft Dynamics Cloud) koppeling&lt;br /&gt;
** Haal de dagelijkse synchronisatie bestanden op&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de NAW gegevens bij&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de IG gegevens van een lid bij&lt;br /&gt;
&lt;br /&gt;
* HenZ&lt;br /&gt;
** Haal de lijst met opzeggers op&lt;br /&gt;
** Valideer de opzegdatum van een opgegeven gebruiker&lt;br /&gt;
&lt;br /&gt;
=== Authenticatie ===&lt;br /&gt;
&lt;br /&gt;
Alle aanroepen gebeuren op basis van authenticatie vanuit de aanroeper.&lt;br /&gt;
Dit valt uiteen in de volgende categorieën:&lt;br /&gt;
* gebruikersnaam (&#039;hccLogin&#039;) en wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;), Joomla token (&#039;JoomlaToken&#039;) en website (&#039;siteID&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;) en hcc code (&#039;hccCode&#039;)&lt;br /&gt;
* beheerders-DN (&#039;beheerLogin&#039;) en beheerders wachtwoord (&#039;beheerPassword&#039;)&lt;br /&gt;
* partner-DN (&#039;partnerLogin&#039;) en partner wachtwoord (&#039;partnerPassword&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Aanroepen, gedaan via de bezoekersregistratie-proxy ===&lt;br /&gt;
(de bezoekersregistratie proxy is een mislukt project tbv de Android app van René Prins)&lt;br /&gt;
(deze proxy bestaat niet meer)&amp;lt;br&amp;gt;&lt;br /&gt;
Diverse aanroepen kunnen ook via de bezoekersregistratie-proxy aangeroepen worden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
* GeefAlleGroeperingen&lt;br /&gt;
* GeefAlleKaderRollen&lt;br /&gt;
* GeefLocaties&lt;br /&gt;
* GeefLocatieNamen&lt;br /&gt;
De bezoekersregistratie aanroepen hebben &#039;JoomlaToken&#039; als extra parameter nodig:&lt;br /&gt;
* LidBezoektBijeenkomst&lt;br /&gt;
* GeefBezoekersOverzicht&lt;br /&gt;
* GeefBezoekersAantallen&lt;br /&gt;
De aanroepen die over de proxy uitgevoerd worden dienen voorafgegaan te worden door een aanroep naar&lt;br /&gt;
* GeefMijnGegevens (dit geeft na validatie immers &#039;JoomlaToken&#039; terug)&lt;br /&gt;
&lt;br /&gt;
=== Resultaten ===&lt;br /&gt;
&lt;br /&gt;
Alle aanroepen geven de volgende elementen terug:&lt;br /&gt;
* Naam van de uitgevoerde procedure (&#039;Action&#039;)&lt;br /&gt;
* Resultaat van de uitgevoerde procedure (&#039;Status&#039;)&lt;br /&gt;
* Een tekstuele vertaling van het resultaat dan wel de foutmelding (&#039;Message&#039;)&lt;br /&gt;
* Tijdens de ontwikkelfase kan er debug-info teruggeleverd worden (&#039;ExtraInfo&#039;)&lt;br /&gt;
Daarnaast geven specifieke aanroepen extra resultaten terug&lt;br /&gt;
&lt;br /&gt;
== Technische omschrijving ==&lt;br /&gt;
XML-RPC beschrijving van acties in hcc.nl LDAP database&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2021.10.13 HaVe&lt;br /&gt;
XML-RPC Hobbynet versie 68.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kort overzicht ===&lt;br /&gt;
&lt;br /&gt;
Dit is een lijst met alle XML-RPC aanroepen. In het volgende hoofdstuk worden ze in detail besproken.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo				(partners)&lt;br /&gt;
ExpandeerPostcode               (Joomla module Bas, tbv verhuizingen)&lt;br /&gt;
GebruikerBestaatControle	(Joomla sites)&lt;br /&gt;
GeefAantalDomeinen              (Joomla module Bas)&lt;br /&gt;
GeefAlleBulletins               (Joomla module Bas)&lt;br /&gt;
GeefAlleGroeperingen		(kadersite, forum, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefAlleKaderRollen		(forum, secr. portal, kantoor portal, hobbynet portal, Joomla module Bas)&lt;br /&gt;
GeefBezoekersOverzicht		(bezoekersregistratie)&lt;br /&gt;
GeefBezoekersAantallen		(bezoekersregistratie)&lt;br /&gt;
GeefFactuurOverzicht		(Joomla module Bas)&lt;br /&gt;
GeefhccEindDatum		(HenZ)&lt;br /&gt;
GeefKadermailGegevens		(kantoor portal)&lt;br /&gt;
GeefLocatieNamen		(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefLocaties			(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefMijnGegevens		(Joomla inlog module Bas)&lt;br /&gt;
GeefMijnLidnummer		(beheer.hcc.nl secretaris portal)&lt;br /&gt;
GeefOnderwerpen                 (Joomla template sites)&lt;br /&gt;
GeefSSOUrls			(Joomla module Bas)&lt;br /&gt;
GeefUitgeschrevenLeden		(Joomla sites, HenZ)&lt;br /&gt;
HaalAanmeldingsformulier	(Joomla module Bas)&lt;br /&gt;
HaalFactuur			(Joomla module Bas)&lt;br /&gt;
HaalIGBedragenOp                (Joomla module Bas)&lt;br /&gt;
HaalOptInKeuzen			(kantoor portal)&lt;br /&gt;
HaalTariefGroepenOp		(kantoor portal)&lt;br /&gt;
HCCpartner			(Partner aanroep)&lt;br /&gt;
HCCpartners			(Partner aanroep)&lt;br /&gt;
IsDezeNaamNogBeschikbaar	(aangeroepen vanuit de CRM omgeving)&lt;br /&gt;
IsDezePseudoniemNogBeschikbaar	(kantoor portal)&lt;br /&gt;
IsHCCLid			(vraagbaak aanroep)&lt;br /&gt;
IsKaderLid			(in veel apps gebruikt)&lt;br /&gt;
LidBezoektBijeenkomst		(bezoekersregistratie)&lt;br /&gt;
MaakGebruikerAan		(mijnhcc.nl, maak hccnet account aan en ldap gebruikersnaam)&lt;br /&gt;
MaakOnderwerp                   (Joomla template sites)&lt;br /&gt;
MaakPWResetToken                (Joomla module Bas)&lt;br /&gt;
MaakTestLogin                   (Joomla module Bas)&lt;br /&gt;
MuteerAanmeldingsformulier	(Joomla module Bas)&lt;br /&gt;
MuteerGroeperingSamenstelling   (Joomla kadernet module Bas)&lt;br /&gt;
MuteerOnderwerp                 (Joomla template sites)&lt;br /&gt;
MuteerOnderwerpAutorisatie      (Joomla template sites)&lt;br /&gt;
NormaliseerTelefoon             (Joomla module Bas)&lt;br /&gt;
PasHccLoginAan			(Joomla module Bas)(enkel Hobbynet)&lt;br /&gt;
PasInteressegroepAan            (Joomla module Bas)&lt;br /&gt;
PasKaderGegevensAan		(kadersite, Joomla module Bas)&lt;br /&gt;
PasOptInKeuzeAan		(Joomla module Bas)&lt;br /&gt;
PasPseudoniemAan		(Joomla module Bas)&lt;br /&gt;
PasUserWachtwoordAan		(beheer.hcc.nl Hobbynet gebruikers portal)&lt;br /&gt;
PasWachtwoordAan		(Joomla module Bas)&lt;br /&gt;
RegistreerGast			(bezoekersregistratie)&lt;br /&gt;
ResetHCCCode                    (Joomla module Bas)&lt;br /&gt;
RuimJoomlaTokenOp               (Joomla module Bas)&lt;br /&gt;
SchrijfNietlidInOpBulletin      (Joomla site bulletin module Bas)&lt;br /&gt;
SchrijfNieuwLidIn               (Joomla CRM module Bas)&lt;br /&gt;
ToonOnderwerpAutorisatie        (Joomla template sites)&lt;br /&gt;
UpdateContactEmail		(Joomla module Bas)&lt;br /&gt;
UpdateContactGegevens		(Joomla module Bas)&lt;br /&gt;
UpdateMobiel                    (Joomla module Bas)&lt;br /&gt;
UpdateNAW                       (Joomla module Bas)&lt;br /&gt;
UpdateOTP                       (Joomla module Bas)&lt;br /&gt;
UpdateTelefoon			(Joomla module Bas)&lt;br /&gt;
UpdateVoorletters		(Joomla module Bas)&lt;br /&gt;
UpdateVoornaam			(Joomla module Bas)&lt;br /&gt;
Upload_CSV_bestand              (CRM webproxy)&lt;br /&gt;
ValideerPWResetToken            (Joomla module Bas)&lt;br /&gt;
ValideerWachtwoordEisen		(Joomla module Bas)&lt;br /&gt;
Verwerk_JSON_mutatie            (CRM webproxy)&lt;br /&gt;
VerwijderNietLid		(Joomla beheer module Bas)&lt;br /&gt;
VerwijderOnderwerp              (Joomla template sites)&lt;br /&gt;
VraagLidgegevensTokenAan	(bezoekersregistratie)&lt;br /&gt;
WijzigGebruikersGegevens	(kantoor en Joomla template sites, ww aanpassen van gebruiker)&lt;br /&gt;
ZoekGroeperingsLid		(secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
ZoekHCCLid			(VZ portal)&lt;br /&gt;
ZoekKaderLeden			(Joomla kadernet module Bas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-ldap en/of HCC-net aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** Joomla sites, www.hcc.nl **&lt;br /&gt;
// 1.1 controleer of een gebruiker bestaat - optie 1&lt;br /&gt;
// (authenticatie op basis van hccLidnr en hccCode)&lt;br /&gt;
// Alleen bedoeld om gebruikers op www.hcc.nl op basis van het lidnr het ww te laten wijzigen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GebruikerBestaatControle&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039; =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;  =&amp;gt; $hccCode,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $method,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;);&lt;br /&gt;
    if ($hccLidnr      != &#039;&#039;) { $reply[&#039;hccLidnr&#039;]      = $hccLidnr;      }&lt;br /&gt;
    if ($hccLogin      != &#039;&#039;) { $reply[&#039;hccLogin&#039;]      = $hccLogin;      }&lt;br /&gt;
    if ($hccPseudoniem != &#039;&#039;) { $reply[&#039;hccPseudoniem&#039;] = $hccPseudoniem; }&lt;br /&gt;
    if ($cn            != &#039;&#039;) { $reply[&#039;cn&#039;]            = $cn;            }&lt;br /&gt;
    if ($sn            != &#039;&#039;) { $reply[&#039;sn&#039;]            = $sn;            }&lt;br /&gt;
    if ($mail          != &#039;&#039;) { $reply[&#039;mail&#039;]          = $mail;          }&lt;br /&gt;
    if ($mailHccnet    != &#039;&#039;) { $reply[&#039;mailHccnet&#039;]    = $mailHccnet;    }&lt;br /&gt;
    if ($hccRegio      != &#039;&#039;) { $reply[&#039;hccRegio&#039;]      = $hccRegio;      }&lt;br /&gt;
    if ($hccIG         != &#039;&#039;) { $reply[&#039;hccIG&#039;]         = $hccIG;         }&lt;br /&gt;
    if ($hccRol        != &#039;&#039;) { $reply[&#039;hccRol&#039;]        = $hccRol;        }&lt;br /&gt;
    if ($ProfielBekend != &#039;&#039;) { $reply[&#039;ProfielBekend&#039;] = $ProfielBekend; }&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
// op basis van hccLidnummer en hccCode &lt;br /&gt;
// Essentiele aanroep, gebruikt vanuit mijnhcc.nl (lidnr + hccCode)&lt;br /&gt;
// Ook gebruikt t.b.v. wachtwoord-vergeten procedure op de Joomla template sites&lt;br /&gt;
// Als de profielpagina nog niet is doorlopen wordt deze aanroep afgekeurd.&lt;br /&gt;
//&lt;br /&gt;
// Ook gebruikt om gebruiker rechtstreeks vanaf Joomla template sites wachtwoord te&lt;br /&gt;
// laten aanpassen (op basis van lidnummer en hcc code)&lt;br /&gt;
//&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;            =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Gebruikersgegevens gewijzigd&#039;,&lt;br /&gt;
    &#039;hccLogin&#039; =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;cn&#039;       =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;       =&amp;gt; $sn);&lt;br /&gt;
&lt;br /&gt;
// 2.3 wijzig wachtwoord - optie 3&lt;br /&gt;
// (t.b.v. VZ-portal)&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
// * Als hccLidnr gevuld is, dan wordt hccLidnr gebruikt om het juiste record te zoeken&lt;br /&gt;
//   Als hccLidnr leeg   is, dan wordt hccLogin gebruikt om het juiste record te zoeken&lt;br /&gt;
//   1 van beide velden MOET aanwezig zijn&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;        =&amp;gt; $beheerLogin,    // beheerder lidnummer&lt;br /&gt;
      &#039;beheerPassword&#039;     =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
     [&#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,]&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. ophalen van de opt-in keuzes op de beheer pagina **&lt;br /&gt;
// 2.6 Geef de complete lijst met opt-ins van dit lid&lt;br /&gt;
// (LET OP: authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
     [&#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;       =&amp;gt; $hccLogin,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptInLijst opgehaald&#039;,&lt;br /&gt;
    &#039;hccOptIn&#039; =&amp;gt; $hccOptIn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gebruikersnaam, pseudoniem &lt;br /&gt;
//     en wachtwoord tevens in LDAP op&lt;br /&gt;
// (authenticatie op basis van hcc lidnummer en hcc-code)&lt;br /&gt;
// ** Deze gegevens worden doorgezet naar hccnet.nl (action=4) **&lt;br /&gt;
// &lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;             =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_hccLogin&#039;      =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
      &#039;nieuw_userPassword&#039;  =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem,&lt;br /&gt;
     [&#039;ServerID&#039;            =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;              =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;       =&amp;gt; &#039;Gebruiker aangemaakt&#039;,&lt;br /&gt;
    &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
    &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;       |&lt;br /&gt;
                 &#039;Gebruikersnaam bestaat al&#039;  |&lt;br /&gt;
                 &#039;Pseudoniem bestaat al&#039;      |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.3 Haal al mijn gegevens&lt;br /&gt;
// (wordt gebruikt door de Joomla inlogmodule)&lt;br /&gt;
// Voor gebruik over de proxy t.b.v. de Android app kan compact=TRUE meegegeven worden.&lt;br /&gt;
// In dat geval worden enkel de meest essentiele gegevens teruggestuurd&lt;br /&gt;
// Voor gebruik na MaakGebruikerAan kan deze functie ook op basis van hccLidnr en JoomlaToken&lt;br /&gt;
// worden aangeroepen&lt;br /&gt;
// De optionele parameter &#039;PrevSiteID&#039; is bedoeld voor single-sign-on. Op basis van JoomlaToken,&lt;br /&gt;
// hccLidnr en PrevSiteID worden dan de credentials gevalideerd. Als die kloppen, geeft deze aanroep&lt;br /&gt;
// een 2e JoomlaToken terug, maar dan uitgegeven op basis van SiteID.&lt;br /&gt;
// Als PrevSiteID leeg is, dan wordt het token op basis van siteID gevalideerd.&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,]&lt;br /&gt;
     [&#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;PrevSiteID&#039;   =&amp;gt; $PrevSiteID,]&lt;br /&gt;
     [&#039;compact&#039;      =&amp;gt; $compact,]        // leeg of &#039;TRUE&#039;&lt;br /&gt;
     [&#039;hccGroepering&#039;=&amp;gt; $hccGroepering,]  // Een testgebruiker mag alleen op deze site inloggen&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccRegio&#039;           =&amp;gt; $hccRegio,&lt;br /&gt;
    &#039;hccIG&#039;              =&amp;gt; $hccIG,&lt;br /&gt;
    &#039;hccRol&#039;             =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;hccAutorisatie&#039;     =&amp;gt; $hccAutorisatie,&lt;br /&gt;
    &#039;cn&#039;                 =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;                 =&amp;gt; $sn,&lt;br /&gt;
    &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
   [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccPseudoniem&#039;      =&amp;gt; $hccPseudoniem,&lt;br /&gt;
    &#039;givenname&#039;          =&amp;gt; $givenname,&lt;br /&gt;
    &#039;hccAanhef&#039;          =&amp;gt; $hccAanhef,&lt;br /&gt;
    &#039;hccGeslacht&#039;        =&amp;gt; $hccGeslacht,&lt;br /&gt;
    &#039;hccTussenVoegsels&#039;  =&amp;gt; $hccTussenVoegsels,&lt;br /&gt;
    &#039;hccAchternaam&#039;      =&amp;gt; $hccAchternaam,&lt;br /&gt;
    &#039;hccStraatnaam&#039;      =&amp;gt; $hccStraatnaam,&lt;br /&gt;
    &#039;hccHuisnummer&#039;      =&amp;gt; $hccHuisnummer&lt;br /&gt;
    &#039;hccPostcode&#039;        =&amp;gt; $hccPostcode,&lt;br /&gt;
    &#039;hccWoonplaats&#039;      =&amp;gt; $hccWoonplaats,&lt;br /&gt;
    &#039;hccLand&#039;            =&amp;gt; $hccLand,&lt;br /&gt;
    &#039;hccTelefoon&#039;        =&amp;gt; $hccTelefoon,&lt;br /&gt;
    &#039;mail&#039;               =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;         =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;       =&amp;gt; $hccKaderMail, &lt;br /&gt;
    &#039;hccKaderForward&#039;    =&amp;gt; $hccKaderForward,&lt;br /&gt;
    &#039;hccKaderToonMobiel&#039; =&amp;gt; $hccKaderToonMobiel,&lt;br /&gt;
    &#039;hccOptIn&#039;           =&amp;gt; $hccOptIn,&lt;br /&gt;
    &#039;ProfielBekend&#039;      =&amp;gt; $ProfielBekend,&lt;br /&gt;
    &#039;hccBeginDatum&#039;      =&amp;gt; $hccBeginDatum,&lt;br /&gt;
    &#039;testaccount&#039;        =&amp;gt; is_testaccount(),     // &#039;TRUE&#039; | &#039;FALSE&#039;&lt;br /&gt;
    &#039;hccOtpKey&#039;          =&amp;gt; $hccOtpKey,&lt;br /&gt;
    &#039;hccOtep&#039;            =&amp;gt; $hccOtep,&lt;br /&gt;
   [&#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,     // in Mb&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald;]]);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de opt-in keuzes op een Joomla site **&lt;br /&gt;
// H.4 Pas 1 opt-in van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van hccLidnr, JoomlaToken en siteID)&lt;br /&gt;
//          of&lt;br /&gt;
//          authenticatie op basis van hccLidnr en OptOutToken (voor een directe uitschrijving door een lid)&lt;br /&gt;
// Als hccLidnummer gevuld is, dan is dat het lidnummer waar de mutatie op moet worden uitgevoerd.&lt;br /&gt;
// Dat kan alleen als de aanvrager HCC#LAD of HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
     [&#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;OptOutToken&#039;  =&amp;gt; $OptOutToken,]&lt;br /&gt;
     [&#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,]&lt;br /&gt;
      &#039;hccOptIn&#039;     =&amp;gt; $hccOptIn,&lt;br /&gt;
      &#039;actie&#039;        =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptIn aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials | Token ongeldig | Token verlopen&#039;);&lt;br /&gt;
    &lt;br /&gt;
// H.5 Zoek kaderleden NAW (t.b.v. de Joomla kadersite)&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
//&lt;br /&gt;
// * Er dient minstens 1 zoekcriterium opgegeven te worden.&lt;br /&gt;
// * Als zowel hccRegio als tegelijk ook hccIG opgegeven worden is de uitkomst onvoorspelbaar.&lt;br /&gt;
// * Als compact=TRUE worden enkel lidnummer, cn en sn in het antwoord gezet&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
     [&#039;hccIG&#039;       =&amp;gt; $hccIG,]&lt;br /&gt;
     [&#039;hccRol&#039;      =&amp;gt; $hccRol,]&lt;br /&gt;
     [&#039;hccLocatie&#039;  =&amp;gt; $hccLocatie,]&lt;br /&gt;
     [&#039;achternaam&#039;  =&amp;gt; $achternaam,]&lt;br /&gt;
     [&#039;compact&#039;     =&amp;gt; $compact]));        // leeg of &#039;TRUE&#039;&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Kaderleden opgevraagd&#039;&lt;br /&gt;
    &#039;Kaderleden&#039;      =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidNummer&#039;  =&amp;gt; $hccLidNummer,&lt;br /&gt;
      &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccAanhef&#039;     =&amp;gt; $hccAanhef,&lt;br /&gt;
      &#039;givenname&#039;     =&amp;gt; $givenname,&lt;br /&gt;
      &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
      &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
      &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;]);&lt;br /&gt;
&lt;br /&gt;
// H.9 PasKaderGegevensAan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
// Om de kaderleden hun forward in te laten stellen,&lt;br /&gt;
// en tegelijkertijd de opt-in / opt-out voor hccToonMobiel te laten regelen&lt;br /&gt;
// Kan tevens het kader email wachtwoord aanpassen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;         =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;            =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;              =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;hccKaderForward&#039;     =&amp;gt; $hccKaderForward,    // &#039;&#039; | $mail | $mailHccNet&lt;br /&gt;
      &#039;hccKaderToonMobiel&#039;  =&amp;gt; $hccKaderToonMobiel, // &#039;TRUE&#039; | &#039;FALSE&#039; | &#039;NULL&#039;&lt;br /&gt;
     [&#039;nieuw_kaderPassword&#039; =&amp;gt; $nieuw_kaderPassword]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;kadergegevens aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;|&#039;Alleen kaderleden mogen deze aanroep uitvoeren&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** Portal beheer.hcc.nl&lt;br /&gt;
// ** H.10 PasUserWachtwoordAan&lt;br /&gt;
// ** Betalende Hobbynet gebruikers kunnen hiermee hun wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van hccLogin en userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;         =&amp;gt; $username,&lt;br /&gt;
      &#039;userpassword&#039;     =&amp;gt; $password,&lt;br /&gt;
      &#039;hobbynetAccount&#039;  =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;nieuw_wachtwoord&#039; =&amp;gt; $nieuw_wachtwoord,&lt;br /&gt;
      &#039;ServerID&#039;         =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;           =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;         =&amp;gt; $remoteAddr));        &lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;     |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij gebruiker $hccLogin&#039; |&lt;br /&gt;
                 &#039;Kan ww van account $hobbynetAccount niet aanpassen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.11 Pas het pseudoniem van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Pseudoniem aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039; | &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.12 Controleer of een opgegeven wachtwoord aan de minimum eisen voldoet&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Wachtwoord voldoet aan de minimale eisen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Wachtwoord voldoet niet aan de minimale eisen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit een Joomla template site kunnen gebruikers hiermee hun eigen wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van JoomlaToken, lidnummer, siteID. Extra controle via userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;userpassword&#039;       =&amp;gt; $password,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13.1 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee hun eigen wachtwoord resetten&lt;br /&gt;
// (authenticatie op basis van PWResetToken en hccLogin).&lt;br /&gt;
// (Als de aanroep geslaagd is, dan is daarna het PWResetToken ongeldig)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039;       =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.14 MaakPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee een wachtwoord reset aanvragen&lt;br /&gt;
//    Deze aanroep geeft naast het PWResetToken ook het contact emailadres mee terug,&lt;br /&gt;
//    zodat Joomla een reset-mail kan sturen&lt;br /&gt;
// (acties op basis van gebruikersnaam)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;   =&amp;gt; $username,&lt;br /&gt;
      &#039;ServerID&#039;   =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;     =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;   =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
    &#039;mail&#039;         =&amp;gt; $mail,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token aangemaakt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.15 ValideerPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers een wachtwoord reset aanvragen&lt;br /&gt;
//    Controleer dat het hier om een bestaand (en nog niet gebruikt) token gaat&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token gevonden&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;hccLogin bestaat niet&#039; | &#039;PWResetToken bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.16 Ruim een bestaand JoomlaToken op&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;JoomlaToken opgeruimd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuist JoomlaToken&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.17 GeefAantalDomeinen&lt;br /&gt;
// ** Vraag het aantal domeinen op van een betalende Hobbynet gebruiker (t.b.v. IDEAL betaling)&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;     =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;ServerID&#039;        =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;          =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;        =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
    &#039;AantalDomeinen&#039;  =&amp;gt; $aantalDomeinen,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;aantal domeinen opgevraagd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij deze gebruiker&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18 ResetHCCCode&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // geheime credentials van de site&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // geheime credentials van de site&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18.1 ResetHCCCode (hcc kantoor aanroep)&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,    // Het Joomla token van de sessie van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,       // Het lidnummer van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de hccLogin van een gebruiker (Hobbynet functie op Joomla site)  **&lt;br /&gt;
// H.19 Pas de hccLogin van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// hccLidnummer is het lidnummer waar de mutatie op moet worden uitgevoerd&lt;br /&gt;
// Kan alleen als de aanvrager HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,     // lidnummer van de aanvrager&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,  // JoomlaToken van de aanvrager&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer, // pas de hccLogin van dit lidnummer aan&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,     // dit is de gewenste nieuwe hccLogin&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;hccLogin aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039;       | &lt;br /&gt;
                 &#039;Gebruikersnaam al in gebruik&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. het aanmaken van een testaccount door een webmaster&lt;br /&gt;
// H.20 Maak een testaccount aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// Kan alleen als de aanvrager WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakTestLogin&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,     // JoomlaToken van de aanvrager&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,    // lidnummer van de aanvrager&lt;br /&gt;
      &#039;hccRol&#039;        =&amp;gt; $hccRol,          // (mag leeg zijn)&lt;br /&gt;
      &#039;hccGroepering&#039; =&amp;gt; $hccGroepering,   // (regio of IG)&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;MaakTestLogin&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Tijdelijk test account aangemaakt&#039;,&lt;br /&gt;
    &#039;TestAccountNaam&#039; =&amp;gt; &#039;test-&amp;lt;groepering&amp;gt;-&amp;lt;hccLogin&amp;gt;&#039;&lt;br /&gt;
    &#039;userpassword&#039;    =&amp;gt; $nieuw_userpassword,&lt;br /&gt;
    &#039;hccGroepering&#039;   =&amp;gt; $hccGroepering,&lt;br /&gt;
    &#039;hccRol&#039;          =&amp;gt; $hccRol);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MaakTestLogin&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// Joomla webbeheerder functie&lt;br /&gt;
// ** t.b.v. aanpassen van de OneTime Passwords van de webbeheerder&lt;br /&gt;
// H.21 Pas de OTP gegevens van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van hccLidnr, JoomlaToken en siteID)&lt;br /&gt;
// Als hccLidnummer gevuld is, dan is dat het lidnummer waar de mutatie op moet worden uitgevoerd.&lt;br /&gt;
// Dat kan alleen als de aanvrager HCC#LAD of HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateOTP&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,]&lt;br /&gt;
      &#039;hccOtpKey&#039;    =&amp;gt; $hccOtpKey, // De otp encryptie key van de gebruiker (mag leeg zijn )&lt;br /&gt;
      &#039;hccOtep       =&amp;gt; $hccOtep,   // Het one time recovery password (mag leeg zijn )&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;UpdateOTP&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OTP gegevens aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;UpdateOTP&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// 3.1 Geef mijn lidnummer&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Lidnummer opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039; =&amp;gt; $hccLidnr);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Deze gegevens worden opgevraagd bij hccnet.nl (action=3)       **&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccLogin&#039; =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Enkel voor gebruik vanaf de kantoor portal **&lt;br /&gt;
// **  t.b.v. het hernoemen van accounts in CRM  **&lt;br /&gt;
// 8.3 Controleer of een Pseudoniem op dit moment bestaat		??? NIET GEBRUIKT ??&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken zoekpagina **&lt;br /&gt;
// A.1 Zoek alle bij de query passende hcc leden&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;ZoekMethode&#039;    =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;     =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;     =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $Groepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (eerste deel van) de naam               |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | emailadres          | (eerste deel van) e-mail adres          |&lt;br /&gt;
 | gebruikersnaam      | (eerste deel van) de login naam         |&lt;br /&gt;
 | pseudoniem          | (eerste deel van) het pseudoniem        |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | niet_leden          | het volledige niet-lid lidnummer        |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
   [&#039;ExtraInfo&#039;   =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;     =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidnummer&#039;      =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;hccBeginDatum&#039;     =&amp;gt; $hccBeginDatum,&lt;br /&gt;
      &#039;hccEindDatum&#039;      =&amp;gt; $hccEindDatum,&lt;br /&gt;
      &#039;sn&#039;                =&amp;gt; $sn,&lt;br /&gt;
      &#039;givenName&#039;         =&amp;gt; $givenName,&lt;br /&gt;
      &#039;hccGeslacht&#039;       =&amp;gt; $hccGeslacht,&lt;br /&gt;
      &#039;hccStraatnaam&#039;     =&amp;gt; $hccStraatnaam,&lt;br /&gt;
      &#039;hccHuisnummer&#039;     =&amp;gt; $hccHuisnummer&lt;br /&gt;
      &#039;hccHuisToevoeging&#039; =&amp;gt; $hcchuisToevoeging,&lt;br /&gt;
      &#039;hccPostcode&#039;       =&amp;gt; $hccPostcode,&lt;br /&gt;
      &#039;hccWoonplaats&#039;     =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccLand&#039;           =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;hccTelefoon&#039;       =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;         =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;mail&#039;              =&amp;gt; $mail,&lt;br /&gt;
      &#039;mailHccnet&#039;        =&amp;gt; $mailHccnet,&lt;br /&gt;
      &#039;hccIG&#039;             =&amp;gt; $hccIG,&lt;br /&gt;
      &#039;hccRol&#039;            =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccLogin&#039;          =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;hccPseudoniem&#039;     =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ProfielBekend&#039;     =&amp;gt; &#039;TRUE&#039; | &#039;FALSE&#039;])*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. beheer.hcc.nl **&lt;br /&gt;
// A.3 Zoek alle bij de query passende hcc leden van deze groepering&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
      &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;  =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;  =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,] // Alleen voor gebruik op de&lt;br /&gt;
                                      // bijeenkomsten aanwezigheidsregistratie pagina&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (deel van) de naam                      |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | nieuwe_leden        | YYYYMMDD vanaf waar gezocht moet worden |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | kaderleden          | n.v.t.                                  |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;   =&amp;gt;&lt;br /&gt;
      [array(&lt;br /&gt;
         &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
         &#039;hccBeginDatum&#039; =&amp;gt; $hccBeginDatum,&lt;br /&gt;
         &#039;hccEindDatum&#039;  =&amp;gt; $hccEindDatum,&lt;br /&gt;
         &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
         &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
         &#039;givenName&#039;     =&amp;gt; $givenName,&lt;br /&gt;
         &#039;hccAchternaam&#039; =&amp;gt; $hccAchternaam,&lt;br /&gt;
         &#039;hccTussenVoegsels =&amp;gt; hccTussenVoegsels,  &lt;br /&gt;
         &#039;hccGeslacht&#039;   =&amp;gt; $hccGeslacht,&lt;br /&gt;
         &#039;hccStraatnaam&#039; =&amp;gt; $hccStraatnaam,&lt;br /&gt;
         &#039;hccHuisnummer&#039; =&amp;gt; $hccHuisnummer, &lt;br /&gt;
         &#039;hccPostcode&#039;   =&amp;gt; $hccPostcode,&lt;br /&gt;
         &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
         &#039;hccLand&#039;       =&amp;gt; $hccLand, &lt;br /&gt;
         &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
         &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
         &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
         &#039;mailHccnet&#039;    =&amp;gt; $mailHccnet,&lt;br /&gt;
         &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail,&lt;br /&gt;
         &#039;hccRegio&#039;      =&amp;gt; $hccRegio,&lt;br /&gt;
         &#039;hccIG&#039;         =&amp;gt; $hccIG,&lt;br /&gt;
         &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
         &#039;hccLogin&#039;      =&amp;gt; $hccLogin,&lt;br /&gt;
         &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem)]*));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) niet gevonden&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten **&lt;br /&gt;
// A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,    // lid dat aanwezig gemeld moet worden&lt;br /&gt;
     [&#039;correctie&#039;   =&amp;gt; $hccLidnr,]   // lid dat gecorrigeerd moet worden&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Bezoeker weggeschreven&#039;,&lt;br /&gt;
    &#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
      // info van deze bezoeker&lt;br /&gt;
      &#039;cn&#039;               =&amp;gt; $cn,                // cn (Verbeek, H.J.)&lt;br /&gt;
      &#039;hccGeslacht&#039;      =&amp;gt; $hccGeslacht,       // hccGeslacht van de bezoeker&lt;br /&gt;
      &#039;groeperingslid&#039;   =&amp;gt; $groeperingslid,    // TRUE of FALSE: is deze persoon lid van deze groepering&lt;br /&gt;
      &#039;mijnGroeperingen&#039; =&amp;gt; $mijnGroeperingen,  // komma-gescheiden lijst (regio, [hccIG]*)&lt;br /&gt;
      &#039;aantalBezoeken&#039;   =&amp;gt; $aantalBezoeken,    // hoe vaak heeft dit lid deze bijeenkomst bezocht&lt;br /&gt;
      // info van de bijeenkomst&lt;br /&gt;
      &#039;AantalBezoekers&#039;  =&amp;gt; $AantalBezoekers);  // aantal bezoekers van deze bijeenkomst&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.5 Vraag Lidgegevens token aan (geldig voor dit lid, en deze groepering, op deze datum)&lt;br /&gt;
// Als geen datum gegeven is, dan is het token vandaag geldig&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnummer, // vraag het token voor dit lid aan&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering,   // zoek binnen deze groepering&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]       // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;     =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;     =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;    =&amp;gt; &#039;Token opgevraagd&#039;,&lt;br /&gt;
    &#039;groepering&#039; =&amp;gt; $Groepering,&lt;br /&gt;
    &#039;token&#039;      =&amp;gt; $token,&lt;br /&gt;
    &#039;sn&#039;         =&amp;gt; $sn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.6 Toon bezoekersoverzicht&lt;br /&gt;
// (authenticatie op basis van lidnummer en bezoekersregistratie token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bezoekersoverzicht opgevraagd&#039;,&lt;br /&gt;
    &#039;Bezoekers&#039; =&amp;gt; $bezoekers,&lt;br /&gt;
   [&#039;Locatie&#039;   =&amp;gt; $Locatie]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// A.7 Geef het array met alle locaties&lt;br /&gt;
// (of beperk dit tot de locaties van de groepering $Groepering)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij hccToonInJoomla aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij ToonOpKaderNet aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocaties&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $hccGroepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;       =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;      =&amp;gt; &#039;Geen locaties gevonden voor groepering $hccGroepering&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// A.8 Registreer een niet-hcclid als bezoeker tijdens een bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RegistreerGast&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039;   =&amp;gt; $lidnr,        // credentials&lt;br /&gt;
      &#039;AccountCode&#039;   =&amp;gt; $AccountCode,  // credentials&lt;br /&gt;
      &#039;token&#039;         =&amp;gt; $token,        // credentials&lt;br /&gt;
      &#039;Bijeenkomst&#039;   =&amp;gt; $groepering,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;naam&#039;          =&amp;gt; $naam,&lt;br /&gt;
      &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;buitenland&#039;    =&amp;gt; $buitenland,&lt;br /&gt;
     [&#039;nietLidNummer&#039; =&amp;gt; $nietLidNummer,]&lt;br /&gt;
     [&#039;instructies&#039;   =&amp;gt; $instructies,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $aanroep,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid als bezoeker geregistreerd&#039;,&lt;br /&gt;
    &#039;Result&#039;  =&amp;gt; $result_array);&lt;br /&gt;
&lt;br /&gt;
// A.9 Geef het array met alle locatienamen&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;           =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locatienamen niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;          =&amp;gt; &#039;Geen locatienamen gevonden&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
// A.10 Schrijf een niet-lid in op een bulletin&lt;br /&gt;
// (2019.12.05: wordt actief gebruikt in Joomla module)&lt;br /&gt;
//      Deze aanroep mag *ook* worden gebruikt om een wel-lid in te schrijven.&lt;br /&gt;
//      Voorwaarde is dat bewezen is dat er controle bestaat over het opgegeven email adres&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
      &#039;hccOptin&#039;       =&amp;gt; $hccOptin,       // bulletin waarop ingeschreven wordt&lt;br /&gt;
      &#039;hccOptinSource&#039; =&amp;gt; $hccOptinSource, // site waar aanmelding vandaan komt&lt;br /&gt;
      &#039;Email&#039;          =&amp;gt; $Email,          // niet-lid: email adres&lt;br /&gt;
      &#039;Naam&#039;           =&amp;gt; $Naam,           // niet-lid: naam&lt;br /&gt;
     [&#039;hccLidNummer&#039;   =&amp;gt; $hccLidNummer,]  // optioneel: ik ben lid, dit is mijn lidnummer&lt;br /&gt;
     [&#039;Postcode&#039;       =&amp;gt; $Postcode,]      // optioneel: niet-lid: postcode&lt;br /&gt;
     [&#039;Huisnummer&#039;     =&amp;gt; $Huisnummer,]    // optioneel: niet-lid: huisnummer&lt;br /&gt;
     [&#039;hccGeslacht&#039;    =&amp;gt; $hccGeslacht,] // optioneel: niet-lid: geslacht (M/V/O)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Inschrijving op bulletin gelukt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                   &#039;Gegevenscombinatie onjuist&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid DN syntax&#039;    |&lt;br /&gt;
                   &#039;Invalid credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.11 Toon bezoekers aantallen&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
//&lt;br /&gt;
// ==&amp;gt; Mag weg: laatste aanroep 2018.12.15 &amp;lt;==&lt;br /&gt;
//&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]      // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;BezoekersAantallen opgevraagd&#039;,&lt;br /&gt;
    &#039;Datum&#039;       =&amp;gt; $datum,&lt;br /&gt;
    &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,&lt;br /&gt;
    &#039;Bezoekers&#039;   =&amp;gt; array(&lt;br /&gt;
      [HCC!seniorenacademie] =&amp;gt; Array(&lt;br /&gt;
        [Gorinchem] =&amp;gt; 15&lt;br /&gt;
        [Woerden]   =&amp;gt; 36)&lt;br /&gt;
      ...));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.12 GeefAlleBulletins&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Bulletins opgevraagd&#039;,&lt;br /&gt;
    &#039;bulletins&#039;       =&amp;gt; $bulletins);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.13 ExpandeerPostcode&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Postcode opgevraagd&#039;,&lt;br /&gt;
    &#039;detailgegevens&#039;  =&amp;gt; $detailgegevens);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.25 UpdateNAW&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateNAW&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;toevoeging&#039;    =&amp;gt; $toevoeging,&lt;br /&gt;
      &#039;straat&#039;        =&amp;gt; $straat,&lt;br /&gt;
      &#039;woonplaats&#039;    =&amp;gt; $woonplaats,&lt;br /&gt;
      &#039;landcode&#039;      =&amp;gt; $landcode,&lt;br /&gt;
      &#039;email&#039;         =&amp;gt; $email,&lt;br /&gt;
      &#039;voornaam&#039;      =&amp;gt; $voornaam,&lt;br /&gt;
      &#039;voorletters&#039;   =&amp;gt; $voorletters,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateContactGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Contactgegevens bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.18 NormaliseerTelefoon&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLand&#039;        =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Telefoonnummer genormaliseerd&#039;,&lt;br /&gt;
    &#039;Telefoonnummer&#039;  =&amp;gt; $Telefoonnummer);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.20 UpdateMobiel&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateMobiel&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateMobiel&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Mobiel nummer bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.21 HaalIGBedragenOp&lt;br /&gt;
//      Geef alle IG&#039;s waar je zelf lid van kunt worden, inclusief het bijbehorende bedrag&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Interessegroepen en bedragen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.22 HaalTariefGroepenOp&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Tariefgroepen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.23 PasInteressegroepAan&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;nieuw&#039;         =&amp;gt; $IG_lijst_nieuw,]&lt;br /&gt;
     [&#039;weg&#039;           =&amp;gt; $IG_lijst_weg,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;IG keuzen aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.24 GeefSSOUrls&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;SSO_urls&#039;        =&amp;gt; $sso_urls,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Single Sign On URLs opgevraagd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken beheer pagina **&lt;br /&gt;
// A.26 Verwijder een niet-lid record&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnummer,   // het te verwijderen niet-lid nummer&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Niet-lid record verwijderd&#039;,&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid record niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** HenZ **&lt;br /&gt;
// ** t.b.v. daily cron job  **&lt;br /&gt;
// ** t.b.v. dagelijkse opschoon jobs Joomla template sites **&lt;br /&gt;
// C.1 Vraag de lijst met uitgeschreven leden op&lt;br /&gt;
//     Dit kan beperkt worden tot een bepaalde regio of interessegroep&lt;br /&gt;
//     Daarnaast kan het tijdvak waarin gezocht wordt vrij gekozen worden&lt;br /&gt;
//     (gesteld dat de LDAP database nog leden uit die periode bevat)&lt;br /&gt;
//     Antwoord: lijst met (lidnummer, hccLogin, sn,&lt;br /&gt;
//                          datum einde lidmaatschap (formaat:YYYYMMDD))&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; GeefUitgeschrevenLeden &amp;lt;== (oud: GeefOpgezegdeLeden)&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccRegio&#039;       =&amp;gt; $hccRegio,    // of leeg&lt;br /&gt;
      &#039;hccIg&#039;          =&amp;gt; $hccIg,       // of leeg&lt;br /&gt;
      &#039;datum_vanaf&#039;    =&amp;gt; $datum_sinds, // YYYY-MM-DD of YYYYMMDD of leeg (leeg: 3 dagen geleden)&lt;br /&gt;
      &#039;datum_tot&#039;      =&amp;gt; $datum_tot,   // YYYY-MM-DD of YYYYMMDD of leeg (leeg: vandaag)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Uitgeschreven leden&#039;,&lt;br /&gt;
   [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
   [&#039;hccIg&#039;       =&amp;gt; $hccIg,]&lt;br /&gt;
   [&#039;datum_vanaf&#039; =&amp;gt; $datum_vanaf,]&lt;br /&gt;
   [&#039;datum_tot&#039;   =&amp;gt; $datum_tot,]&lt;br /&gt;
   [&#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
     [array(&lt;br /&gt;
        &#039;hccLogin&#039;               =&amp;gt; $hccLogin,&lt;br /&gt;
        &#039;hccLidNummer&#039;           =&amp;gt; $hccLidnummer,&lt;br /&gt;
        &#039;sn&#039;                     =&amp;gt; $sn,&lt;br /&gt;
        &#039;DatumEindeLidmaatschap&#039; =&amp;gt; $DatumEindeLidmaatschap)]*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCCpartner aanroepen ===&lt;br /&gt;
(interface versie 1)&amp;lt;br&amp;gt;&lt;br /&gt;
(oude interface, niet meer gebruiken!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.1 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    array(&#039;partnerLogin&#039;,    $partnerLogin),&lt;br /&gt;
    array(&#039;partnerPassword&#039;, $partnerPassword),&lt;br /&gt;
    array(&#039;hccLidnummer&#039;,    $hcclidnummer),&lt;br /&gt;
    array(&#039;postcode&#039;,        $postcode)));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;TRUE&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;FALSE&#039;));&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Onjuiste credentials&#039;));&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
     &#039;HCCpartner&#039;,&lt;br /&gt;
     array(&lt;br /&gt;
       &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
       array(&#039;parameter&#039;, $iets)));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;OnbekendeAanroep&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Opdracht onbekend&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCCpartners aanroepen ===&lt;br /&gt;
(interface versie 2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.2 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;          =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
      &#039;partnerLogin&#039;    =&amp;gt; $partnerLogin,&lt;br /&gt;
      &#039;partnerPassword&#039; =&amp;gt; $partnerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hcclidnummer,&lt;br /&gt;
      &#039;postcode&#039;        =&amp;gt; $postcode,&lt;br /&gt;
     [&#039;ServerID&#039;        =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;          =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;        =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;groepering=$groepering&#039;]); // als de partner beperkt is tot 1 groepering&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;FALSE&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;    =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
      &#039;parameter&#039; =&amp;gt; $iets));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Opdracht onbekend&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-kader aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** beheer.hcc.nl **&lt;br /&gt;
// F.2 Controleer of dit een kaderlid is&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsKaderLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Is kaderlid&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;cn&#039;              =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;              =&amp;gt; $sn,&lt;br /&gt;
    &#039;hccRol&#039;          =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;mail&#039;            =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;      =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;    =&amp;gt; $hccKaderMail,&lt;br /&gt;
    &#039;hccKaderForward&#039; =&amp;gt; $hccKaderForward);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Is geen kaderlid&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.4 Vraag alle groeperingen op&lt;br /&gt;
// Het is mogelijk om een groepering te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  ToonInOverzichtenFilter : attribuut &#039;hccToonInOverzichten&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  BulletinsFilter         : attribuut &#039;hccBulletins&#039;&lt;br /&gt;
//  EmailFilter             : attribuut &#039;hccFunctionalEmail&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;                =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;                  =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;                =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;          =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;BulletinsFilter&#039;         =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;EmailFilter&#039;             =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;&#039; | &#039;TRUE&#039;));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;                  =&amp;gt; &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    &#039;Status&#039;                  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;                 =&amp;gt; &#039;Lijst met groeperingen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;                  =&amp;gt; $groeperingen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;          =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.5 Vraag alle kaderrollen op&lt;br /&gt;
// Het is mogelijk om een kaderrol  te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Lijst met kaderrollen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;             =&amp;gt; $kaderrollen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de kantoor-beheerpagina **&lt;br /&gt;
// F.9 Geef de gevevens van de mailbox van dit kaderlid&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;     =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039;  =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039;));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de Joomla Kadernet module **&lt;br /&gt;
//  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID en als extra hccCode van de aanvrager)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccCode&#039;        =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
      &#039;hccLidnummer    =&amp;gt; $hccLidnummer, // lidnummer van het te muteren hcc lid&lt;br /&gt;
      &#039;hccRol&#039;         =&amp;gt; $hccRol,       // de nieuwe dan wel op te heffen rol&lt;br /&gt;
                                         // de rol &#039;ALLES_WEG&#039; ruimt alle rollen van dit hcc lid voor deze groepering op&lt;br /&gt;
      &#039;actie&#039;          =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Groepering samenstelling aangepast&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Bedankmail gestuuurd aan ex-kaderlid&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Oude rol niet gevonden&#039; |&lt;br /&gt;
		   &#039;Nieuwe rol kan niet samen met bestaande rol&#039; |&lt;br /&gt;
		   &#039;Alleen voorzitter of secretaris kan kadermutaties uitvoeren&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-groepering aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// I.2 controleer of een gebruiker bestaat op basis van de combinatie&lt;br /&gt;
//     lidnummer + postcode + huisnummer&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
// (alternatieve authenticatie mogelijk door lidnummer + hcc-code in te vullen)&lt;br /&gt;
//&lt;br /&gt;
// Aan de aanroeper worden zekere eisen gesteld:&lt;br /&gt;
// * dient een rol te vervullen binnen de groepering &#039;FOR&#039;(forum)&lt;br /&gt;
// * dan wel dient de rol &#039;VRBK&#039; (vraagbaak) te vervullen binnen een groepering&lt;br /&gt;
//&lt;br /&gt;
// Er wordt door de gehele leden-database gezocht, waarna terug wordt gegeven &lt;br /&gt;
// * of dit hcc lid inderdaad bestaat&lt;br /&gt;
// en, als het om een aanvraag van een vraagbaak vrijwilliger gaat, &lt;br /&gt;
// * tevens of het gezochte hcc lid deel uitmaakt van zijn groepering&lt;br /&gt;
//&lt;br /&gt;
// ==&amp;gt; Mag weg: laatste aanroep 2018.07.27 &amp;lt;==&lt;br /&gt;
//&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;        =&amp;gt; [$hccLogin | $hccLidnummer],&lt;br /&gt;
      &#039;userPassword&#039;    =&amp;gt; [$userPassword | $hccCode],&lt;br /&gt;
      &#039;zoekhccLidnr&#039;    =&amp;gt; $zoekhccLidnr,&lt;br /&gt;
      &#039;zoekhccPostcode&#039; =&amp;gt; $zoekhccPostcode,&lt;br /&gt;
      &#039;zoekhccHuisnr&#039;   =&amp;gt; $zoekhccHuisnr,&lt;br /&gt;
      &#039;zoekgroepering&#039;  =&amp;gt; $zoekgroepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens gecontroleerd&#039;,&lt;br /&gt;
   [&#039;Groeperingslid&#039; =&amp;gt; $IsGroeperingLid]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker bestaat niet&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Wel HCC lid, maar geen lid van groepering $groepering&#039; |&lt;br /&gt;
                 &#039;Onvoldoende rechten&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HenZ aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// I.3 Geef de einddatum van een actief dan wel uitgeschreven lid&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
    &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccEindDatum&#039; =&amp;gt; $hccEindDatum (&#039;yyyymmdd&#039; | &#039;&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;Lidnummer niet gevonden&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== (Forum,vraagbaak) onderwerpen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// L.1 MaakOnderwerp&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is aangemaakt&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.2 VerwijderOnderwerp&lt;br /&gt;
&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is verwijderd&#039;,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039;            |&lt;br /&gt;
                   &#039;Geen webmaster&#039;                 |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;         |&lt;br /&gt;
		   &#039;Ruim eerst alle geautoriseerde gebruikers op&#039; |&lt;br /&gt;
		   &#039;Kan onderwerp niet verwijderen&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.3 GeefOnderwerpen &lt;br /&gt;
// Geef het array met de lijst van onderwerpen voor de betreffende groepering&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerpen opgevraagd&#039;,&lt;br /&gt;
    &#039;onderwerpen&#039; =&amp;gt; $onderwerpen); // het array met onderwerpen&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.4 MuteerOnderwerp&lt;br /&gt;
// Pas de description van een onderwerp aan&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
   &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
   array(&lt;br /&gt;
     &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
     &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
     &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
     &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     &#039;groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
     &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
     &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp aangepast&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039; |&lt;br /&gt;
		   &#039;Onderwerp behoort bij andere groepering&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
// Geef kaderlid $kaderLidNr de autorisatie MOD, VRBK of RED bij onderwerp $onderwerp&lt;br /&gt;
// (of haal die autorisatie weg)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
    &#039;onderwerp&#039;      =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;kaderLidNr&#039;     =&amp;gt; $kaderLidNr,&lt;br /&gt;
    &#039;hccAutorisatie&#039; =&amp;gt; &#039;MOD&#039; | &#039;VRBK&#039; | &#039;RED&#039;,&lt;br /&gt;
   [&#039;verwijder&#039;      =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp autorisatie aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Onjuiste autorisatie opgegeven&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Autorisaties opgehaald&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;    =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039;  =&amp;gt; $description,&lt;br /&gt;
    &#039;autorisaties&#039; =&amp;gt; &lt;br /&gt;
      [Array(&lt;br /&gt;
        &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer&lt;br /&gt;
        &#039;cn&#039;              =&amp;gt; $cn&lt;br /&gt;
        &#039;hccAutorisatie&#039;  =&amp;gt; {komma-gescheiden autorisaties})]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Dynamics Cloud (Cayentis) onderwerpen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// M.1 Upload_CSV_bestand&lt;br /&gt;
// De CRM proxy upload de dagelijkse CSV synchronisatie-bestanden naar de XML-RPC server&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;      =&amp;gt; $beheerLogin,     // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039;   =&amp;gt; $beheerPassword,  // xml-rpc password&lt;br /&gt;
    &#039;CSV_bestand_type&#039; =&amp;gt; &#039;1&#039; | &#039;2&#039; | &#039;3&#039; , // 1=Contactpersonen/Hoofdlidmaatschappen&lt;br /&gt;
                                            // 2=Gremiumlidmaatschap codes&lt;br /&gt;
                                            // 3=Gremiumlidmaatschappen&lt;br /&gt;
    &#039;CSV_bestand&#039;      =&amp;gt; $CSV_bestand));   // het CSV bestand (base64 encoded)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bestand opgeslagen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.2 SchrijfNieuwLidIn&lt;br /&gt;
// &lt;br /&gt;
// Maak in het CRM een nieuw HCC lid aan&lt;br /&gt;
// De NAW gegevens worden in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;NAWgegevens&#039;    =&amp;gt; $NAW_Array,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress);&lt;br /&gt;
// $NAW_array = array(&lt;br /&gt;
//   &#039;GeboorteDatum&#039;         =&amp;gt; $geboortedatum,&lt;br /&gt;
//   &#039;Geslacht&#039;              =&amp;gt; $geslacht,&lt;br /&gt;
//   &#039;Voornaam&#039;              =&amp;gt; $voornaam,&lt;br /&gt;
//   &#039;Voorletters&#039;           =&amp;gt; $voorletters,&lt;br /&gt;
//   &#039;Tussenvoegsel&#039;         =&amp;gt; $tussenvoegsel,&lt;br /&gt;
//   &#039;Achternaam&#039;            =&amp;gt; $achternaam,&lt;br /&gt;
//   &#039;Straatnaam&#039;            =&amp;gt; $straatnaam,&lt;br /&gt;
//   &#039;Huisnummer&#039;            =&amp;gt; $huisnummer,&lt;br /&gt;
//   &#039;HuisnummerToevoeging&#039;  =&amp;gt; $huisnummertoevoeging,&lt;br /&gt;
//   &#039;Woonplaats&#039;            =&amp;gt; $woonplaats,&lt;br /&gt;
//   &#039;Postcode&#039;              =&amp;gt; $postcode,&lt;br /&gt;
//   &#039;Land&#039;                  =&amp;gt; $land,&lt;br /&gt;
//   &#039;Telefoonnummer&#039;        =&amp;gt; $telefoonnummer,&lt;br /&gt;
//   &#039;MobielNummer&#039;          =&amp;gt; $mobielnummer,&lt;br /&gt;
//   &#039;Mail&#039;                  =&amp;gt; $mail,&lt;br /&gt;
//   &#039;IBAN&#039;                  =&amp;gt; $IBAN,&lt;br /&gt;
//   &#039;Interessegroep&#039;        =&amp;gt; $IGs, // komma-gescheiden lijst met IG&#039;s&lt;br /&gt;
//   &#039;Geschenk&#039;              =&amp;gt; $geschenk,&lt;br /&gt;
//   &#039;Actiecode&#039;             =&amp;gt; $actiecode,&lt;br /&gt;
//   &#039;Voorwaarden&#039;           =&amp;gt; $Akkoord); // &#039;Akkoord&#039;&lt;br /&gt;
)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;nieuw lid ingeschreven&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;  =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccCode&#039;   =&amp;gt; $hccCode);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.3 Verwerk_JSON_mutatie&lt;br /&gt;
// De CRM proxy kan NAW en/of IG mutaties en/of hccCode mutaties live doorgeven&lt;br /&gt;
// Deze gegevens worden in JSON in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;mutatie_type&#039;   =&amp;gt; &#039;1&#039; | &#039;2&#039;,       // 1=Contactpersoon/Hoofdlidmaatschap&lt;br /&gt;
                                         // 2=Gremiumlidmaatschap&lt;br /&gt;
    &#039;JSON_mutatie&#039;   =&amp;gt; $JSON_mutatie)); // de JSON payload&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Mutatie verwerkt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.4 Vertaal landcode&lt;br /&gt;
// Het CRM werkt met numerieke landcodes, wij met cijfers&lt;br /&gt;
// Vertaal die&lt;br /&gt;
// Er moet in de aanroep 1 veld aanwezig zijn, beide waarden komen in het antwoord terug&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ISO_landcode&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    [&#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,]&lt;br /&gt;
    [&#039;ISO_code   &#039;  =&amp;gt; $ISO_code]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;ISO code lookup geslaagd&#039;,&lt;br /&gt;
    &#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,&lt;br /&gt;
    &#039;ISO_code   &#039;  =&amp;gt; $ISO_code,&lt;br /&gt;
    &#039;ISO_benaming&#039; =&amp;gt; $ISO_benaming); // de descriptive name van deze ISO code&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Kan geen bijpassende vertaling vinden&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.5 MuteerAanmeldingsformulier&lt;br /&gt;
// Sla een JSON veld op in de XML-RPC server zodat deze weer opgehaald kan worden door de websites&lt;br /&gt;
// Authenticatie op basis van hccLidnummer en JoomlaToken&lt;br /&gt;
// Deze mutaties mogen alleen door HN#WM of SITE#WM gedaan worden.&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    MuteerAanmeldingsformulier,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;formulierdata&#039; =&amp;gt; $formulierdata, // JSON veld met alle gegevens voor het aanmeld formulier&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress ));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;MuteerAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;aanmeldingsformulier bijgewerkt&#039;;&lt;br /&gt;
 &lt;br /&gt;
// M.6 HaalAanmeldingsformulier&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    HaalAanmeldingsformulier,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;HaalAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;formulierdata&#039; =&amp;gt; $formulierdata); // JSON veld met alle gegevens voor het aanmeld formulier &lt;br /&gt;
&lt;br /&gt;
// M.7 GeefFactuurOverzicht&lt;br /&gt;
// (authenticatie op basis van hccLidnummer + JoomlaToken + siteID&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    GeefFactuurOverzicht,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),]&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID, &lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;           =&amp;gt; &#039;GeefFactuurOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;           =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;FactuurOverzicht&#039; =&amp;gt; $FactuurOverzicht); &lt;br /&gt;
//  $FactuurOverzicht =&lt;br /&gt;
//     array(&lt;br /&gt;
//       array(&lt;br /&gt;
//         &#039;FactuurID&#039;     =&amp;gt; &#039;a5b93460-4536-ea11-a813-000d3a2c53fa&#039;,&lt;br /&gt;
//         &#039;FactuurNummer&#039; =&amp;gt; &#039;200118673J5&#039;&lt;br /&gt;
//         &#039;FactuurDatum&#039;  =&amp;gt; &#039;2020-01-15&#039;&lt;br /&gt;
//         &#039;bedrag&#039;        =&amp;gt; 42.37&lt;br /&gt;
//         &#039;BetaalStatus&#039;  =&amp;gt; 0]));&lt;br /&gt;
//     )&lt;br /&gt;
&lt;br /&gt;
// M.8 HaalFactuur&lt;br /&gt;
// (authenticatie op basis van JoomlaToken of FactuurToken)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    HaalFactuur,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;FactuurToken&#039;  =&amp;gt; $FactuurToken,]&lt;br /&gt;
      &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalFactuur&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;factuur&#039; =&amp;gt; $factuurgegevens); &lt;br /&gt;
//  $factuurgegevens =&lt;br /&gt;
//    array(&lt;br /&gt;
//         &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
//         &#039;FactuurDatum&#039;  =&amp;gt; $FactuurDatum,&lt;br /&gt;
//         &#039;FactuurID&#039;     =&amp;gt; $FactuurID,&lt;br /&gt;
//         &#039;Bestandsnaam&#039;  =&amp;gt; $Bestandsnaam,&lt;br /&gt;
//         &#039;PDF&#039;           =&amp;gt; $PDF) // base64 encoded PDF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Echo test ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// t.b.v. controle of de verbinding met de XML-RPC server functioneert&lt;br /&gt;
// Eenvoudige echo test&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;echo&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;What&#039;     =&amp;gt; $string,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;echo&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; $string);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HenZ XML-RPC interface ===&lt;br /&gt;
&lt;br /&gt;
Overzicht van XML-RPC procedures die bij HenZ draaien&lt;br /&gt;
(worden via de Hobbynet XML-RPC server afgehandeld)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- Action=2&lt;br /&gt;
  wijzig gebruikersnaam en wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=3&lt;br /&gt;
  controleer of een gebruikersnaam bestaat&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.2)&lt;br /&gt;
&lt;br /&gt;
- Action=4&lt;br /&gt;
  creer een nieuwe gebruiker. Per lidnummer is er 1 account. Als er al een &lt;br /&gt;
  account voor dit lidnummer bestaat wordt het bestaande account hernoemd.&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.1)&lt;br /&gt;
&lt;br /&gt;
- Action=5&lt;br /&gt;
  wijzig wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=7&lt;br /&gt;
  Uitgeschreven lid is weer actief lid geworden&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&lt;br /&gt;
- Action=8&lt;br /&gt;
  Lid heeft een nieuwe hcc-code gekregen&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Release notes ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2012.02.08 Wijzigingen versie 5:&lt;br /&gt;
 - 4.1 verwijder_hcc_Lidnummer i.p.v. hcc_Lidnummer&lt;br /&gt;
 - 4.1 optionele extra parameter verwijder_hccLogin&lt;br /&gt;
 - Optionele parameters aangegeven&lt;br /&gt;
 - Vanwege de duidelijkheid de beheerLogin en beheerPassword velden&lt;br /&gt;
   bovenin de betreffende aanroepen gezet&lt;br /&gt;
   (De volgorde van de parameters is niet relevant, dus dit is geen&lt;br /&gt;
    interface-aanpassing)&lt;br /&gt;
2012.02.16 Wijzigingen versie 6:&lt;br /&gt;
 - 2.1/2.2/2.3 geef ook cn en sn terug na aanpassen van het wachtwoord&lt;br /&gt;
 - 3.1 geef cn en sn terug na aanmaken nieuwe gebruiker&lt;br /&gt;
2012.02.27 Wijzigingen versie 7:&lt;br /&gt;
 - Neem de XML-RPC interface van HenZ in deze XML-RPC server op&lt;br /&gt;
   8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gegevens tevens in LDAP op&lt;br /&gt;
 - 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.2 wijzig wachtwoord, optie 2&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * gebruikersnaam kan niet meer via deze interface aangepast worden&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.3 wijzig wachtwoord, optie 3&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
2012.03.26 Wijzigingen versie 8:&lt;br /&gt;
  - Breidt de XML-RPC interface van HenZ in deze XML-RPC server uit met&lt;br /&gt;
    8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
2012.04.09 Wijzigingen versie 9:&lt;br /&gt;
 - Vervang alle &#039;ldap&#039; aanroepen door &#039;HCCldap&#039; aanroepen&lt;br /&gt;
 - documentatie van HenZ call action=2 aangepast, action=5 toegevoegd&lt;br /&gt;
2012.05.03 Wijzigingen versie 10:&lt;br /&gt;
 - 1.1 / 1.2 / 1.3 geven nu ook &#039;ProfielBekend&#039; terug om uniek te bepalen&lt;br /&gt;
   of deze bezoeker een first-time-login pagina te zien dient te krijgen&lt;br /&gt;
 - documentatie van 2.1 (wijzig wachtwoord) aangepast: &lt;br /&gt;
   2.1 kan alleen als profiel is doorlopen&lt;br /&gt;
 - nieuwe procedure t.b.v. zoekscherm PC30&lt;br /&gt;
   * A.1 ZoekHCCLid &lt;br /&gt;
     - hiervoor is de database met diverse velden uitgebreid&lt;br /&gt;
       (postcode, e-mailadres, huisadres, woonplaats, land, telefoonnummer)&lt;br /&gt;
       Dit heeft impact op diverse andere procedures (t.b.s.)&lt;br /&gt;
 - nieuwe procedure t.b.v. &#039;gewone&#039; profielpagina&lt;br /&gt;
   * B.1 GeefDBFPersoonID&lt;br /&gt;
 - nieuwe procedure t.b.v. cron-job&lt;br /&gt;
   * C.1 GeefOpgezegdeLeden&lt;br /&gt;
2012.05.10 Wijzigingen versie 11&lt;br /&gt;
 - 1.3 GebruikerBestaatControle&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
   * nieuw veld in antwoord: hccPseudoniem&lt;br /&gt;
 - 2.3 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 2.4 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * nieuwe parameter: nieuw_hccPseudoniem&lt;br /&gt;
   * alle parameters zijn verplicht (niet langer optioneel)&lt;br /&gt;
   * nieuw antwoord: Gegevenscombinatie onjuist&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * Nieuwe procedure t.b.v. 1e keer doorlopen profielpagina&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * &#039;Zoeklimiet bereikt&#039; wordt als ExtraInfo meegegeven&lt;br /&gt;
   * nieuwe velden in antwoord: hccPseudoniem en hccLogin&lt;br /&gt;
 - B.1 GeefDBFPersoonID&lt;br /&gt;
   * Zoeken kan nu ook op hccLogin en op hccPseudoniem&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden&lt;br /&gt;
   * Geef nu ook hccLogin en hccPseudoniem terug&lt;br /&gt;
2012.05.14 Wijzigingen versie 12&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook DBFPersoonID terug&lt;br /&gt;
 - 4.1 Gooi een gebruiker weg.&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 5.1 Wijzig hccIG&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 6.1 Wijzig hccRegio&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 7.1 Wijzig hccRol&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
2012.05.20 Wijzigingen versie 13&lt;br /&gt;
 - A.1 ZoekHCCLid &lt;br /&gt;
   * Geef resultaten gestructureerder formaat&lt;br /&gt;
   * Geef in ExtraInfo weer hoeveel echte resultaten er gevonden zijn&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef resultaten in gestructureerder formaat&lt;br /&gt;
2012.06.03 Wijzigingen versie 14&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * Geef ook DBFPersoonID mee&lt;br /&gt;
2012.08.17 Wijzigingen versie 15&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef ook hccLogin in het antwoord terug&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.09.29 Wijzigingen versie 16&lt;br /&gt;
 - Alle cron gerelateerde opdrachten verwijderd&lt;br /&gt;
   * 3.1 NieuweGebruiker&lt;br /&gt;
   * 4.1 GooiGebruikerWeg&lt;br /&gt;
   * 5.1 WijzigHccIG&lt;br /&gt;
   * 6.1 WijzigHccRegio&lt;br /&gt;
   * 7.1 WijzigHccRol&lt;br /&gt;
2012.10.28 Wijzigingen versie 17&lt;br /&gt;
 - nieuwe procedure t.b.v. PC30 beheerpagina&lt;br /&gt;
   * A.2 HaalPC30Token&lt;br /&gt;
 - nieuwe procedure t.b.v. Drupal profielpagina&lt;br /&gt;
   * 2.4 vervallen &lt;br /&gt;
     (WijzigGebruikersGegevens op basis van pseudoniem)&lt;br /&gt;
   * 2.5 WijzigGebruikersGegevens&lt;br /&gt;
     Nieuwe keuze: wijzig pseudoniem&lt;br /&gt;
2012.11.14 Wijzigingen versie 18&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook mail in het antwoord terug&lt;br /&gt;
2012.11.30 Wijzigingen versie 19&lt;br /&gt;
 - E.1 HCCkader/WijzigGebruikersGegevens&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.1 / F.2 / F.3 ControleerKaderlid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.12.18 Wijzigingen versie 20&lt;br /&gt;
 - Haal DBFPersoonID weg uit alle aanroepen en alle resultaten&lt;br /&gt;
   * Antwoord van 1.x GebruikerBestaatControle&lt;br /&gt;
   * B.1 GeefDBFPersoonID opgeheven&lt;br /&gt;
 - A.1 ZoekHCCLid geeft nu ook hccMobiel terug (t.b.v. PC30 zoekpagina)&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden verder uitgewerkt:&lt;br /&gt;
   * Geeft alleen de door Drupal gebruikte velden &#039;hccLogin&#039; en &#039;hccEindDatum&#039;&lt;br /&gt;
     terug in het antwoord&lt;br /&gt;
   * Geeft nu &#039;echte&#039; antwoorden i.p.v. dummy resultaten&lt;br /&gt;
 - F.1 ControleerKaderlid geeft nu ook optioneel &#039;sn&#039; en &#039;givenName&#039; &lt;br /&gt;
     terug (in de beheer-variant)&lt;br /&gt;
2013.01.25 Wijzigingen versie 21&lt;br /&gt;
 - A.1 ZoekHCCLid uitgebreid&lt;br /&gt;
   * Geeft nu ook hccBeginDatum, hccEindDatum en hccRol terug&lt;br /&gt;
2013.02.02 Wijzigingen versie 22&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * Interface aangepast&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2013.03.01 Wijzigingen versie 23&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Geeft andere resultaten terug&lt;br /&gt;
 - 2.2 WijzigWachtwoord&lt;br /&gt;
   * Geeft nu ook hccLogin terug (voor ww-vergeten op de Drupal site)&lt;br /&gt;
 - HCCenquete implementatie&lt;br /&gt;
   * G.1 Expandeer NL postcode&lt;br /&gt;
   * G.2 Haal lidgegevens op&lt;br /&gt;
   * G.3 Pas lidgegevens aan&lt;br /&gt;
2013.03.18 Wijzigingen versie 24&lt;br /&gt;
 - ZoekGroeperingsLid op basis van token&lt;br /&gt;
 - A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - A.5 VraagLidgegevensTokenAan&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2013.04.07 Wijzigingen versie 25&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   Simpeler interface ontwikkeld (&#039;HCCpartners&#039; i.p.v. &#039;HCCpartner&#039;)&lt;br /&gt;
 - G.3 mag ook Tussenvoegsels aanpassen&lt;br /&gt;
2013.04.25 Wijzigingen versie 26&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   Nieuwe interface voor validatie vanaf groeperings websites&lt;br /&gt;
2013.05.03 Wijzigingen versie 27&lt;br /&gt;
 - 2.6 HaalOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.8 HaalOptInLijst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - HCCpartners aanroep nieuwe interface (&#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;)&lt;br /&gt;
2013.07.05 Wijzigingen versie 28&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * extra parameters (mail, hccPseudoniem) in het antwoord&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
2013.08.31 Wijzigingen versie 29&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / ControleerKaderlid&lt;br /&gt;
   * extra output parameter (hccKaderMail)&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccForumLogin)&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   * komma-gescheiden lijst met groeperingen mogelijk&lt;br /&gt;
   * extra output parameter (mailHccnet)&lt;br /&gt;
2013.12.26 Wijzigingen versie 30&lt;br /&gt;
 - 3.1 Geef mijn lidnummer&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * geef nu ook &#039;ProfielBekend&#039; terug om aan de PC30 omgeving door te geven&lt;br /&gt;
     dat het wachtwoord niet veranderd mag worden door PC30&lt;br /&gt;
 - A.6 GeefBezoekersOverzicht&lt;br /&gt;
   * geef nu ook &#039;Locatie&#039; terug indien van toepassing&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * parameters aangepast&lt;br /&gt;
   * authenticatie op basis van hccLogin + userPassword of lidnummer + hcc-code&lt;br /&gt;
   * geen algemene hcc-forum authenticatie meer mogelijk&lt;br /&gt;
 - F.7 ControleerKaderlidGroep&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2014.02.01 Wijzigingen versie 31&lt;br /&gt;
 - A.8 RegistreerGast&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - nieuwe interface (losse, unieke aanroepen, niet meer gegroepeerd)&lt;br /&gt;
2014.09.27 Wijzigingen versie 32&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden hernoemd naar GeefUitgeschrevenLeden&lt;br /&gt;
 - I.3 GeefhccEindDatum&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - Action=7 en Action=8 toegevoegd aan de HenZ interface&lt;br /&gt;
2014.12.12 Wijzigingen versie 33&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / IsKaderLid&lt;br /&gt;
   * extra output parameter (mail, mailHccnet, hccKaderForward)&lt;br /&gt;
 - F.8 HCC-kader / ZetKaderForward&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.05.06 Wijzigingen versie 34&lt;br /&gt;
 - GeefMijnGegevens&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - ValideerPCActiveAbonnee&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 1.4 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccKaderForward)&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * optionele extra output parameter (ExtraInfo)&lt;br /&gt;
2015.09.27 Wijzigingen versie 35&lt;br /&gt;
 - HeeftForumCredentials&lt;br /&gt;
   * vervallen&lt;br /&gt;
2015.11.20 Wijzigingen versie 36&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.12.13 Wijzigingen versie 37&lt;br /&gt;
 - serverID als optionele parameter&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * Maak velden optioneel&lt;br /&gt;
2016.01.05 Wijzigingen versie 38&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
2016.01.15 Wijzigingen versie 39&lt;br /&gt;
 - H.3 GeefMijnGegevens&lt;br /&gt;
   * geeft nu ook hccOptIn terug&lt;br /&gt;
   * geeft nu ook JoomlaToken terug&lt;br /&gt;
 - H.4 PasOptInKeuzeAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - SiteID en RemoteID als optionele parameter&lt;br /&gt;
2016.03.17 Wijzigingen versie 40&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.03.20 Wijzigingen versie 41&lt;br /&gt;
 - ServerID, SiteID en RemoteID als optionele parameters bij alle aanroepen&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - A.9 GeefLocatieNamen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.6 WijzigHccRol&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - F.7 IsGroeperingsKaderlid&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.5 WijzigGebruikersGegevens (hccPseudoniem)&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * vervallen&lt;br /&gt;
2016.04.02 Wijzigingen versie 42&lt;br /&gt;
 - H.6 GeefMijnKaderDetails&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.07.03 Wijzigingen versie 43&lt;br /&gt;
 - Ubuntu 16.04 aanpassingen (PHP versie 7) beschreven&lt;br /&gt;
2016.09.01 Wijzigingen versie 44&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * extra parameter &#039;hccMobiel&#039;&lt;br /&gt;
2016.10.13 Wijzigingen versie 45&lt;br /&gt;
 - H.3 GeefMijnGegevens (dedecated Joomla aanroep)&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
   * Als het om een webmaster gaat, vul dan eventueel hccRegio of hccIG aan &lt;br /&gt;
     met die groepering, ook als hij geen lid is van die groepering&lt;br /&gt;
 - I.4 GebruikerBestaatControle&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
2016.12.01 Wijzigingen versie 46&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar teruggezet&lt;br /&gt;
2017.05.28 Wijzigingen versie 47&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens (t.b.v. eenmalige kadermailing)&lt;br /&gt;
 - H.8 ZetMinimaleKaderGegevens  (t.b.v. eenmalige kadermailing)&lt;br /&gt;
2017.09.01 Wijzigingen versie 48&lt;br /&gt;
 - A.10 SchrijfNietlidInOpBulletin nu alleen voor 1 bulletin tegelijk&lt;br /&gt;
 - 2.2 WijzigGebruikersGegevens (op basis van gebruikersnaam en wachtwoord)&lt;br /&gt;
       is vervallen (was een oude Drupal aanroep)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens geeft ook hccKaderToonMobiel terug&lt;br /&gt;
2017.11.14 Wijzigingen versie 49&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft geen hccKaderToonMobiel meer terug&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft alleen hccMobiel als hccKaderToonMobiel dat toestaat&lt;br /&gt;
2018.02.18 Wijzigingen versie 50&lt;br /&gt;
 - H.6 GeefMijnKaderDetails geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.9 PasKaderGegevensAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft 3 extra parameters terug (hccKaderMail, hccKaderForward,&lt;br /&gt;
   hccKaderToonMobiel)&lt;br /&gt;
 - JoomlaTokens worden gevalideerd op siteID, niet langer op serverID&lt;br /&gt;
 - diverse aanroepen kunnen nu ook via de bezoekersregistratie-proxy aangeroepen worden. &lt;br /&gt;
   Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
   (GeefAlleGroeperingen, GeefAlleKaderRollen, GeefLocaties, GeefLocatieNamen)&lt;br /&gt;
   De bezoekersregistratie aanroepen hebben enkel JoomlaToken als extra parameter nodig:&lt;br /&gt;
   (LidBezoektBijeenkomst, GeefBezoekersOverzicht)&lt;br /&gt;
2018.02.26 Wijzigingen versie 51&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft extra parameter hccMobiel terug &lt;br /&gt;
 - H.9 PasKaderGegevensAan kan nu ook kadermail password aanpassen&lt;br /&gt;
 - K.1 ValideerToken&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - K.2 ValideerHCCCode&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2018.03.17 Wijzigingen versie 52&lt;br /&gt;
 - H.3 Haal al mijn gegevens&lt;br /&gt;
   Extra optie &#039;compact&#039; om alleen essentiele resultaten te verkrijgen&lt;br /&gt;
   (t.b.v. de Android bezoekersregistratie applicatie)&lt;br /&gt;
2018.03.25 Wijzigingen versie 53&lt;br /&gt;
 - I.2 IsHCCLid&lt;br /&gt;
   (Oude aanroep teruggezet, wordt nog in vraagbaak module gebruikt)&lt;br /&gt;
2018.07.01 Wijzigingen versie 54&lt;br /&gt;
   * A.1 beheer authenticatie op basis van lidnummer + hccCode (tbv VZ-portal)&lt;br /&gt;
   * A.2 HaalPC30Token weggehaald&lt;br /&gt;
2018.08.22 Wijzigingen versie 55&lt;br /&gt;
  * 1.2 GebruikerBestaatControle&#039; (op basis van hccLogin en userPassword) weggehaald&lt;br /&gt;
  * 1.4 GebruikerBestaatControle&#039; (op basis van zoekHccLogin of zoekHccLidnr) weggehaald&lt;br /&gt;
  * 2.8 HaalOptInLijst weggehaald&lt;br /&gt;
  * E.1 PasKaderWachtwoordAan weggehaald&lt;br /&gt;
  * F.1 IsKaderLid (op basis van hccLidnr en hccCode) weggehaald&lt;br /&gt;
  * F.3 IsKaderLid (op basis van beheerdernaam en beheerderwachtwoord) was al weg&lt;br /&gt;
  * F.8 ZetKaderForward weggehaald&lt;br /&gt;
  * H.1 IsGroeperingsLid weggehaald&lt;br /&gt;
  * H.6 GeefMijnKaderDetails weggehaald&lt;br /&gt;
  * H.7 GeefMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * H.8 ZetMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * K.1 ValideerHCCCode weggehaald&lt;br /&gt;
  * K.2 ValideerToken weggehaald&lt;br /&gt;
  * H.3 GeefMijnGegevens geeft omvang kader mailbox mee terug&lt;br /&gt;
2018.11.06 Wijzigingen versie 56&lt;br /&gt;
  Nieuwe aanroepen t.b.v. forum en vraagbaak autorisaties&lt;br /&gt;
  * L.1 MaakOnderwerp&lt;br /&gt;
  * L.2 VerwijderOnderwerp&lt;br /&gt;
  * L.3 GeefOnderwerpen&lt;br /&gt;
  * L.4 MuteerOnderwerp&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
  * L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
  * H.5 ZoekKaderLeden heeft compact optie&lt;br /&gt;
2018.11.16 Wijzigingen versie 57&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie kent nu ook RED(acteur)&lt;br /&gt;
2018.12.17 Wijzigingen versie 58&lt;br /&gt;
  * A.11 GeefBezoekersAantallen (nieuwe aanroep)&lt;br /&gt;
  * H.10 PasUserWachtwoordAan (nieuwe aanroep)&lt;br /&gt;
2019.02.21 Wijzigingen versie 59&lt;br /&gt;
  * A. 6 GeefBezoekersOverzicht geeft enkel lijst van bezoekers laatste bijeenkomst&lt;br /&gt;
2019.10.26 Wijzigingen versie 60&lt;br /&gt;
  * A.4 Schrijf bezoekers niet meer automatisch in op bulletins&lt;br /&gt;
  * H.4  PasOptInKeuzeAan kan ook door LA aangeroepen worden&lt;br /&gt;
  Nieuwe aanroepen t.b.v. eigen implementatie van mijn.hcc.nl in de Joomla modules&lt;br /&gt;
  * H.11 PasPseudoniemAan&lt;br /&gt;
  * H.12 ValideerWachtwoordEisen&lt;br /&gt;
  * H.13 PasWachtwoordAan (1: op JoomlaToken, 2: op PWResetToken)&lt;br /&gt;
  * H.14 MaakPWResetToken&lt;br /&gt;
  * H.15 ValideerPWResetToken&lt;br /&gt;
  * H.16 RuimJoomlaTokenOp&lt;br /&gt;
  * A.12 GeefAlleBulletins&lt;br /&gt;
  * A.13 ExpandeerPostcode&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.18 NormaliseerTelefoon&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  * A.21 HaalIGBedragenOp&lt;br /&gt;
  * A.22 HaalTariefGroepenOp&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
  * A.24 GeefSSOUrls&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  8.1 MaakGebruikerAan&lt;br /&gt;
  F.5 GeefAlleKaderRollen&lt;br /&gt;
2020.01.04 Wijzigingen versie 61&lt;br /&gt;
  Nieuwe aanroepen t.b.v. IDEAL betaling hobbynet abonnees&lt;br /&gt;
  H.17 GeefAantalDomeinen&lt;br /&gt;
2020.01.06 Wijzigingen versie 62&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Cayentis (CRM webproxy) implementatie&lt;br /&gt;
  * M.1  Upload_CSV_bestand&lt;br /&gt;
  * M.2  SchrijfNieuwLidIn&lt;br /&gt;
  * M.3  Verwerk_JSON_mutatie&lt;br /&gt;
  * M.4  ISO_landcode&lt;br /&gt;
  * M.5  MuteerAanmeldingsformulier&lt;br /&gt;
  * M.6  HaalAanmeldingsformulier&lt;br /&gt;
  * M.7  GeefFactuurOverzicht&lt;br /&gt;
  * M.8  HaalFactuur&lt;br /&gt;
  * A.25 UpdateNAW&lt;br /&gt;
  Vervallen aanroepen&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  Aangepaste aanroepen&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
2020.03.27 Wijzigingen versie 63&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.18 ResetHCCCode&lt;br /&gt;
  * H.19 PasHccLoginAan&lt;br /&gt;
2020.04.10 Wijzigingen versie 64&lt;br /&gt;
  Nieuwe aanroepen &lt;br /&gt;
  * A.26 VerwijderNietLid&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  * A.1  ZoekHCCLid: nieuwe zoekoptie &#039;niet_leden&#039;&lt;br /&gt;
  Opnieuw geimplementeerd&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
2020.11.26 Wijzigingen versie 65&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.20 MaakTestLogin&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.3 GeefMijnGegevens: optionele parameter &#039;hccGroepering&#039;&lt;br /&gt;
  Het werken met een testaccount heeft impact op de volgende aanroepen:&lt;br /&gt;
  - G.7  GeefFactuurOverzicht&lt;br /&gt;
  - M.8  HaalFactuur&lt;br /&gt;
  - L.1  MaakOnderwerp&lt;br /&gt;
  - H.14 MaakPWResetToken&lt;br /&gt;
  - F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
  - L.4  MuteerOnderwerp&lt;br /&gt;
  - L.5  MuteerOnderwerpAutorisatie&lt;br /&gt;
  - H.19 PasHccLoginAan&lt;br /&gt;
  - A.23 PasInteressegroepAan&lt;br /&gt;
  - H.9  PasKaderGegevensAan&lt;br /&gt;
  - H.4  PasOptInKeuzeAan&lt;br /&gt;
  - H.11 PasPseudoniemAan&lt;br /&gt;
  - H.13 PasWachtwoordAan&lt;br /&gt;
  - H.18 ResetHCCCode&lt;br /&gt;
  - A.20 UpdateMobiel&lt;br /&gt;
  - A.25 UpdateNAW&lt;br /&gt;
  - L.2  VerwijderOnderwerp&lt;br /&gt;
  - A.5  VraagLidgegevensTokenAan&lt;br /&gt;
  - 2.1  WijzigGebruikersGegevens&lt;br /&gt;
  - H.3 GeefMijnGegevens geeft extra parameter terug (testaccount)&lt;br /&gt;
2021.08.01 Wijzigingen versie 66&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.4 PasOptInKeuzeAan werkt nu ook op basis van OptOutToken&lt;br /&gt;
2021.10.10 Wijzigingen versie 67&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  - H.21 UpdateOTP&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.3 GeefMijnGegevens geeft extra parameters terug (hccOtpKey en hccOtep)&lt;br /&gt;
2021.10.13 Wijzigingen versie 68&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.21 UpdateOTP &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Aanpassingen aan de Apache omgeving =&lt;br /&gt;
&lt;br /&gt;
== php.ini aanpassingen ==&lt;br /&gt;
De XML-RPC server zal &#039;ergens&#039; een bestand moeten kunnen vinden met de&lt;br /&gt;
gebruikersnamen t.b.v. het authenticeren bij de LDAP-server.&lt;br /&gt;
&lt;br /&gt;
Dit bestand wordt geplaatst in de map &#039;/usr/local/hobbynet/etc&#039;. Om dit&lt;br /&gt;
vanuit Apache te mogen benaderen, dient een aanpassing aan php.ini&lt;br /&gt;
gemaakt te worden:&lt;br /&gt;
&lt;br /&gt;
 /etc/php5/apache2/php.ini&lt;br /&gt;
 &lt;br /&gt;
 include_path = &amp;quot;.:/usr/share/php:/usr/share/pear:/usr/local/hobbynet/etc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Apache modules ==&lt;br /&gt;
Nieuwe server geschikt maken voor XML-RPC gebruik&lt;br /&gt;
&lt;br /&gt;
=== Apache modules (PHP 7) ===&lt;br /&gt;
Ubuntu 16.04 wordt standaard met PHP versie 7.0 uitgeleverd.&lt;br /&gt;
De opdrachten om de modules op te halen zijn:&lt;br /&gt;
 apt-get install php-xmlrpc&lt;br /&gt;
 apt-get install apache2&lt;br /&gt;
 apt-get install ldap-utils&lt;br /&gt;
 apt-get install php-ldap&lt;br /&gt;
 apt-get install libapache2-mod-php&lt;br /&gt;
&lt;br /&gt;
== Loadbalancer akties niet naar de logbestanden schrijven ==&lt;br /&gt;
De loadbalancer haalt zeer frequent een testbestand op (/test.txt), om&lt;br /&gt;
te controleren of de xml-server operationeel is. Dat levert extreem veel&lt;br /&gt;
logging op in /var/log/apache2/other_vhosts.log.&lt;br /&gt;
&lt;br /&gt;
Pas de apache configuratie zo aan, dat logging van alle opvragingen&lt;br /&gt;
vanaf de loadbalancers uitgezet wordt.&lt;br /&gt;
 /etc/apache2/sites-enabled/xml-server&lt;br /&gt;
 &lt;br /&gt;
 # Mark requests from loadbalancers&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;212\.72\.227\.93&amp;quot;          dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;212\.72\.227\.94&amp;quot;          dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;172\.31\.1\.249&amp;quot;           dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;172\.31\.1\.250&amp;quot;           dontlog&lt;br /&gt;
 CustomLog ${APACHE_LOG_DIR}/access.log common env=!dontlog&lt;br /&gt;
&lt;br /&gt;
= Firewall algemeen =&lt;br /&gt;
In de file /etc/hobby-firewall/hobby-firewall.local wordt het script&lt;br /&gt;
&#039;/usr/local/hobbynet/bin/gen_fw.sh&#039; aangeroepen.&lt;br /&gt;
Deze haalt de IP adressen op uit ldap. &lt;br /&gt;
(.local omdat we dit ook zo doen op de webservers).&lt;br /&gt;
&lt;br /&gt;
De firewall wordt 4 x per dag herstart en /etc/hobby-firewall wordt&lt;br /&gt;
gesynchroniseerd (1-richting van lb1 naar lb2) met de volgende crontab&lt;br /&gt;
entries:&lt;br /&gt;
&lt;br /&gt;
Op lb1:&lt;br /&gt;
  0  0 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55  5 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0  6 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 11 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0 12 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 17 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0 18 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 23 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
Op lb2:&lt;br /&gt;
 15  6 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15 12 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15 18 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15  0 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null &lt;br /&gt;
&lt;br /&gt;
Het encrypted backup script is verplaatst naar &#039;/usr/local/hobbynet/local&#039; en hernoemd naar &#039;backup-encrypted.bash&#039;.&lt;br /&gt;
Dit is omdat deze niet mee mag worden gesynchroniseerd.&lt;br /&gt;
&lt;br /&gt;
Tevens wordt 1x per dag /usr/local/hobbynet/bin gesynchroniseerd (1-richting van hcc-ldap-lb1 naar hcc-ldap-lb2)&lt;br /&gt;
&lt;br /&gt;
== Aanpassingen in de firewall ==&lt;br /&gt;
Op de server waar de XML-RPC server staat, moeten enkele firewall aanpassingen gemaakt worden.&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf het interne netwerk (www-prod, www-test), en vanaf eventuele andere plekken die we expliciet toe willen staan.&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf mijn.hcc.nl (XML-RPC aanroepen vanaf de portal)&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf service.hccnet.nl toe (XML-RPC aanroep GeefUitgeschrevenLeden vanuit HenZ)&lt;br /&gt;
* uitgaand: sta TCP 443 naar service.hccnet.nl toe (XML-RPC aanroepen naar HenZ)&lt;br /&gt;
* uitgaand: sta TCP 990 en 5000-6000 naar Apps.HCC.local (FTPS verkeer naar de HCC server bij Hobbynet)&lt;br /&gt;
&lt;br /&gt;
== Aanpassingen aan AppArmor ==&lt;br /&gt;
Alhoewel technisch gezien dit bij slapd behoort, neem ik het toch hier op.&lt;br /&gt;
&lt;br /&gt;
Als het Hobbynet certificaat in de map /disk/site/etc/ssl/hobby.nl/ wordt neergezet, dan zal apparrmor de toegang tot de certificaten blokkeren. Neem daarom in de &#039;&#039;&#039;local&#039;&#039;&#039; directory van apparmor het volgende op:&lt;br /&gt;
 # /etc/apparmor.d/local/usr.sbin.slapd&lt;br /&gt;
 # Site-specific additions and overrides for usr.sbin.slapd.&lt;br /&gt;
 # For more details, please see /etc/apparmor.d/local/README.&lt;br /&gt;
 #include &amp;lt;abstractions/ssl_certs&amp;gt;&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/ r,&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/* r,&lt;br /&gt;
&lt;br /&gt;
= CRM (Azure) proxy herstarten =&lt;br /&gt;
Als er indicaties zijn dat niet alle JSON berichten meer vanuit het CRM aangeboden worden aan de XML-RPC server, dan kan het helpen om de CRM proxy te herstarten&lt;br /&gt;
&lt;br /&gt;
* Ga naar https://portal.azure.com/&lt;br /&gt;
* Login met zelfde account als voor het CRM&lt;br /&gt;
* Soms krijg je een popup. Die kan je weg klikken, je wilt geen rondleiding&lt;br /&gt;
* Klik op &#039;&#039;&#039;hccdyn01-aps-crm01&#039;&#039;&#039; voor productie en &#039;&#039;&#039;hccdyn01-aps-dev01&#039;&#039;&#039; voor test&lt;br /&gt;
* En dan kan je op opnieuw starten klikken.&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=79331</id>
		<title>XML-RPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=79331"/>
		<updated>2021-10-12T12:05:43Z</updated>

		<summary type="html">&lt;p&gt;Hans: UpdateOTP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XML-RPC interface =&lt;br /&gt;
&lt;br /&gt;
De LDAP server kan direct gemuteerd worden via een LDAP koppeling. Zie&lt;br /&gt;
de standaard LDAP pagina voor de uitleg welke poorten daarvoor gebruikt&lt;br /&gt;
kunnen worden.&lt;br /&gt;
&lt;br /&gt;
Daarnaast is er de wens ontstaan om via een standaard protocol met de&lt;br /&gt;
LDAP omgeving te kunnen communiceren. Er is hiertoe een XML-RPC&lt;br /&gt;
koppeling ontwikkeld. XML-RPC is een standaard interface, waarmee het&lt;br /&gt;
mogelijk is om vanuit diverse omgevingen op een gestandaardiseerde&lt;br /&gt;
manier te communiceren.&lt;br /&gt;
&lt;br /&gt;
== Globale functie omschrijving ==&lt;br /&gt;
* Algemene aanroepen&lt;br /&gt;
** Controleer of een gebruiker bestaat&lt;br /&gt;
** Wijzig het wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
** Zoek een gebruiker (t.b.v. kantoor en/of LA-akties groeperingssecretaris)&lt;br /&gt;
** Maak een gebruiker aan (geef gebruiker een andere hccLogin waarde, maak ook bij HCCnet deze gebruiker aan)&lt;br /&gt;
** Controleer of een gebruiker zijn profiel al doorlopen heeft&lt;br /&gt;
** Haal de lijst met opgeheven accounts op&lt;br /&gt;
** Haal de lijst met bulletins van een hcc lid (OptIn)&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. hcc partners&lt;br /&gt;
** Controleer of lidnummer/postcode correct is&lt;br /&gt;
** Controleer of lidnummer/postcode correct is, en tevens ingeschreven staat bij een specifieke IG&lt;br /&gt;
&lt;br /&gt;
* Joomla template site functies (op basis van JoomlaToken)&lt;br /&gt;
** Maak een JoomlaToken&lt;br /&gt;
** Ruim een JoomlaToken op&lt;br /&gt;
** Pas mijn OptIn (bulletin inschrijving) aan&lt;br /&gt;
** Regel alles rondom Onderwerpen en de autorisatie hiervan&lt;br /&gt;
** Pas mijn wachtwoord aan&lt;br /&gt;
&lt;br /&gt;
* Joomla kadernet site functies (op basis van JoomlaToken)&lt;br /&gt;
** Zoek een hcc kaderlid (t.b.v. de kaderleden zoekpagina)&lt;br /&gt;
** Pas mijn kadermail forwarding aan en toon ja/nee mijn GSM nummer&lt;br /&gt;
** Pas het kadernet e-mail wachtwoord aan&lt;br /&gt;
** Haal de lijst met alle groeperingen op&lt;br /&gt;
** Haal de lijst met alle kaderrollen op&lt;br /&gt;
&lt;br /&gt;
* Joomla hcc.nl site (op basis van JoomlaToken)(mijn.hcc.nl vervanging)&lt;br /&gt;
** Pas mijn adresgegevens aan&lt;br /&gt;
** Pas mijn voorletters, voornaam, pseudoniem, telefoonnummer, GSM nummer etcetera aan&lt;br /&gt;
** Schrijf me in of uit op een bulletin&lt;br /&gt;
** Toon info over de kosten van een IG lidmaatschap&lt;br /&gt;
** Voer een wachtwoord reset uit op basis van een PWResetToken (een variant op JoomlaToken)&lt;br /&gt;
** Vraag een nieuwe HCC code aan, en stuur die per SMS&lt;br /&gt;
&lt;br /&gt;
* Joomla hobby.nl site (op basis van JoomlaToken)(t.b.v. IDEAL betaling)&lt;br /&gt;
** Haal het aantal hobbyDomains op&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. CRM (Microsoft Dynamics Cloud) koppeling&lt;br /&gt;
** Haal de dagelijkse synchronisatie bestanden op&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de NAW gegevens bij&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de IG gegevens van een lid bij&lt;br /&gt;
&lt;br /&gt;
* HenZ&lt;br /&gt;
** Haal de lijst met opzeggers op&lt;br /&gt;
** Valideer de opzegdatum van een opgegeven gebruiker&lt;br /&gt;
&lt;br /&gt;
=== Authenticatie ===&lt;br /&gt;
&lt;br /&gt;
Alle aanroepen gebeuren op basis van authenticatie vanuit de aanroeper.&lt;br /&gt;
Dit valt uiteen in de volgende categorieën:&lt;br /&gt;
* gebruikersnaam (&#039;hccLogin&#039;) en wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;), Joomla token (&#039;JoomlaToken&#039;) en website (&#039;siteID&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;) en hcc code (&#039;hccCode&#039;)&lt;br /&gt;
* beheerders-DN (&#039;beheerLogin&#039;) en beheerders wachtwoord (&#039;beheerPassword&#039;)&lt;br /&gt;
* partner-DN (&#039;partnerLogin&#039;) en partner wachtwoord (&#039;partnerPassword&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Aanroepen, gedaan via de bezoekersregistratie-proxy ===&lt;br /&gt;
(de bezoekersregistratie proxy is een mislukt project tbv de Android app van René Prins)&lt;br /&gt;
(deze proxy bestaat niet meer)&amp;lt;br&amp;gt;&lt;br /&gt;
Diverse aanroepen kunnen ook via de bezoekersregistratie-proxy aangeroepen worden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
* GeefAlleGroeperingen&lt;br /&gt;
* GeefAlleKaderRollen&lt;br /&gt;
* GeefLocaties&lt;br /&gt;
* GeefLocatieNamen&lt;br /&gt;
De bezoekersregistratie aanroepen hebben &#039;JoomlaToken&#039; als extra parameter nodig:&lt;br /&gt;
* LidBezoektBijeenkomst&lt;br /&gt;
* GeefBezoekersOverzicht&lt;br /&gt;
* GeefBezoekersAantallen&lt;br /&gt;
De aanroepen die over de proxy uitgevoerd worden dienen voorafgegaan te worden door een aanroep naar&lt;br /&gt;
* GeefMijnGegevens (dit geeft na validatie immers &#039;JoomlaToken&#039; terug)&lt;br /&gt;
&lt;br /&gt;
=== Resultaten ===&lt;br /&gt;
&lt;br /&gt;
Alle aanroepen geven de volgende elementen terug:&lt;br /&gt;
* Naam van de uitgevoerde procedure (&#039;Action&#039;)&lt;br /&gt;
* Resultaat van de uitgevoerde procedure (&#039;Status&#039;)&lt;br /&gt;
* Een tekstuele vertaling van het resultaat dan wel de foutmelding (&#039;Message&#039;)&lt;br /&gt;
* Tijdens de ontwikkelfase kan er debug-info teruggeleverd worden (&#039;ExtraInfo&#039;)&lt;br /&gt;
Daarnaast geven specifieke aanroepen extra resultaten terug&lt;br /&gt;
&lt;br /&gt;
== Technische omschrijving ==&lt;br /&gt;
XML-RPC beschrijving van acties in hcc.nl LDAP database&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2021.10.10 HaVe&lt;br /&gt;
XML-RPC Hobbynet versie 67.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kort overzicht ===&lt;br /&gt;
&lt;br /&gt;
Dit is een lijst met alle XML-RPC aanroepen. In het volgende hoofdstuk worden ze in detail besproken.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo				(partners)&lt;br /&gt;
ExpandeerPostcode               (Joomla module Bas, tbv verhuizingen)&lt;br /&gt;
GebruikerBestaatControle	(Joomla sites)&lt;br /&gt;
GeefAantalDomeinen              (Joomla module Bas)&lt;br /&gt;
GeefAlleBulletins               (Joomla module Bas)&lt;br /&gt;
GeefAlleGroeperingen		(kadersite, forum, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefAlleKaderRollen		(forum, secr. portal, kantoor portal, hobbynet portal, Joomla module Bas)&lt;br /&gt;
GeefBezoekersOverzicht		(bezoekersregistratie)&lt;br /&gt;
GeefBezoekersAantallen		(bezoekersregistratie)&lt;br /&gt;
GeefFactuurOverzicht		(Joomla module Bas)&lt;br /&gt;
GeefhccEindDatum		(HenZ)&lt;br /&gt;
GeefKadermailGegevens		(kantoor portal)&lt;br /&gt;
GeefLocatieNamen		(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefLocaties			(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefMijnGegevens		(Joomla inlog module Bas)&lt;br /&gt;
GeefMijnLidnummer		(beheer.hcc.nl secretaris portal)&lt;br /&gt;
GeefOnderwerpen                 (Joomla template sites)&lt;br /&gt;
GeefSSOUrls			(Joomla module Bas)&lt;br /&gt;
GeefUitgeschrevenLeden		(Joomla sites, HenZ)&lt;br /&gt;
HaalAanmeldingsformulier	(Joomla module Bas)&lt;br /&gt;
HaalFactuur			(Joomla module Bas)&lt;br /&gt;
HaalIGBedragenOp                (Joomla module Bas)&lt;br /&gt;
HaalOptInKeuzen			(kantoor portal)&lt;br /&gt;
HaalTariefGroepenOp		(kantoor portal)&lt;br /&gt;
HCCpartner			(Partner aanroep)&lt;br /&gt;
HCCpartners			(Partner aanroep)&lt;br /&gt;
IsDezeNaamNogBeschikbaar	(aangeroepen vanuit de CRM omgeving)&lt;br /&gt;
IsDezePseudoniemNogBeschikbaar	(kantoor portal)&lt;br /&gt;
IsHCCLid			(vraagbaak aanroep)&lt;br /&gt;
IsKaderLid			(in veel apps gebruikt)&lt;br /&gt;
LidBezoektBijeenkomst		(bezoekersregistratie)&lt;br /&gt;
MaakGebruikerAan		(mijnhcc.nl, maak hccnet account aan en ldap gebruikersnaam)&lt;br /&gt;
MaakOnderwerp                   (Joomla template sites)&lt;br /&gt;
MaakPWResetToken                (Joomla module Bas)&lt;br /&gt;
MaakTestLogin                   (Joomla module Bas)&lt;br /&gt;
MuteerAanmeldingsformulier	(Joomla module Bas)&lt;br /&gt;
MuteerGroeperingSamenstelling   (Joomla kadernet module Bas)&lt;br /&gt;
MuteerOnderwerp                 (Joomla template sites)&lt;br /&gt;
MuteerOnderwerpAutorisatie      (Joomla template sites)&lt;br /&gt;
NormaliseerTelefoon             (Joomla module Bas)&lt;br /&gt;
PasHccLoginAan			(Joomla module Bas)(enkel Hobbynet)&lt;br /&gt;
PasInteressegroepAan            (Joomla module Bas)&lt;br /&gt;
PasKaderGegevensAan		(kadersite, Joomla module Bas)&lt;br /&gt;
PasOptInKeuzeAan		(Joomla module Bas)&lt;br /&gt;
PasPseudoniemAan		(Joomla module Bas)&lt;br /&gt;
PasUserWachtwoordAan		(beheer.hcc.nl Hobbynet gebruikers portal)&lt;br /&gt;
PasWachtwoordAan		(Joomla module Bas)&lt;br /&gt;
RegistreerGast			(bezoekersregistratie)&lt;br /&gt;
ResetHCCCode                    (Joomla module Bas)&lt;br /&gt;
RuimJoomlaTokenOp               (Joomla module Bas)&lt;br /&gt;
SchrijfNietlidInOpBulletin      (Joomla site bulletin module Bas)&lt;br /&gt;
SchrijfNieuwLidIn               (Joomla CRM module Bas)&lt;br /&gt;
ToonOnderwerpAutorisatie        (Joomla template sites)&lt;br /&gt;
UpdateContactEmail		(Joomla module Bas)&lt;br /&gt;
UpdateContactGegevens		(Joomla module Bas)&lt;br /&gt;
UpdateMobiel                    (Joomla module Bas)&lt;br /&gt;
UpdateNAW                       (Joomla module Bas)&lt;br /&gt;
UpdateOTP                       (Joomla module Bas)&lt;br /&gt;
UpdateTelefoon			(Joomla module Bas)&lt;br /&gt;
UpdateVoorletters		(Joomla module Bas)&lt;br /&gt;
UpdateVoornaam			(Joomla module Bas)&lt;br /&gt;
Upload_CSV_bestand              (CRM webproxy)&lt;br /&gt;
ValideerPWResetToken            (Joomla module Bas)&lt;br /&gt;
ValideerWachtwoordEisen		(Joomla module Bas)&lt;br /&gt;
Verwerk_JSON_mutatie            (CRM webproxy)&lt;br /&gt;
VerwijderNietLid		(Joomla beheer module Bas)&lt;br /&gt;
VerwijderOnderwerp              (Joomla template sites)&lt;br /&gt;
VraagLidgegevensTokenAan	(bezoekersregistratie)&lt;br /&gt;
WijzigGebruikersGegevens	(kantoor en Joomla template sites, ww aanpassen van gebruiker)&lt;br /&gt;
ZoekGroeperingsLid		(secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
ZoekHCCLid			(VZ portal)&lt;br /&gt;
ZoekKaderLeden			(Joomla kadernet module Bas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-ldap en/of HCC-net aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** Joomla sites, www.hcc.nl **&lt;br /&gt;
// 1.1 controleer of een gebruiker bestaat - optie 1&lt;br /&gt;
// (authenticatie op basis van hccLidnr en hccCode)&lt;br /&gt;
// Alleen bedoeld om gebruikers op www.hcc.nl op basis van het lidnr het ww te laten wijzigen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GebruikerBestaatControle&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039; =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;  =&amp;gt; $hccCode,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $method,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;);&lt;br /&gt;
    if ($hccLidnr      != &#039;&#039;) { $reply[&#039;hccLidnr&#039;]      = $hccLidnr;      }&lt;br /&gt;
    if ($hccLogin      != &#039;&#039;) { $reply[&#039;hccLogin&#039;]      = $hccLogin;      }&lt;br /&gt;
    if ($hccPseudoniem != &#039;&#039;) { $reply[&#039;hccPseudoniem&#039;] = $hccPseudoniem; }&lt;br /&gt;
    if ($cn            != &#039;&#039;) { $reply[&#039;cn&#039;]            = $cn;            }&lt;br /&gt;
    if ($sn            != &#039;&#039;) { $reply[&#039;sn&#039;]            = $sn;            }&lt;br /&gt;
    if ($mail          != &#039;&#039;) { $reply[&#039;mail&#039;]          = $mail;          }&lt;br /&gt;
    if ($mailHccnet    != &#039;&#039;) { $reply[&#039;mailHccnet&#039;]    = $mailHccnet;    }&lt;br /&gt;
    if ($hccRegio      != &#039;&#039;) { $reply[&#039;hccRegio&#039;]      = $hccRegio;      }&lt;br /&gt;
    if ($hccIG         != &#039;&#039;) { $reply[&#039;hccIG&#039;]         = $hccIG;         }&lt;br /&gt;
    if ($hccRol        != &#039;&#039;) { $reply[&#039;hccRol&#039;]        = $hccRol;        }&lt;br /&gt;
    if ($ProfielBekend != &#039;&#039;) { $reply[&#039;ProfielBekend&#039;] = $ProfielBekend; }&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
// op basis van hccLidnummer en hccCode &lt;br /&gt;
// Essentiele aanroep, gebruikt vanuit mijnhcc.nl (lidnr + hccCode)&lt;br /&gt;
// Ook gebruikt t.b.v. wachtwoord-vergeten procedure op de Joomla template sites&lt;br /&gt;
// Als de profielpagina nog niet is doorlopen wordt deze aanroep afgekeurd.&lt;br /&gt;
//&lt;br /&gt;
// Ook gebruikt om gebruiker rechtstreeks vanaf Joomla template sites wachtwoord te&lt;br /&gt;
// laten aanpassen (op basis van lidnummer en hcc code)&lt;br /&gt;
//&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;            =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Gebruikersgegevens gewijzigd&#039;,&lt;br /&gt;
    &#039;hccLogin&#039; =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;cn&#039;       =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;       =&amp;gt; $sn);&lt;br /&gt;
&lt;br /&gt;
// 2.3 wijzig wachtwoord - optie 3&lt;br /&gt;
// (t.b.v. VZ-portal)&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
// * Als hccLidnr gevuld is, dan wordt hccLidnr gebruikt om het juiste record te zoeken&lt;br /&gt;
//   Als hccLidnr leeg   is, dan wordt hccLogin gebruikt om het juiste record te zoeken&lt;br /&gt;
//   1 van beide velden MOET aanwezig zijn&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;        =&amp;gt; $beheerLogin,    // beheerder lidnummer&lt;br /&gt;
      &#039;beheerPassword&#039;     =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
     [&#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,]&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. ophalen van de opt-in keuzes op de beheer pagina **&lt;br /&gt;
// 2.6 Geef de complete lijst met opt-ins van dit lid&lt;br /&gt;
// (LET OP: authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
     [&#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;       =&amp;gt; $hccLogin,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptInLijst opgehaald&#039;,&lt;br /&gt;
    &#039;hccOptIn&#039; =&amp;gt; $hccOptIn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gebruikersnaam, pseudoniem &lt;br /&gt;
//     en wachtwoord tevens in LDAP op&lt;br /&gt;
// (authenticatie op basis van hcc lidnummer en hcc-code)&lt;br /&gt;
// ** Deze gegevens worden doorgezet naar hccnet.nl (action=4) **&lt;br /&gt;
// &lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;             =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_hccLogin&#039;      =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
      &#039;nieuw_userPassword&#039;  =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem,&lt;br /&gt;
     [&#039;ServerID&#039;            =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;              =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;       =&amp;gt; &#039;Gebruiker aangemaakt&#039;,&lt;br /&gt;
    &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
    &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;       |&lt;br /&gt;
                 &#039;Gebruikersnaam bestaat al&#039;  |&lt;br /&gt;
                 &#039;Pseudoniem bestaat al&#039;      |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.3 Haal al mijn gegevens&lt;br /&gt;
// (wordt gebruikt door de Joomla inlogmodule)&lt;br /&gt;
// Voor gebruik over de proxy t.b.v. de Android app kan compact=TRUE meegegeven worden.&lt;br /&gt;
// In dat geval worden enkel de meest essentiele gegevens teruggestuurd&lt;br /&gt;
// Voor gebruik na MaakGebruikerAan kan deze functie ook op basis van hccLidnr en JoomlaToken&lt;br /&gt;
// worden aangeroepen&lt;br /&gt;
// De optionele parameter &#039;PrevSiteID&#039; is bedoeld voor single-sign-on. Op basis van JoomlaToken,&lt;br /&gt;
// hccLidnr en PrevSiteID worden dan de credentials gevalideerd. Als die kloppen, geeft deze aanroep&lt;br /&gt;
// een 2e JoomlaToken terug, maar dan uitgegeven op basis van SiteID.&lt;br /&gt;
// Als PrevSiteID leeg is, dan wordt het token op basis van siteID gevalideerd.&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,]&lt;br /&gt;
     [&#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;PrevSiteID&#039;   =&amp;gt; $PrevSiteID,]&lt;br /&gt;
     [&#039;compact&#039;      =&amp;gt; $compact,]        // leeg of &#039;TRUE&#039;&lt;br /&gt;
     [&#039;hccGroepering&#039;=&amp;gt; $hccGroepering,]  // Een testgebruiker mag alleen op deze site inloggen&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccRegio&#039;           =&amp;gt; $hccRegio,&lt;br /&gt;
    &#039;hccIG&#039;              =&amp;gt; $hccIG,&lt;br /&gt;
    &#039;hccRol&#039;             =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;hccAutorisatie&#039;     =&amp;gt; $hccAutorisatie,&lt;br /&gt;
    &#039;cn&#039;                 =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;                 =&amp;gt; $sn,&lt;br /&gt;
    &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
   [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccPseudoniem&#039;      =&amp;gt; $hccPseudoniem,&lt;br /&gt;
    &#039;givenname&#039;          =&amp;gt; $givenname,&lt;br /&gt;
    &#039;hccAanhef&#039;          =&amp;gt; $hccAanhef,&lt;br /&gt;
    &#039;hccGeslacht&#039;        =&amp;gt; $hccGeslacht,&lt;br /&gt;
    &#039;hccTussenVoegsels&#039;  =&amp;gt; $hccTussenVoegsels,&lt;br /&gt;
    &#039;hccAchternaam&#039;      =&amp;gt; $hccAchternaam,&lt;br /&gt;
    &#039;hccStraatnaam&#039;      =&amp;gt; $hccStraatnaam,&lt;br /&gt;
    &#039;hccHuisnummer&#039;      =&amp;gt; $hccHuisnummer&lt;br /&gt;
    &#039;hccPostcode&#039;        =&amp;gt; $hccPostcode,&lt;br /&gt;
    &#039;hccWoonplaats&#039;      =&amp;gt; $hccWoonplaats,&lt;br /&gt;
    &#039;hccLand&#039;            =&amp;gt; $hccLand,&lt;br /&gt;
    &#039;hccTelefoon&#039;        =&amp;gt; $hccTelefoon,&lt;br /&gt;
    &#039;mail&#039;               =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;         =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;       =&amp;gt; $hccKaderMail, &lt;br /&gt;
    &#039;hccKaderForward&#039;    =&amp;gt; $hccKaderForward,&lt;br /&gt;
    &#039;hccKaderToonMobiel&#039; =&amp;gt; $hccKaderToonMobiel,&lt;br /&gt;
    &#039;hccOptIn&#039;           =&amp;gt; $hccOptIn,&lt;br /&gt;
    &#039;ProfielBekend&#039;      =&amp;gt; $ProfielBekend,&lt;br /&gt;
    &#039;hccBeginDatum&#039;      =&amp;gt; $hccBeginDatum,&lt;br /&gt;
    &#039;testaccount&#039;        =&amp;gt; is_testaccount(),     // &#039;TRUE&#039; | &#039;FALSE&#039;&lt;br /&gt;
    &#039;hccOtpKey&#039;          =&amp;gt; $hccOtpKey,&lt;br /&gt;
    &#039;hccOtep&#039;            =&amp;gt; $hccOtep,&lt;br /&gt;
   [&#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,     // in Mb&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald;]]);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de opt-in keuzes op een Joomla site **&lt;br /&gt;
// H.4 Pas 1 opt-in van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van hccLidnr, JoomlaToken en siteID)&lt;br /&gt;
//          of&lt;br /&gt;
//          authenticatie op basis van hccLidnr en OptOutToken (voor een directe uitschrijving door een lid)&lt;br /&gt;
// Als hccLidnummer gevuld is, dan is dat het lidnummer waar de mutatie op moet worden uitgevoerd.&lt;br /&gt;
// Dat kan alleen als de aanvrager HCC#LAD of HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
     [&#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;OptOutToken&#039;  =&amp;gt; $OptOutToken,]&lt;br /&gt;
     [&#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,]&lt;br /&gt;
      &#039;hccOptIn&#039;     =&amp;gt; $hccOptIn,&lt;br /&gt;
      &#039;actie&#039;        =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptIn aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials | Token ongeldig | Token verlopen&#039;);&lt;br /&gt;
    &lt;br /&gt;
// H.5 Zoek kaderleden NAW (t.b.v. de Joomla kadersite)&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
//&lt;br /&gt;
// * Er dient minstens 1 zoekcriterium opgegeven te worden.&lt;br /&gt;
// * Als zowel hccRegio als tegelijk ook hccIG opgegeven worden is de uitkomst onvoorspelbaar.&lt;br /&gt;
// * Als compact=TRUE worden enkel lidnummer, cn en sn in het antwoord gezet&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
     [&#039;hccIG&#039;       =&amp;gt; $hccIG,]&lt;br /&gt;
     [&#039;hccRol&#039;      =&amp;gt; $hccRol,]&lt;br /&gt;
     [&#039;hccLocatie&#039;  =&amp;gt; $hccLocatie,]&lt;br /&gt;
     [&#039;achternaam&#039;  =&amp;gt; $achternaam,]&lt;br /&gt;
     [&#039;compact&#039;     =&amp;gt; $compact]));        // leeg of &#039;TRUE&#039;&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Kaderleden opgevraagd&#039;&lt;br /&gt;
    &#039;Kaderleden&#039;      =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidNummer&#039;  =&amp;gt; $hccLidNummer,&lt;br /&gt;
      &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccAanhef&#039;     =&amp;gt; $hccAanhef,&lt;br /&gt;
      &#039;givenname&#039;     =&amp;gt; $givenname,&lt;br /&gt;
      &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
      &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
      &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;]);&lt;br /&gt;
&lt;br /&gt;
// H.9 PasKaderGegevensAan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
// Om de kaderleden hun forward in te laten stellen,&lt;br /&gt;
// en tegelijkertijd de opt-in / opt-out voor hccToonMobiel te laten regelen&lt;br /&gt;
// Kan tevens het kader email wachtwoord aanpassen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;         =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;            =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;              =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;hccKaderForward&#039;     =&amp;gt; $hccKaderForward,    // &#039;&#039; | $mail | $mailHccNet&lt;br /&gt;
      &#039;hccKaderToonMobiel&#039;  =&amp;gt; $hccKaderToonMobiel, // &#039;TRUE&#039; | &#039;FALSE&#039; | &#039;NULL&#039;&lt;br /&gt;
     [&#039;nieuw_kaderPassword&#039; =&amp;gt; $nieuw_kaderPassword]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;kadergegevens aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;|&#039;Alleen kaderleden mogen deze aanroep uitvoeren&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** Portal beheer.hcc.nl&lt;br /&gt;
// ** H.10 PasUserWachtwoordAan&lt;br /&gt;
// ** Betalende Hobbynet gebruikers kunnen hiermee hun wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van hccLogin en userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;         =&amp;gt; $username,&lt;br /&gt;
      &#039;userpassword&#039;     =&amp;gt; $password,&lt;br /&gt;
      &#039;hobbynetAccount&#039;  =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;nieuw_wachtwoord&#039; =&amp;gt; $nieuw_wachtwoord,&lt;br /&gt;
      &#039;ServerID&#039;         =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;           =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;         =&amp;gt; $remoteAddr));        &lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;     |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij gebruiker $hccLogin&#039; |&lt;br /&gt;
                 &#039;Kan ww van account $hobbynetAccount niet aanpassen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.11 Pas het pseudoniem van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Pseudoniem aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039; | &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.12 Controleer of een opgegeven wachtwoord aan de minimum eisen voldoet&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Wachtwoord voldoet aan de minimale eisen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Wachtwoord voldoet niet aan de minimale eisen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit een Joomla template site kunnen gebruikers hiermee hun eigen wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van JoomlaToken, lidnummer, siteID. Extra controle via userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;userpassword&#039;       =&amp;gt; $password,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13.1 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee hun eigen wachtwoord resetten&lt;br /&gt;
// (authenticatie op basis van PWResetToken en hccLogin).&lt;br /&gt;
// (Als de aanroep geslaagd is, dan is daarna het PWResetToken ongeldig)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039;       =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.14 MaakPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee een wachtwoord reset aanvragen&lt;br /&gt;
//    Deze aanroep geeft naast het PWResetToken ook het contact emailadres mee terug,&lt;br /&gt;
//    zodat Joomla een reset-mail kan sturen&lt;br /&gt;
// (acties op basis van gebruikersnaam)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;   =&amp;gt; $username,&lt;br /&gt;
      &#039;ServerID&#039;   =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;     =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;   =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
    &#039;mail&#039;         =&amp;gt; $mail,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token aangemaakt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.15 ValideerPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers een wachtwoord reset aanvragen&lt;br /&gt;
//    Controleer dat het hier om een bestaand (en nog niet gebruikt) token gaat&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token gevonden&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;hccLogin bestaat niet&#039; | &#039;PWResetToken bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.16 Ruim een bestaand JoomlaToken op&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;JoomlaToken opgeruimd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuist JoomlaToken&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.17 GeefAantalDomeinen&lt;br /&gt;
// ** Vraag het aantal domeinen op van een betalende Hobbynet gebruiker (t.b.v. IDEAL betaling)&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;     =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;ServerID&#039;        =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;          =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;        =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
    &#039;AantalDomeinen&#039;  =&amp;gt; $aantalDomeinen,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;aantal domeinen opgevraagd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij deze gebruiker&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18 ResetHCCCode&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // geheime credentials van de site&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // geheime credentials van de site&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18.1 ResetHCCCode (hcc kantoor aanroep)&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,    // Het Joomla token van de sessie van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,       // Het lidnummer van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de hccLogin van een gebruiker (Hobbynet functie op Joomla site)  **&lt;br /&gt;
// H.19 Pas de hccLogin van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// hccLidnummer is het lidnummer waar de mutatie op moet worden uitgevoerd&lt;br /&gt;
// Kan alleen als de aanvrager HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,     // lidnummer van de aanvrager&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,  // JoomlaToken van de aanvrager&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer, // pas de hccLogin van dit lidnummer aan&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,     // dit is de gewenste nieuwe hccLogin&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;hccLogin aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039;       | &lt;br /&gt;
                 &#039;Gebruikersnaam al in gebruik&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. het aanmaken van een testaccount door een webmaster&lt;br /&gt;
// H.20 Maak een testaccount aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// Kan alleen als de aanvrager WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakTestLogin&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,     // JoomlaToken van de aanvrager&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,    // lidnummer van de aanvrager&lt;br /&gt;
      &#039;hccRol&#039;        =&amp;gt; $hccRol,          // (mag leeg zijn)&lt;br /&gt;
      &#039;hccGroepering&#039; =&amp;gt; $hccGroepering,   // (regio of IG)&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;MaakTestLogin&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Tijdelijk test account aangemaakt&#039;,&lt;br /&gt;
    &#039;TestAccountNaam&#039; =&amp;gt; &#039;test-&amp;lt;groepering&amp;gt;-&amp;lt;hccLogin&amp;gt;&#039;&lt;br /&gt;
    &#039;userpassword&#039;    =&amp;gt; $nieuw_userpassword,&lt;br /&gt;
    &#039;hccGroepering&#039;   =&amp;gt; $hccGroepering,&lt;br /&gt;
    &#039;hccRol&#039;          =&amp;gt; $hccRol);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MaakTestLogin&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// Joomla webbeheerder functie&lt;br /&gt;
// ** t.b.v. aanpassen van de OneTime Passwords van de webbeheerder&lt;br /&gt;
// H.21 Pas de OTP gegevens van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van hccLidnr, JoomlaToken en siteID)&lt;br /&gt;
// Als hccLidnummer gevuld is, dan is dat het lidnummer waar de mutatie op moet worden uitgevoerd.&lt;br /&gt;
// Dat kan alleen als de aanvrager HCC#LAD of HN#WM als rol heeft&lt;br /&gt;
// Als hccOtep en/of hccOtpKey leeg is, dan worden zowel hccOtep als ook hccOtpKey gewist&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateOTP&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,]&lt;br /&gt;
      &#039;hccOtpKey&#039;    =&amp;gt; $hccOtpKey, // De otp encryptie key van de gebruiker (mag leeg zijn )&lt;br /&gt;
      &#039;hccOtep       =&amp;gt; $hccOtep,   // Het one time recovery password (mag leeg zijn )&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;UpdateOTP&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OTP gegevens aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;UpdateOTP&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// 3.1 Geef mijn lidnummer&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Lidnummer opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039; =&amp;gt; $hccLidnr);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Deze gegevens worden opgevraagd bij hccnet.nl (action=3)       **&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccLogin&#039; =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Enkel voor gebruik vanaf de kantoor portal **&lt;br /&gt;
// **  t.b.v. het hernoemen van accounts in CRM  **&lt;br /&gt;
// 8.3 Controleer of een Pseudoniem op dit moment bestaat		??? NIET GEBRUIKT ??&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken zoekpagina **&lt;br /&gt;
// A.1 Zoek alle bij de query passende hcc leden&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;ZoekMethode&#039;    =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;     =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;     =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $Groepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (eerste deel van) de naam               |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | emailadres          | (eerste deel van) e-mail adres          |&lt;br /&gt;
 | gebruikersnaam      | (eerste deel van) de login naam         |&lt;br /&gt;
 | pseudoniem          | (eerste deel van) het pseudoniem        |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | niet_leden          | het volledige niet-lid lidnummer        |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
   [&#039;ExtraInfo&#039;   =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;     =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidnummer&#039;      =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;hccBeginDatum&#039;     =&amp;gt; $hccBeginDatum,&lt;br /&gt;
      &#039;hccEindDatum&#039;      =&amp;gt; $hccEindDatum,&lt;br /&gt;
      &#039;sn&#039;                =&amp;gt; $sn,&lt;br /&gt;
      &#039;givenName&#039;         =&amp;gt; $givenName,&lt;br /&gt;
      &#039;hccGeslacht&#039;       =&amp;gt; $hccGeslacht,&lt;br /&gt;
      &#039;hccStraatnaam&#039;     =&amp;gt; $hccStraatnaam,&lt;br /&gt;
      &#039;hccHuisnummer&#039;     =&amp;gt; $hccHuisnummer&lt;br /&gt;
      &#039;hccHuisToevoeging&#039; =&amp;gt; $hcchuisToevoeging,&lt;br /&gt;
      &#039;hccPostcode&#039;       =&amp;gt; $hccPostcode,&lt;br /&gt;
      &#039;hccWoonplaats&#039;     =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccLand&#039;           =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;hccTelefoon&#039;       =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;         =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;mail&#039;              =&amp;gt; $mail,&lt;br /&gt;
      &#039;mailHccnet&#039;        =&amp;gt; $mailHccnet,&lt;br /&gt;
      &#039;hccIG&#039;             =&amp;gt; $hccIG,&lt;br /&gt;
      &#039;hccRol&#039;            =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccLogin&#039;          =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;hccPseudoniem&#039;     =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ProfielBekend&#039;     =&amp;gt; &#039;TRUE&#039; | &#039;FALSE&#039;])*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. beheer.hcc.nl **&lt;br /&gt;
// A.3 Zoek alle bij de query passende hcc leden van deze groepering&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
      &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;  =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;  =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,] // Alleen voor gebruik op de&lt;br /&gt;
                                      // bijeenkomsten aanwezigheidsregistratie pagina&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (deel van) de naam                      |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | nieuwe_leden        | YYYYMMDD vanaf waar gezocht moet worden |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | kaderleden          | n.v.t.                                  |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;   =&amp;gt;&lt;br /&gt;
      [array(&lt;br /&gt;
         &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
         &#039;hccBeginDatum&#039; =&amp;gt; $hccBeginDatum,&lt;br /&gt;
         &#039;hccEindDatum&#039;  =&amp;gt; $hccEindDatum,&lt;br /&gt;
         &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
         &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
         &#039;givenName&#039;     =&amp;gt; $givenName,&lt;br /&gt;
         &#039;hccAchternaam&#039; =&amp;gt; $hccAchternaam,&lt;br /&gt;
         &#039;hccTussenVoegsels =&amp;gt; hccTussenVoegsels,  &lt;br /&gt;
         &#039;hccGeslacht&#039;   =&amp;gt; $hccGeslacht,&lt;br /&gt;
         &#039;hccStraatnaam&#039; =&amp;gt; $hccStraatnaam,&lt;br /&gt;
         &#039;hccHuisnummer&#039; =&amp;gt; $hccHuisnummer, &lt;br /&gt;
         &#039;hccPostcode&#039;   =&amp;gt; $hccPostcode,&lt;br /&gt;
         &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
         &#039;hccLand&#039;       =&amp;gt; $hccLand, &lt;br /&gt;
         &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
         &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
         &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
         &#039;mailHccnet&#039;    =&amp;gt; $mailHccnet,&lt;br /&gt;
         &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail,&lt;br /&gt;
         &#039;hccRegio&#039;      =&amp;gt; $hccRegio,&lt;br /&gt;
         &#039;hccIG&#039;         =&amp;gt; $hccIG,&lt;br /&gt;
         &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
         &#039;hccLogin&#039;      =&amp;gt; $hccLogin,&lt;br /&gt;
         &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem)]*));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) niet gevonden&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten **&lt;br /&gt;
// A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,    // lid dat aanwezig gemeld moet worden&lt;br /&gt;
     [&#039;correctie&#039;   =&amp;gt; $hccLidnr,]   // lid dat gecorrigeerd moet worden&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Bezoeker weggeschreven&#039;,&lt;br /&gt;
    &#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
      // info van deze bezoeker&lt;br /&gt;
      &#039;cn&#039;               =&amp;gt; $cn,                // cn (Verbeek, H.J.)&lt;br /&gt;
      &#039;hccGeslacht&#039;      =&amp;gt; $hccGeslacht,       // hccGeslacht van de bezoeker&lt;br /&gt;
      &#039;groeperingslid&#039;   =&amp;gt; $groeperingslid,    // TRUE of FALSE: is deze persoon lid van deze groepering&lt;br /&gt;
      &#039;mijnGroeperingen&#039; =&amp;gt; $mijnGroeperingen,  // komma-gescheiden lijst (regio, [hccIG]*)&lt;br /&gt;
      &#039;aantalBezoeken&#039;   =&amp;gt; $aantalBezoeken,    // hoe vaak heeft dit lid deze bijeenkomst bezocht&lt;br /&gt;
      // info van de bijeenkomst&lt;br /&gt;
      &#039;AantalBezoekers&#039;  =&amp;gt; $AantalBezoekers);  // aantal bezoekers van deze bijeenkomst&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.5 Vraag Lidgegevens token aan (geldig voor dit lid, en deze groepering, op deze datum)&lt;br /&gt;
// Als geen datum gegeven is, dan is het token vandaag geldig&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnummer, // vraag het token voor dit lid aan&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering,   // zoek binnen deze groepering&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]       // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;     =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;     =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;    =&amp;gt; &#039;Token opgevraagd&#039;,&lt;br /&gt;
    &#039;groepering&#039; =&amp;gt; $Groepering,&lt;br /&gt;
    &#039;token&#039;      =&amp;gt; $token,&lt;br /&gt;
    &#039;sn&#039;         =&amp;gt; $sn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.6 Toon bezoekersoverzicht&lt;br /&gt;
// (authenticatie op basis van lidnummer en bezoekersregistratie token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bezoekersoverzicht opgevraagd&#039;,&lt;br /&gt;
    &#039;Bezoekers&#039; =&amp;gt; $bezoekers,&lt;br /&gt;
   [&#039;Locatie&#039;   =&amp;gt; $Locatie]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// A.7 Geef het array met alle locaties&lt;br /&gt;
// (of beperk dit tot de locaties van de groepering $Groepering)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij hccToonInJoomla aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij ToonOpKaderNet aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocaties&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $hccGroepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;       =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;      =&amp;gt; &#039;Geen locaties gevonden voor groepering $hccGroepering&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// A.8 Registreer een niet-hcclid als bezoeker tijdens een bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RegistreerGast&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039;   =&amp;gt; $lidnr,        // credentials&lt;br /&gt;
      &#039;AccountCode&#039;   =&amp;gt; $AccountCode,  // credentials&lt;br /&gt;
      &#039;token&#039;         =&amp;gt; $token,        // credentials&lt;br /&gt;
      &#039;Bijeenkomst&#039;   =&amp;gt; $groepering,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;naam&#039;          =&amp;gt; $naam,&lt;br /&gt;
      &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;buitenland&#039;    =&amp;gt; $buitenland,&lt;br /&gt;
     [&#039;nietLidNummer&#039; =&amp;gt; $nietLidNummer,]&lt;br /&gt;
     [&#039;instructies&#039;   =&amp;gt; $instructies,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $aanroep,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid als bezoeker geregistreerd&#039;,&lt;br /&gt;
    &#039;Result&#039;  =&amp;gt; $result_array);&lt;br /&gt;
&lt;br /&gt;
// A.9 Geef het array met alle locatienamen&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;           =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locatienamen niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;          =&amp;gt; &#039;Geen locatienamen gevonden&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
// A.10 Schrijf een niet-lid in op een bulletin&lt;br /&gt;
// (2019.12.05: wordt actief gebruikt in Joomla module)&lt;br /&gt;
//      Deze aanroep mag *ook* worden gebruikt om een wel-lid in te schrijven.&lt;br /&gt;
//      Voorwaarde is dat bewezen is dat er controle bestaat over het opgegeven email adres&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
      &#039;hccOptin&#039;       =&amp;gt; $hccOptin,       // bulletin waarop ingeschreven wordt&lt;br /&gt;
      &#039;hccOptinSource&#039; =&amp;gt; $hccOptinSource, // site waar aanmelding vandaan komt&lt;br /&gt;
      &#039;Email&#039;          =&amp;gt; $Email,          // niet-lid: email adres&lt;br /&gt;
      &#039;Naam&#039;           =&amp;gt; $Naam,           // niet-lid: naam&lt;br /&gt;
     [&#039;hccLidNummer&#039;   =&amp;gt; $hccLidNummer,]  // optioneel: ik ben lid, dit is mijn lidnummer&lt;br /&gt;
     [&#039;Postcode&#039;       =&amp;gt; $Postcode,]      // optioneel: niet-lid: postcode&lt;br /&gt;
     [&#039;Huisnummer&#039;     =&amp;gt; $Huisnummer,]    // optioneel: niet-lid: huisnummer&lt;br /&gt;
     [&#039;hccGeslacht&#039;    =&amp;gt; $hccGeslacht,] // optioneel: niet-lid: geslacht (M/V/O)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Inschrijving op bulletin gelukt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                   &#039;Gegevenscombinatie onjuist&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid DN syntax&#039;    |&lt;br /&gt;
                   &#039;Invalid credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.11 Toon bezoekers aantallen&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
//&lt;br /&gt;
// ==&amp;gt; Mag weg: laatste aanroep 2018.12.15 &amp;lt;==&lt;br /&gt;
//&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]      // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;BezoekersAantallen opgevraagd&#039;,&lt;br /&gt;
    &#039;Datum&#039;       =&amp;gt; $datum,&lt;br /&gt;
    &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,&lt;br /&gt;
    &#039;Bezoekers&#039;   =&amp;gt; array(&lt;br /&gt;
      [HCC!seniorenacademie] =&amp;gt; Array(&lt;br /&gt;
        [Gorinchem] =&amp;gt; 15&lt;br /&gt;
        [Woerden]   =&amp;gt; 36)&lt;br /&gt;
      ...));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.12 GeefAlleBulletins&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Bulletins opgevraagd&#039;,&lt;br /&gt;
    &#039;bulletins&#039;       =&amp;gt; $bulletins);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.13 ExpandeerPostcode&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Postcode opgevraagd&#039;,&lt;br /&gt;
    &#039;detailgegevens&#039;  =&amp;gt; $detailgegevens);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.25 UpdateNAW&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateNAW&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;toevoeging&#039;    =&amp;gt; $toevoeging,&lt;br /&gt;
      &#039;straat&#039;        =&amp;gt; $straat,&lt;br /&gt;
      &#039;woonplaats&#039;    =&amp;gt; $woonplaats,&lt;br /&gt;
      &#039;landcode&#039;      =&amp;gt; $landcode,&lt;br /&gt;
      &#039;email&#039;         =&amp;gt; $email,&lt;br /&gt;
      &#039;voornaam&#039;      =&amp;gt; $voornaam,&lt;br /&gt;
      &#039;voorletters&#039;   =&amp;gt; $voorletters,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateContactGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Contactgegevens bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.18 NormaliseerTelefoon&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLand&#039;        =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Telefoonnummer genormaliseerd&#039;,&lt;br /&gt;
    &#039;Telefoonnummer&#039;  =&amp;gt; $Telefoonnummer);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.20 UpdateMobiel&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateMobiel&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateMobiel&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Mobiel nummer bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.21 HaalIGBedragenOp&lt;br /&gt;
//      Geef alle IG&#039;s waar je zelf lid van kunt worden, inclusief het bijbehorende bedrag&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Interessegroepen en bedragen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.22 HaalTariefGroepenOp&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Tariefgroepen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.23 PasInteressegroepAan&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;nieuw&#039;         =&amp;gt; $IG_lijst_nieuw,]&lt;br /&gt;
     [&#039;weg&#039;           =&amp;gt; $IG_lijst_weg,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;IG keuzen aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.24 GeefSSOUrls&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;SSO_urls&#039;        =&amp;gt; $sso_urls,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Single Sign On URLs opgevraagd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken beheer pagina **&lt;br /&gt;
// A.26 Verwijder een niet-lid record&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnummer,   // het te verwijderen niet-lid nummer&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Niet-lid record verwijderd&#039;,&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid record niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** HenZ **&lt;br /&gt;
// ** t.b.v. daily cron job  **&lt;br /&gt;
// ** t.b.v. dagelijkse opschoon jobs Joomla template sites **&lt;br /&gt;
// C.1 Vraag de lijst met uitgeschreven leden op&lt;br /&gt;
//     Dit kan beperkt worden tot een bepaalde regio of interessegroep&lt;br /&gt;
//     Daarnaast kan het tijdvak waarin gezocht wordt vrij gekozen worden&lt;br /&gt;
//     (gesteld dat de LDAP database nog leden uit die periode bevat)&lt;br /&gt;
//     Antwoord: lijst met (lidnummer, hccLogin, sn,&lt;br /&gt;
//                          datum einde lidmaatschap (formaat:YYYYMMDD))&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; GeefUitgeschrevenLeden &amp;lt;== (oud: GeefOpgezegdeLeden)&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccRegio&#039;       =&amp;gt; $hccRegio,    // of leeg&lt;br /&gt;
      &#039;hccIg&#039;          =&amp;gt; $hccIg,       // of leeg&lt;br /&gt;
      &#039;datum_vanaf&#039;    =&amp;gt; $datum_sinds, // YYYY-MM-DD of YYYYMMDD of leeg (leeg: 3 dagen geleden)&lt;br /&gt;
      &#039;datum_tot&#039;      =&amp;gt; $datum_tot,   // YYYY-MM-DD of YYYYMMDD of leeg (leeg: vandaag)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Uitgeschreven leden&#039;,&lt;br /&gt;
   [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
   [&#039;hccIg&#039;       =&amp;gt; $hccIg,]&lt;br /&gt;
   [&#039;datum_vanaf&#039; =&amp;gt; $datum_vanaf,]&lt;br /&gt;
   [&#039;datum_tot&#039;   =&amp;gt; $datum_tot,]&lt;br /&gt;
   [&#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
     [array(&lt;br /&gt;
        &#039;hccLogin&#039;               =&amp;gt; $hccLogin,&lt;br /&gt;
        &#039;hccLidNummer&#039;           =&amp;gt; $hccLidnummer,&lt;br /&gt;
        &#039;sn&#039;                     =&amp;gt; $sn,&lt;br /&gt;
        &#039;DatumEindeLidmaatschap&#039; =&amp;gt; $DatumEindeLidmaatschap)]*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCCpartner aanroepen ===&lt;br /&gt;
(interface versie 1)&amp;lt;br&amp;gt;&lt;br /&gt;
(oude interface, niet meer gebruiken!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.1 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    array(&#039;partnerLogin&#039;,    $partnerLogin),&lt;br /&gt;
    array(&#039;partnerPassword&#039;, $partnerPassword),&lt;br /&gt;
    array(&#039;hccLidnummer&#039;,    $hcclidnummer),&lt;br /&gt;
    array(&#039;postcode&#039;,        $postcode)));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;TRUE&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;FALSE&#039;));&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Onjuiste credentials&#039;));&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
     &#039;HCCpartner&#039;,&lt;br /&gt;
     array(&lt;br /&gt;
       &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
       array(&#039;parameter&#039;, $iets)));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;OnbekendeAanroep&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Opdracht onbekend&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCCpartners aanroepen ===&lt;br /&gt;
(interface versie 2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.2 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;          =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
      &#039;partnerLogin&#039;    =&amp;gt; $partnerLogin,&lt;br /&gt;
      &#039;partnerPassword&#039; =&amp;gt; $partnerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hcclidnummer,&lt;br /&gt;
      &#039;postcode&#039;        =&amp;gt; $postcode,&lt;br /&gt;
     [&#039;ServerID&#039;        =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;          =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;        =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;groepering=$groepering&#039;]); // als de partner beperkt is tot 1 groepering&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;FALSE&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;    =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
      &#039;parameter&#039; =&amp;gt; $iets));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Opdracht onbekend&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-kader aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** beheer.hcc.nl **&lt;br /&gt;
// F.2 Controleer of dit een kaderlid is&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsKaderLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Is kaderlid&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;cn&#039;              =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;              =&amp;gt; $sn,&lt;br /&gt;
    &#039;hccRol&#039;          =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;mail&#039;            =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;      =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;    =&amp;gt; $hccKaderMail,&lt;br /&gt;
    &#039;hccKaderForward&#039; =&amp;gt; $hccKaderForward);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Is geen kaderlid&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.4 Vraag alle groeperingen op&lt;br /&gt;
// Het is mogelijk om een groepering te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  ToonInOverzichtenFilter : attribuut &#039;hccToonInOverzichten&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  BulletinsFilter         : attribuut &#039;hccBulletins&#039;&lt;br /&gt;
//  EmailFilter             : attribuut &#039;hccFunctionalEmail&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;                =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;                  =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;                =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;          =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;BulletinsFilter&#039;         =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;EmailFilter&#039;             =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;&#039; | &#039;TRUE&#039;));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;                  =&amp;gt; &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    &#039;Status&#039;                  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;                 =&amp;gt; &#039;Lijst met groeperingen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;                  =&amp;gt; $groeperingen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;          =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.5 Vraag alle kaderrollen op&lt;br /&gt;
// Het is mogelijk om een kaderrol  te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Lijst met kaderrollen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;             =&amp;gt; $kaderrollen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de kantoor-beheerpagina **&lt;br /&gt;
// F.9 Geef de gevevens van de mailbox van dit kaderlid&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;     =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039;  =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039;));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de Joomla Kadernet module **&lt;br /&gt;
//  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID en als extra hccCode van de aanvrager)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccCode&#039;        =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
      &#039;hccLidnummer    =&amp;gt; $hccLidnummer, // lidnummer van het te muteren hcc lid&lt;br /&gt;
      &#039;hccRol&#039;         =&amp;gt; $hccRol,       // de nieuwe dan wel op te heffen rol&lt;br /&gt;
                                         // de rol &#039;ALLES_WEG&#039; ruimt alle rollen van dit hcc lid voor deze groepering op&lt;br /&gt;
      &#039;actie&#039;          =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Groepering samenstelling aangepast&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Bedankmail gestuuurd aan ex-kaderlid&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Oude rol niet gevonden&#039; |&lt;br /&gt;
		   &#039;Nieuwe rol kan niet samen met bestaande rol&#039; |&lt;br /&gt;
		   &#039;Alleen voorzitter of secretaris kan kadermutaties uitvoeren&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-groepering aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// I.2 controleer of een gebruiker bestaat op basis van de combinatie&lt;br /&gt;
//     lidnummer + postcode + huisnummer&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
// (alternatieve authenticatie mogelijk door lidnummer + hcc-code in te vullen)&lt;br /&gt;
//&lt;br /&gt;
// Aan de aanroeper worden zekere eisen gesteld:&lt;br /&gt;
// * dient een rol te vervullen binnen de groepering &#039;FOR&#039;(forum)&lt;br /&gt;
// * dan wel dient de rol &#039;VRBK&#039; (vraagbaak) te vervullen binnen een groepering&lt;br /&gt;
//&lt;br /&gt;
// Er wordt door de gehele leden-database gezocht, waarna terug wordt gegeven &lt;br /&gt;
// * of dit hcc lid inderdaad bestaat&lt;br /&gt;
// en, als het om een aanvraag van een vraagbaak vrijwilliger gaat, &lt;br /&gt;
// * tevens of het gezochte hcc lid deel uitmaakt van zijn groepering&lt;br /&gt;
//&lt;br /&gt;
// ==&amp;gt; Mag weg: laatste aanroep 2018.07.27 &amp;lt;==&lt;br /&gt;
//&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;        =&amp;gt; [$hccLogin | $hccLidnummer],&lt;br /&gt;
      &#039;userPassword&#039;    =&amp;gt; [$userPassword | $hccCode],&lt;br /&gt;
      &#039;zoekhccLidnr&#039;    =&amp;gt; $zoekhccLidnr,&lt;br /&gt;
      &#039;zoekhccPostcode&#039; =&amp;gt; $zoekhccPostcode,&lt;br /&gt;
      &#039;zoekhccHuisnr&#039;   =&amp;gt; $zoekhccHuisnr,&lt;br /&gt;
      &#039;zoekgroepering&#039;  =&amp;gt; $zoekgroepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens gecontroleerd&#039;,&lt;br /&gt;
   [&#039;Groeperingslid&#039; =&amp;gt; $IsGroeperingLid]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker bestaat niet&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Wel HCC lid, maar geen lid van groepering $groepering&#039; |&lt;br /&gt;
                 &#039;Onvoldoende rechten&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HenZ aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// I.3 Geef de einddatum van een actief dan wel uitgeschreven lid&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
    &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccEindDatum&#039; =&amp;gt; $hccEindDatum (&#039;yyyymmdd&#039; | &#039;&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;Lidnummer niet gevonden&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== (Forum,vraagbaak) onderwerpen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// L.1 MaakOnderwerp&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is aangemaakt&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.2 VerwijderOnderwerp&lt;br /&gt;
&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is verwijderd&#039;,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039;            |&lt;br /&gt;
                   &#039;Geen webmaster&#039;                 |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;         |&lt;br /&gt;
		   &#039;Ruim eerst alle geautoriseerde gebruikers op&#039; |&lt;br /&gt;
		   &#039;Kan onderwerp niet verwijderen&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.3 GeefOnderwerpen &lt;br /&gt;
// Geef het array met de lijst van onderwerpen voor de betreffende groepering&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerpen opgevraagd&#039;,&lt;br /&gt;
    &#039;onderwerpen&#039; =&amp;gt; $onderwerpen); // het array met onderwerpen&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.4 MuteerOnderwerp&lt;br /&gt;
// Pas de description van een onderwerp aan&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
   &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
   array(&lt;br /&gt;
     &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
     &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
     &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
     &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     &#039;groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
     &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
     &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp aangepast&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039; |&lt;br /&gt;
		   &#039;Onderwerp behoort bij andere groepering&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
// Geef kaderlid $kaderLidNr de autorisatie MOD, VRBK of RED bij onderwerp $onderwerp&lt;br /&gt;
// (of haal die autorisatie weg)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
    &#039;onderwerp&#039;      =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;kaderLidNr&#039;     =&amp;gt; $kaderLidNr,&lt;br /&gt;
    &#039;hccAutorisatie&#039; =&amp;gt; &#039;MOD&#039; | &#039;VRBK&#039; | &#039;RED&#039;,&lt;br /&gt;
   [&#039;verwijder&#039;      =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp autorisatie aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Onjuiste autorisatie opgegeven&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Autorisaties opgehaald&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;    =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039;  =&amp;gt; $description,&lt;br /&gt;
    &#039;autorisaties&#039; =&amp;gt; &lt;br /&gt;
      [Array(&lt;br /&gt;
        &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer&lt;br /&gt;
        &#039;cn&#039;              =&amp;gt; $cn&lt;br /&gt;
        &#039;hccAutorisatie&#039;  =&amp;gt; {komma-gescheiden autorisaties})]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Dynamics Cloud (Cayentis) onderwerpen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// M.1 Upload_CSV_bestand&lt;br /&gt;
// De CRM proxy upload de dagelijkse CSV synchronisatie-bestanden naar de XML-RPC server&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;      =&amp;gt; $beheerLogin,     // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039;   =&amp;gt; $beheerPassword,  // xml-rpc password&lt;br /&gt;
    &#039;CSV_bestand_type&#039; =&amp;gt; &#039;1&#039; | &#039;2&#039; | &#039;3&#039; , // 1=Contactpersonen/Hoofdlidmaatschappen&lt;br /&gt;
                                            // 2=Gremiumlidmaatschap codes&lt;br /&gt;
                                            // 3=Gremiumlidmaatschappen&lt;br /&gt;
    &#039;CSV_bestand&#039;      =&amp;gt; $CSV_bestand));   // het CSV bestand (base64 encoded)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bestand opgeslagen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.2 SchrijfNieuwLidIn&lt;br /&gt;
// &lt;br /&gt;
// Maak in het CRM een nieuw HCC lid aan&lt;br /&gt;
// De NAW gegevens worden in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;NAWgegevens&#039;    =&amp;gt; $NAW_Array,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress);&lt;br /&gt;
// $NAW_array = array(&lt;br /&gt;
//   &#039;GeboorteDatum&#039;         =&amp;gt; $geboortedatum,&lt;br /&gt;
//   &#039;Geslacht&#039;              =&amp;gt; $geslacht,&lt;br /&gt;
//   &#039;Voornaam&#039;              =&amp;gt; $voornaam,&lt;br /&gt;
//   &#039;Voorletters&#039;           =&amp;gt; $voorletters,&lt;br /&gt;
//   &#039;Tussenvoegsel&#039;         =&amp;gt; $tussenvoegsel,&lt;br /&gt;
//   &#039;Achternaam&#039;            =&amp;gt; $achternaam,&lt;br /&gt;
//   &#039;Straatnaam&#039;            =&amp;gt; $straatnaam,&lt;br /&gt;
//   &#039;Huisnummer&#039;            =&amp;gt; $huisnummer,&lt;br /&gt;
//   &#039;HuisnummerToevoeging&#039;  =&amp;gt; $huisnummertoevoeging,&lt;br /&gt;
//   &#039;Woonplaats&#039;            =&amp;gt; $woonplaats,&lt;br /&gt;
//   &#039;Postcode&#039;              =&amp;gt; $postcode,&lt;br /&gt;
//   &#039;Land&#039;                  =&amp;gt; $land,&lt;br /&gt;
//   &#039;Telefoonnummer&#039;        =&amp;gt; $telefoonnummer,&lt;br /&gt;
//   &#039;MobielNummer&#039;          =&amp;gt; $mobielnummer,&lt;br /&gt;
//   &#039;Mail&#039;                  =&amp;gt; $mail,&lt;br /&gt;
//   &#039;IBAN&#039;                  =&amp;gt; $IBAN,&lt;br /&gt;
//   &#039;Interessegroep&#039;        =&amp;gt; $IGs, // komma-gescheiden lijst met IG&#039;s&lt;br /&gt;
//   &#039;Geschenk&#039;              =&amp;gt; $geschenk,&lt;br /&gt;
//   &#039;Actiecode&#039;             =&amp;gt; $actiecode,&lt;br /&gt;
//   &#039;Voorwaarden&#039;           =&amp;gt; $Akkoord); // &#039;Akkoord&#039;&lt;br /&gt;
)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;nieuw lid ingeschreven&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;  =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccCode&#039;   =&amp;gt; $hccCode);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.3 Verwerk_JSON_mutatie&lt;br /&gt;
// De CRM proxy kan NAW en/of IG mutaties en/of hccCode mutaties live doorgeven&lt;br /&gt;
// Deze gegevens worden in JSON in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;mutatie_type&#039;   =&amp;gt; &#039;1&#039; | &#039;2&#039;,       // 1=Contactpersoon/Hoofdlidmaatschap&lt;br /&gt;
                                         // 2=Gremiumlidmaatschap&lt;br /&gt;
    &#039;JSON_mutatie&#039;   =&amp;gt; $JSON_mutatie)); // de JSON payload&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Mutatie verwerkt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.4 Vertaal landcode&lt;br /&gt;
// Het CRM werkt met numerieke landcodes, wij met cijfers&lt;br /&gt;
// Vertaal die&lt;br /&gt;
// Er moet in de aanroep 1 veld aanwezig zijn, beide waarden komen in het antwoord terug&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ISO_landcode&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    [&#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,]&lt;br /&gt;
    [&#039;ISO_code   &#039;  =&amp;gt; $ISO_code]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;ISO code lookup geslaagd&#039;,&lt;br /&gt;
    &#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,&lt;br /&gt;
    &#039;ISO_code   &#039;  =&amp;gt; $ISO_code,&lt;br /&gt;
    &#039;ISO_benaming&#039; =&amp;gt; $ISO_benaming); // de descriptive name van deze ISO code&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Kan geen bijpassende vertaling vinden&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.5 MuteerAanmeldingsformulier&lt;br /&gt;
// Sla een JSON veld op in de XML-RPC server zodat deze weer opgehaald kan worden door de websites&lt;br /&gt;
// Authenticatie op basis van hccLidnummer en JoomlaToken&lt;br /&gt;
// Deze mutaties mogen alleen door HN#WM of SITE#WM gedaan worden.&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    MuteerAanmeldingsformulier,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;formulierdata&#039; =&amp;gt; $formulierdata, // JSON veld met alle gegevens voor het aanmeld formulier&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress ));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;MuteerAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;aanmeldingsformulier bijgewerkt&#039;;&lt;br /&gt;
 &lt;br /&gt;
// M.6 HaalAanmeldingsformulier&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    HaalAanmeldingsformulier,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;HaalAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;formulierdata&#039; =&amp;gt; $formulierdata); // JSON veld met alle gegevens voor het aanmeld formulier &lt;br /&gt;
&lt;br /&gt;
// M.7 GeefFactuurOverzicht&lt;br /&gt;
// (authenticatie op basis van hccLidnummer + JoomlaToken + siteID&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    GeefFactuurOverzicht,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),]&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID, &lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;           =&amp;gt; &#039;GeefFactuurOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;           =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;FactuurOverzicht&#039; =&amp;gt; $FactuurOverzicht); &lt;br /&gt;
//  $FactuurOverzicht =&lt;br /&gt;
//     array(&lt;br /&gt;
//       array(&lt;br /&gt;
//         &#039;FactuurID&#039;     =&amp;gt; &#039;a5b93460-4536-ea11-a813-000d3a2c53fa&#039;,&lt;br /&gt;
//         &#039;FactuurNummer&#039; =&amp;gt; &#039;200118673J5&#039;&lt;br /&gt;
//         &#039;FactuurDatum&#039;  =&amp;gt; &#039;2020-01-15&#039;&lt;br /&gt;
//         &#039;bedrag&#039;        =&amp;gt; 42.37&lt;br /&gt;
//         &#039;BetaalStatus&#039;  =&amp;gt; 0]));&lt;br /&gt;
//     )&lt;br /&gt;
&lt;br /&gt;
// M.8 HaalFactuur&lt;br /&gt;
// (authenticatie op basis van JoomlaToken of FactuurToken)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    HaalFactuur,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;FactuurToken&#039;  =&amp;gt; $FactuurToken,]&lt;br /&gt;
      &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalFactuur&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;factuur&#039; =&amp;gt; $factuurgegevens); &lt;br /&gt;
//  $factuurgegevens =&lt;br /&gt;
//    array(&lt;br /&gt;
//         &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
//         &#039;FactuurDatum&#039;  =&amp;gt; $FactuurDatum,&lt;br /&gt;
//         &#039;FactuurID&#039;     =&amp;gt; $FactuurID,&lt;br /&gt;
//         &#039;Bestandsnaam&#039;  =&amp;gt; $Bestandsnaam,&lt;br /&gt;
//         &#039;PDF&#039;           =&amp;gt; $PDF) // base64 encoded PDF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Echo test ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// t.b.v. controle of de verbinding met de XML-RPC server functioneert&lt;br /&gt;
// Eenvoudige echo test&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;echo&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;What&#039;     =&amp;gt; $string,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;echo&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; $string);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HenZ XML-RPC interface ===&lt;br /&gt;
&lt;br /&gt;
Overzicht van XML-RPC procedures die bij HenZ draaien&lt;br /&gt;
(worden via de Hobbynet XML-RPC server afgehandeld)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- Action=2&lt;br /&gt;
  wijzig gebruikersnaam en wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=3&lt;br /&gt;
  controleer of een gebruikersnaam bestaat&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.2)&lt;br /&gt;
&lt;br /&gt;
- Action=4&lt;br /&gt;
  creer een nieuwe gebruiker. Per lidnummer is er 1 account. Als er al een &lt;br /&gt;
  account voor dit lidnummer bestaat wordt het bestaande account hernoemd.&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.1)&lt;br /&gt;
&lt;br /&gt;
- Action=5&lt;br /&gt;
  wijzig wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=7&lt;br /&gt;
  Uitgeschreven lid is weer actief lid geworden&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&lt;br /&gt;
- Action=8&lt;br /&gt;
  Lid heeft een nieuwe hcc-code gekregen&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Release notes ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2012.02.08 Wijzigingen versie 5:&lt;br /&gt;
 - 4.1 verwijder_hcc_Lidnummer i.p.v. hcc_Lidnummer&lt;br /&gt;
 - 4.1 optionele extra parameter verwijder_hccLogin&lt;br /&gt;
 - Optionele parameters aangegeven&lt;br /&gt;
 - Vanwege de duidelijkheid de beheerLogin en beheerPassword velden&lt;br /&gt;
   bovenin de betreffende aanroepen gezet&lt;br /&gt;
   (De volgorde van de parameters is niet relevant, dus dit is geen&lt;br /&gt;
    interface-aanpassing)&lt;br /&gt;
2012.02.16 Wijzigingen versie 6:&lt;br /&gt;
 - 2.1/2.2/2.3 geef ook cn en sn terug na aanpassen van het wachtwoord&lt;br /&gt;
 - 3.1 geef cn en sn terug na aanmaken nieuwe gebruiker&lt;br /&gt;
2012.02.27 Wijzigingen versie 7:&lt;br /&gt;
 - Neem de XML-RPC interface van HenZ in deze XML-RPC server op&lt;br /&gt;
   8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gegevens tevens in LDAP op&lt;br /&gt;
 - 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.2 wijzig wachtwoord, optie 2&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * gebruikersnaam kan niet meer via deze interface aangepast worden&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.3 wijzig wachtwoord, optie 3&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
2012.03.26 Wijzigingen versie 8:&lt;br /&gt;
  - Breidt de XML-RPC interface van HenZ in deze XML-RPC server uit met&lt;br /&gt;
    8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
2012.04.09 Wijzigingen versie 9:&lt;br /&gt;
 - Vervang alle &#039;ldap&#039; aanroepen door &#039;HCCldap&#039; aanroepen&lt;br /&gt;
 - documentatie van HenZ call action=2 aangepast, action=5 toegevoegd&lt;br /&gt;
2012.05.03 Wijzigingen versie 10:&lt;br /&gt;
 - 1.1 / 1.2 / 1.3 geven nu ook &#039;ProfielBekend&#039; terug om uniek te bepalen&lt;br /&gt;
   of deze bezoeker een first-time-login pagina te zien dient te krijgen&lt;br /&gt;
 - documentatie van 2.1 (wijzig wachtwoord) aangepast: &lt;br /&gt;
   2.1 kan alleen als profiel is doorlopen&lt;br /&gt;
 - nieuwe procedure t.b.v. zoekscherm PC30&lt;br /&gt;
   * A.1 ZoekHCCLid &lt;br /&gt;
     - hiervoor is de database met diverse velden uitgebreid&lt;br /&gt;
       (postcode, e-mailadres, huisadres, woonplaats, land, telefoonnummer)&lt;br /&gt;
       Dit heeft impact op diverse andere procedures (t.b.s.)&lt;br /&gt;
 - nieuwe procedure t.b.v. &#039;gewone&#039; profielpagina&lt;br /&gt;
   * B.1 GeefDBFPersoonID&lt;br /&gt;
 - nieuwe procedure t.b.v. cron-job&lt;br /&gt;
   * C.1 GeefOpgezegdeLeden&lt;br /&gt;
2012.05.10 Wijzigingen versie 11&lt;br /&gt;
 - 1.3 GebruikerBestaatControle&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
   * nieuw veld in antwoord: hccPseudoniem&lt;br /&gt;
 - 2.3 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 2.4 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * nieuwe parameter: nieuw_hccPseudoniem&lt;br /&gt;
   * alle parameters zijn verplicht (niet langer optioneel)&lt;br /&gt;
   * nieuw antwoord: Gegevenscombinatie onjuist&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * Nieuwe procedure t.b.v. 1e keer doorlopen profielpagina&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * &#039;Zoeklimiet bereikt&#039; wordt als ExtraInfo meegegeven&lt;br /&gt;
   * nieuwe velden in antwoord: hccPseudoniem en hccLogin&lt;br /&gt;
 - B.1 GeefDBFPersoonID&lt;br /&gt;
   * Zoeken kan nu ook op hccLogin en op hccPseudoniem&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden&lt;br /&gt;
   * Geef nu ook hccLogin en hccPseudoniem terug&lt;br /&gt;
2012.05.14 Wijzigingen versie 12&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook DBFPersoonID terug&lt;br /&gt;
 - 4.1 Gooi een gebruiker weg.&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 5.1 Wijzig hccIG&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 6.1 Wijzig hccRegio&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 7.1 Wijzig hccRol&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
2012.05.20 Wijzigingen versie 13&lt;br /&gt;
 - A.1 ZoekHCCLid &lt;br /&gt;
   * Geef resultaten gestructureerder formaat&lt;br /&gt;
   * Geef in ExtraInfo weer hoeveel echte resultaten er gevonden zijn&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef resultaten in gestructureerder formaat&lt;br /&gt;
2012.06.03 Wijzigingen versie 14&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * Geef ook DBFPersoonID mee&lt;br /&gt;
2012.08.17 Wijzigingen versie 15&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef ook hccLogin in het antwoord terug&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.09.29 Wijzigingen versie 16&lt;br /&gt;
 - Alle cron gerelateerde opdrachten verwijderd&lt;br /&gt;
   * 3.1 NieuweGebruiker&lt;br /&gt;
   * 4.1 GooiGebruikerWeg&lt;br /&gt;
   * 5.1 WijzigHccIG&lt;br /&gt;
   * 6.1 WijzigHccRegio&lt;br /&gt;
   * 7.1 WijzigHccRol&lt;br /&gt;
2012.10.28 Wijzigingen versie 17&lt;br /&gt;
 - nieuwe procedure t.b.v. PC30 beheerpagina&lt;br /&gt;
   * A.2 HaalPC30Token&lt;br /&gt;
 - nieuwe procedure t.b.v. Drupal profielpagina&lt;br /&gt;
   * 2.4 vervallen &lt;br /&gt;
     (WijzigGebruikersGegevens op basis van pseudoniem)&lt;br /&gt;
   * 2.5 WijzigGebruikersGegevens&lt;br /&gt;
     Nieuwe keuze: wijzig pseudoniem&lt;br /&gt;
2012.11.14 Wijzigingen versie 18&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook mail in het antwoord terug&lt;br /&gt;
2012.11.30 Wijzigingen versie 19&lt;br /&gt;
 - E.1 HCCkader/WijzigGebruikersGegevens&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.1 / F.2 / F.3 ControleerKaderlid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.12.18 Wijzigingen versie 20&lt;br /&gt;
 - Haal DBFPersoonID weg uit alle aanroepen en alle resultaten&lt;br /&gt;
   * Antwoord van 1.x GebruikerBestaatControle&lt;br /&gt;
   * B.1 GeefDBFPersoonID opgeheven&lt;br /&gt;
 - A.1 ZoekHCCLid geeft nu ook hccMobiel terug (t.b.v. PC30 zoekpagina)&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden verder uitgewerkt:&lt;br /&gt;
   * Geeft alleen de door Drupal gebruikte velden &#039;hccLogin&#039; en &#039;hccEindDatum&#039;&lt;br /&gt;
     terug in het antwoord&lt;br /&gt;
   * Geeft nu &#039;echte&#039; antwoorden i.p.v. dummy resultaten&lt;br /&gt;
 - F.1 ControleerKaderlid geeft nu ook optioneel &#039;sn&#039; en &#039;givenName&#039; &lt;br /&gt;
     terug (in de beheer-variant)&lt;br /&gt;
2013.01.25 Wijzigingen versie 21&lt;br /&gt;
 - A.1 ZoekHCCLid uitgebreid&lt;br /&gt;
   * Geeft nu ook hccBeginDatum, hccEindDatum en hccRol terug&lt;br /&gt;
2013.02.02 Wijzigingen versie 22&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * Interface aangepast&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2013.03.01 Wijzigingen versie 23&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Geeft andere resultaten terug&lt;br /&gt;
 - 2.2 WijzigWachtwoord&lt;br /&gt;
   * Geeft nu ook hccLogin terug (voor ww-vergeten op de Drupal site)&lt;br /&gt;
 - HCCenquete implementatie&lt;br /&gt;
   * G.1 Expandeer NL postcode&lt;br /&gt;
   * G.2 Haal lidgegevens op&lt;br /&gt;
   * G.3 Pas lidgegevens aan&lt;br /&gt;
2013.03.18 Wijzigingen versie 24&lt;br /&gt;
 - ZoekGroeperingsLid op basis van token&lt;br /&gt;
 - A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - A.5 VraagLidgegevensTokenAan&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2013.04.07 Wijzigingen versie 25&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   Simpeler interface ontwikkeld (&#039;HCCpartners&#039; i.p.v. &#039;HCCpartner&#039;)&lt;br /&gt;
 - G.3 mag ook Tussenvoegsels aanpassen&lt;br /&gt;
2013.04.25 Wijzigingen versie 26&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   Nieuwe interface voor validatie vanaf groeperings websites&lt;br /&gt;
2013.05.03 Wijzigingen versie 27&lt;br /&gt;
 - 2.6 HaalOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.8 HaalOptInLijst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - HCCpartners aanroep nieuwe interface (&#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;)&lt;br /&gt;
2013.07.05 Wijzigingen versie 28&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * extra parameters (mail, hccPseudoniem) in het antwoord&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
2013.08.31 Wijzigingen versie 29&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / ControleerKaderlid&lt;br /&gt;
   * extra output parameter (hccKaderMail)&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccForumLogin)&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   * komma-gescheiden lijst met groeperingen mogelijk&lt;br /&gt;
   * extra output parameter (mailHccnet)&lt;br /&gt;
2013.12.26 Wijzigingen versie 30&lt;br /&gt;
 - 3.1 Geef mijn lidnummer&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * geef nu ook &#039;ProfielBekend&#039; terug om aan de PC30 omgeving door te geven&lt;br /&gt;
     dat het wachtwoord niet veranderd mag worden door PC30&lt;br /&gt;
 - A.6 GeefBezoekersOverzicht&lt;br /&gt;
   * geef nu ook &#039;Locatie&#039; terug indien van toepassing&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * parameters aangepast&lt;br /&gt;
   * authenticatie op basis van hccLogin + userPassword of lidnummer + hcc-code&lt;br /&gt;
   * geen algemene hcc-forum authenticatie meer mogelijk&lt;br /&gt;
 - F.7 ControleerKaderlidGroep&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2014.02.01 Wijzigingen versie 31&lt;br /&gt;
 - A.8 RegistreerGast&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - nieuwe interface (losse, unieke aanroepen, niet meer gegroepeerd)&lt;br /&gt;
2014.09.27 Wijzigingen versie 32&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden hernoemd naar GeefUitgeschrevenLeden&lt;br /&gt;
 - I.3 GeefhccEindDatum&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - Action=7 en Action=8 toegevoegd aan de HenZ interface&lt;br /&gt;
2014.12.12 Wijzigingen versie 33&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / IsKaderLid&lt;br /&gt;
   * extra output parameter (mail, mailHccnet, hccKaderForward)&lt;br /&gt;
 - F.8 HCC-kader / ZetKaderForward&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.05.06 Wijzigingen versie 34&lt;br /&gt;
 - GeefMijnGegevens&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - ValideerPCActiveAbonnee&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 1.4 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccKaderForward)&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * optionele extra output parameter (ExtraInfo)&lt;br /&gt;
2015.09.27 Wijzigingen versie 35&lt;br /&gt;
 - HeeftForumCredentials&lt;br /&gt;
   * vervallen&lt;br /&gt;
2015.11.20 Wijzigingen versie 36&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.12.13 Wijzigingen versie 37&lt;br /&gt;
 - serverID als optionele parameter&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * Maak velden optioneel&lt;br /&gt;
2016.01.05 Wijzigingen versie 38&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
2016.01.15 Wijzigingen versie 39&lt;br /&gt;
 - H.3 GeefMijnGegevens&lt;br /&gt;
   * geeft nu ook hccOptIn terug&lt;br /&gt;
   * geeft nu ook JoomlaToken terug&lt;br /&gt;
 - H.4 PasOptInKeuzeAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - SiteID en RemoteID als optionele parameter&lt;br /&gt;
2016.03.17 Wijzigingen versie 40&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.03.20 Wijzigingen versie 41&lt;br /&gt;
 - ServerID, SiteID en RemoteID als optionele parameters bij alle aanroepen&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - A.9 GeefLocatieNamen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.6 WijzigHccRol&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - F.7 IsGroeperingsKaderlid&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.5 WijzigGebruikersGegevens (hccPseudoniem)&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * vervallen&lt;br /&gt;
2016.04.02 Wijzigingen versie 42&lt;br /&gt;
 - H.6 GeefMijnKaderDetails&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.07.03 Wijzigingen versie 43&lt;br /&gt;
 - Ubuntu 16.04 aanpassingen (PHP versie 7) beschreven&lt;br /&gt;
2016.09.01 Wijzigingen versie 44&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * extra parameter &#039;hccMobiel&#039;&lt;br /&gt;
2016.10.13 Wijzigingen versie 45&lt;br /&gt;
 - H.3 GeefMijnGegevens (dedecated Joomla aanroep)&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
   * Als het om een webmaster gaat, vul dan eventueel hccRegio of hccIG aan &lt;br /&gt;
     met die groepering, ook als hij geen lid is van die groepering&lt;br /&gt;
 - I.4 GebruikerBestaatControle&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
2016.12.01 Wijzigingen versie 46&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar teruggezet&lt;br /&gt;
2017.05.28 Wijzigingen versie 47&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens (t.b.v. eenmalige kadermailing)&lt;br /&gt;
 - H.8 ZetMinimaleKaderGegevens  (t.b.v. eenmalige kadermailing)&lt;br /&gt;
2017.09.01 Wijzigingen versie 48&lt;br /&gt;
 - A.10 SchrijfNietlidInOpBulletin nu alleen voor 1 bulletin tegelijk&lt;br /&gt;
 - 2.2 WijzigGebruikersGegevens (op basis van gebruikersnaam en wachtwoord)&lt;br /&gt;
       is vervallen (was een oude Drupal aanroep)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens geeft ook hccKaderToonMobiel terug&lt;br /&gt;
2017.11.14 Wijzigingen versie 49&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft geen hccKaderToonMobiel meer terug&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft alleen hccMobiel als hccKaderToonMobiel dat toestaat&lt;br /&gt;
2018.02.18 Wijzigingen versie 50&lt;br /&gt;
 - H.6 GeefMijnKaderDetails geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.9 PasKaderGegevensAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft 3 extra parameters terug (hccKaderMail, hccKaderForward,&lt;br /&gt;
   hccKaderToonMobiel)&lt;br /&gt;
 - JoomlaTokens worden gevalideerd op siteID, niet langer op serverID&lt;br /&gt;
 - diverse aanroepen kunnen nu ook via de bezoekersregistratie-proxy aangeroepen worden. &lt;br /&gt;
   Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
   (GeefAlleGroeperingen, GeefAlleKaderRollen, GeefLocaties, GeefLocatieNamen)&lt;br /&gt;
   De bezoekersregistratie aanroepen hebben enkel JoomlaToken als extra parameter nodig:&lt;br /&gt;
   (LidBezoektBijeenkomst, GeefBezoekersOverzicht)&lt;br /&gt;
2018.02.26 Wijzigingen versie 51&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft extra parameter hccMobiel terug &lt;br /&gt;
 - H.9 PasKaderGegevensAan kan nu ook kadermail password aanpassen&lt;br /&gt;
 - K.1 ValideerToken&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - K.2 ValideerHCCCode&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2018.03.17 Wijzigingen versie 52&lt;br /&gt;
 - H.3 Haal al mijn gegevens&lt;br /&gt;
   Extra optie &#039;compact&#039; om alleen essentiele resultaten te verkrijgen&lt;br /&gt;
   (t.b.v. de Android bezoekersregistratie applicatie)&lt;br /&gt;
2018.03.25 Wijzigingen versie 53&lt;br /&gt;
 - I.2 IsHCCLid&lt;br /&gt;
   (Oude aanroep teruggezet, wordt nog in vraagbaak module gebruikt)&lt;br /&gt;
2018.07.01 Wijzigingen versie 54&lt;br /&gt;
   * A.1 beheer authenticatie op basis van lidnummer + hccCode (tbv VZ-portal)&lt;br /&gt;
   * A.2 HaalPC30Token weggehaald&lt;br /&gt;
2018.08.22 Wijzigingen versie 55&lt;br /&gt;
  * 1.2 GebruikerBestaatControle&#039; (op basis van hccLogin en userPassword) weggehaald&lt;br /&gt;
  * 1.4 GebruikerBestaatControle&#039; (op basis van zoekHccLogin of zoekHccLidnr) weggehaald&lt;br /&gt;
  * 2.8 HaalOptInLijst weggehaald&lt;br /&gt;
  * E.1 PasKaderWachtwoordAan weggehaald&lt;br /&gt;
  * F.1 IsKaderLid (op basis van hccLidnr en hccCode) weggehaald&lt;br /&gt;
  * F.3 IsKaderLid (op basis van beheerdernaam en beheerderwachtwoord) was al weg&lt;br /&gt;
  * F.8 ZetKaderForward weggehaald&lt;br /&gt;
  * H.1 IsGroeperingsLid weggehaald&lt;br /&gt;
  * H.6 GeefMijnKaderDetails weggehaald&lt;br /&gt;
  * H.7 GeefMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * H.8 ZetMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * K.1 ValideerHCCCode weggehaald&lt;br /&gt;
  * K.2 ValideerToken weggehaald&lt;br /&gt;
  * H.3 GeefMijnGegevens geeft omvang kader mailbox mee terug&lt;br /&gt;
2018.11.06 Wijzigingen versie 56&lt;br /&gt;
  Nieuwe aanroepen t.b.v. forum en vraagbaak autorisaties&lt;br /&gt;
  * L.1 MaakOnderwerp&lt;br /&gt;
  * L.2 VerwijderOnderwerp&lt;br /&gt;
  * L.3 GeefOnderwerpen&lt;br /&gt;
  * L.4 MuteerOnderwerp&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
  * L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
  * H.5 ZoekKaderLeden heeft compact optie&lt;br /&gt;
2018.11.16 Wijzigingen versie 57&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie kent nu ook RED(acteur)&lt;br /&gt;
2018.12.17 Wijzigingen versie 58&lt;br /&gt;
  * A.11 GeefBezoekersAantallen (nieuwe aanroep)&lt;br /&gt;
  * H.10 PasUserWachtwoordAan (nieuwe aanroep)&lt;br /&gt;
2019.02.21 Wijzigingen versie 59&lt;br /&gt;
  * A. 6 GeefBezoekersOverzicht geeft enkel lijst van bezoekers laatste bijeenkomst&lt;br /&gt;
2019.10.26 Wijzigingen versie 60&lt;br /&gt;
  * A.4 Schrijf bezoekers niet meer automatisch in op bulletins&lt;br /&gt;
  * H.4  PasOptInKeuzeAan kan ook door LA aangeroepen worden&lt;br /&gt;
  Nieuwe aanroepen t.b.v. eigen implementatie van mijn.hcc.nl in de Joomla modules&lt;br /&gt;
  * H.11 PasPseudoniemAan&lt;br /&gt;
  * H.12 ValideerWachtwoordEisen&lt;br /&gt;
  * H.13 PasWachtwoordAan (1: op JoomlaToken, 2: op PWResetToken)&lt;br /&gt;
  * H.14 MaakPWResetToken&lt;br /&gt;
  * H.15 ValideerPWResetToken&lt;br /&gt;
  * H.16 RuimJoomlaTokenOp&lt;br /&gt;
  * A.12 GeefAlleBulletins&lt;br /&gt;
  * A.13 ExpandeerPostcode&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.18 NormaliseerTelefoon&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  * A.21 HaalIGBedragenOp&lt;br /&gt;
  * A.22 HaalTariefGroepenOp&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
  * A.24 GeefSSOUrls&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  8.1 MaakGebruikerAan&lt;br /&gt;
  F.5 GeefAlleKaderRollen&lt;br /&gt;
2020.01.04 Wijzigingen versie 61&lt;br /&gt;
  Nieuwe aanroepen t.b.v. IDEAL betaling hobbynet abonnees&lt;br /&gt;
  H.17 GeefAantalDomeinen&lt;br /&gt;
2020.01.06 Wijzigingen versie 62&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Cayentis (CRM webproxy) implementatie&lt;br /&gt;
  * M.1  Upload_CSV_bestand&lt;br /&gt;
  * M.2  SchrijfNieuwLidIn&lt;br /&gt;
  * M.3  Verwerk_JSON_mutatie&lt;br /&gt;
  * M.4  ISO_landcode&lt;br /&gt;
  * M.5  MuteerAanmeldingsformulier&lt;br /&gt;
  * M.6  HaalAanmeldingsformulier&lt;br /&gt;
  * M.7  GeefFactuurOverzicht&lt;br /&gt;
  * M.8  HaalFactuur&lt;br /&gt;
  * A.25 UpdateNAW&lt;br /&gt;
  Vervallen aanroepen&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  Aangepaste aanroepen&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
2020.03.27 Wijzigingen versie 63&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.18 ResetHCCCode&lt;br /&gt;
  * H.19 PasHccLoginAan&lt;br /&gt;
2020.04.10 Wijzigingen versie 64&lt;br /&gt;
  Nieuwe aanroepen &lt;br /&gt;
  * A.26 VerwijderNietLid&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  * A.1  ZoekHCCLid: nieuwe zoekoptie &#039;niet_leden&#039;&lt;br /&gt;
  Opnieuw geimplementeerd&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
2020.11.26 Wijzigingen versie 65&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.20 MaakTestLogin&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.3 GeefMijnGegevens: optionele parameter &#039;hccGroepering&#039;&lt;br /&gt;
  Het werken met een testaccount heeft impact op de volgende aanroepen:&lt;br /&gt;
  - G.7  GeefFactuurOverzicht&lt;br /&gt;
  - M.8  HaalFactuur&lt;br /&gt;
  - L.1  MaakOnderwerp&lt;br /&gt;
  - H.14 MaakPWResetToken&lt;br /&gt;
  - F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
  - L.4  MuteerOnderwerp&lt;br /&gt;
  - L.5  MuteerOnderwerpAutorisatie&lt;br /&gt;
  - H.19 PasHccLoginAan&lt;br /&gt;
  - A.23 PasInteressegroepAan&lt;br /&gt;
  - H.9  PasKaderGegevensAan&lt;br /&gt;
  - H.4  PasOptInKeuzeAan&lt;br /&gt;
  - H.11 PasPseudoniemAan&lt;br /&gt;
  - H.13 PasWachtwoordAan&lt;br /&gt;
  - H.18 ResetHCCCode&lt;br /&gt;
  - A.20 UpdateMobiel&lt;br /&gt;
  - A.25 UpdateNAW&lt;br /&gt;
  - L.2  VerwijderOnderwerp&lt;br /&gt;
  - A.5  VraagLidgegevensTokenAan&lt;br /&gt;
  - 2.1  WijzigGebruikersGegevens&lt;br /&gt;
  - H.3 GeefMijnGegevens geeft extra parameter terug (testaccount)&lt;br /&gt;
2021.08.01 Wijzigingen versie 66&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.4 PasOptInKeuzeAan werkt nu ook op basis van OptOutToken&lt;br /&gt;
2021.10.10 Wijzigingen versie 67&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.21 UpdateOTP&lt;br /&gt;
  H.3 GeefMijnGegevens geeft extra parameters terug (hccOtpKey en hccOtep)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Aanpassingen aan de Apache omgeving =&lt;br /&gt;
&lt;br /&gt;
== php.ini aanpassingen ==&lt;br /&gt;
De XML-RPC server zal &#039;ergens&#039; een bestand moeten kunnen vinden met de&lt;br /&gt;
gebruikersnamen t.b.v. het authenticeren bij de LDAP-server.&lt;br /&gt;
&lt;br /&gt;
Dit bestand wordt geplaatst in de map &#039;/usr/local/hobbynet/etc&#039;. Om dit&lt;br /&gt;
vanuit Apache te mogen benaderen, dient een aanpassing aan php.ini&lt;br /&gt;
gemaakt te worden:&lt;br /&gt;
&lt;br /&gt;
 /etc/php5/apache2/php.ini&lt;br /&gt;
 &lt;br /&gt;
 include_path = &amp;quot;.:/usr/share/php:/usr/share/pear:/usr/local/hobbynet/etc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Apache modules ==&lt;br /&gt;
Nieuwe server geschikt maken voor XML-RPC gebruik&lt;br /&gt;
&lt;br /&gt;
=== Apache modules (PHP 7) ===&lt;br /&gt;
Ubuntu 16.04 wordt standaard met PHP versie 7.0 uitgeleverd.&lt;br /&gt;
De opdrachten om de modules op te halen zijn:&lt;br /&gt;
 apt-get install php-xmlrpc&lt;br /&gt;
 apt-get install apache2&lt;br /&gt;
 apt-get install ldap-utils&lt;br /&gt;
 apt-get install php-ldap&lt;br /&gt;
 apt-get install libapache2-mod-php&lt;br /&gt;
&lt;br /&gt;
== Loadbalancer akties niet naar de logbestanden schrijven ==&lt;br /&gt;
De loadbalancer haalt zeer frequent een testbestand op (/test.txt), om&lt;br /&gt;
te controleren of de xml-server operationeel is. Dat levert extreem veel&lt;br /&gt;
logging op in /var/log/apache2/other_vhosts.log.&lt;br /&gt;
&lt;br /&gt;
Pas de apache configuratie zo aan, dat logging van alle opvragingen&lt;br /&gt;
vanaf de loadbalancers uitgezet wordt.&lt;br /&gt;
 /etc/apache2/sites-enabled/xml-server&lt;br /&gt;
 &lt;br /&gt;
 # Mark requests from loadbalancers&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;212\.72\.227\.93&amp;quot;          dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;212\.72\.227\.94&amp;quot;          dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;172\.31\.1\.249&amp;quot;           dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;172\.31\.1\.250&amp;quot;           dontlog&lt;br /&gt;
 CustomLog ${APACHE_LOG_DIR}/access.log common env=!dontlog&lt;br /&gt;
&lt;br /&gt;
= Firewall algemeen =&lt;br /&gt;
In de file /etc/hobby-firewall/hobby-firewall.local wordt het script&lt;br /&gt;
&#039;/usr/local/hobbynet/bin/gen_fw.sh&#039; aangeroepen.&lt;br /&gt;
Deze haalt de IP adressen op uit ldap. &lt;br /&gt;
(.local omdat we dit ook zo doen op de webservers).&lt;br /&gt;
&lt;br /&gt;
De firewall wordt 4 x per dag herstart en /etc/hobby-firewall wordt&lt;br /&gt;
gesynchroniseerd (1-richting van lb1 naar lb2) met de volgende crontab&lt;br /&gt;
entries:&lt;br /&gt;
&lt;br /&gt;
Op lb1:&lt;br /&gt;
  0  0 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55  5 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0  6 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 11 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0 12 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 17 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0 18 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 23 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
Op lb2:&lt;br /&gt;
 15  6 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15 12 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15 18 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15  0 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null &lt;br /&gt;
&lt;br /&gt;
Het encrypted backup script is verplaatst naar &#039;/usr/local/hobbynet/local&#039; en hernoemd naar &#039;backup-encrypted.bash&#039;.&lt;br /&gt;
Dit is omdat deze niet mee mag worden gesynchroniseerd.&lt;br /&gt;
&lt;br /&gt;
Tevens wordt 1x per dag /usr/local/hobbynet/bin gesynchroniseerd (1-richting van hcc-ldap-lb1 naar hcc-ldap-lb2)&lt;br /&gt;
&lt;br /&gt;
== Aanpassingen in de firewall ==&lt;br /&gt;
Op de server waar de XML-RPC server staat, moeten enkele firewall aanpassingen gemaakt worden.&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf het interne netwerk (www-prod, www-test), en vanaf eventuele andere plekken die we expliciet toe willen staan.&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf mijn.hcc.nl (XML-RPC aanroepen vanaf de portal)&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf service.hccnet.nl toe (XML-RPC aanroep GeefUitgeschrevenLeden vanuit HenZ)&lt;br /&gt;
* uitgaand: sta TCP 443 naar service.hccnet.nl toe (XML-RPC aanroepen naar HenZ)&lt;br /&gt;
* uitgaand: sta TCP 990 en 5000-6000 naar Apps.HCC.local (FTPS verkeer naar de HCC server bij Hobbynet)&lt;br /&gt;
&lt;br /&gt;
== Aanpassingen aan AppArmor ==&lt;br /&gt;
Alhoewel technisch gezien dit bij slapd behoort, neem ik het toch hier op.&lt;br /&gt;
&lt;br /&gt;
Als het Hobbynet certificaat in de map /disk/site/etc/ssl/hobby.nl/ wordt neergezet, dan zal apparrmor de toegang tot de certificaten blokkeren. Neem daarom in de &#039;&#039;&#039;local&#039;&#039;&#039; directory van apparmor het volgende op:&lt;br /&gt;
 # /etc/apparmor.d/local/usr.sbin.slapd&lt;br /&gt;
 # Site-specific additions and overrides for usr.sbin.slapd.&lt;br /&gt;
 # For more details, please see /etc/apparmor.d/local/README.&lt;br /&gt;
 #include &amp;lt;abstractions/ssl_certs&amp;gt;&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/ r,&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/* r,&lt;br /&gt;
&lt;br /&gt;
= CRM (Azure) proxy herstarten =&lt;br /&gt;
Als er indicaties zijn dat niet alle JSON berichten meer vanuit het CRM aangeboden worden aan de XML-RPC server, dan kan het helpen om de CRM proxy te herstarten&lt;br /&gt;
&lt;br /&gt;
* Ga naar https://portal.azure.com/&lt;br /&gt;
* Login met zelfde account als voor het CRM&lt;br /&gt;
* Soms krijg je een popup. Die kan je weg klikken, je wilt geen rondleiding&lt;br /&gt;
* Klik op &#039;&#039;&#039;hccdyn01-aps-crm01&#039;&#039;&#039; voor productie en &#039;&#039;&#039;hccdyn01-aps-dev01&#039;&#039;&#039; voor test&lt;br /&gt;
* En dan kan je op opnieuw starten klikken.&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=79330</id>
		<title>MediaWikiSites</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=79330"/>
		<updated>2021-10-03T09:09:31Z</updated>

		<summary type="html">&lt;p&gt;Hans: beschrijf hoe er met patch gewerkt is op 2021.10.03&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Lijst met Mediawiki sites die wij bijhouden ==&lt;br /&gt;
&lt;br /&gt;
* Hobbynet wiki  (https://wiki.hobby.nl/)&lt;br /&gt;
&lt;br /&gt;
== upgrade procedure ==&lt;br /&gt;
* maak met tar een backup van de wiki:&lt;br /&gt;
 cd /disk/site/wiki&lt;br /&gt;
 tar -cf wiki-backup-20200830.tar www&lt;br /&gt;
 bzip2 wiki-backup-20200830.tar&lt;br /&gt;
&lt;br /&gt;
* maak met phpmyadmin een backup van de database&lt;br /&gt;
&lt;br /&gt;
* download de wiki software upgrade van http://www.mediawiki.org/&lt;br /&gt;
&lt;br /&gt;
* volg de instructies zoals beschreven op http://www.mediawiki.org/wiki/Manual:Upgrading&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hobbynet wiki updaten ===&lt;br /&gt;
* Volg de instructies om de wiki te updaten&lt;br /&gt;
&lt;br /&gt;
====optie 1: volledige versie downloaden en installeren====&lt;br /&gt;
 &amp;lt;b&amp;gt;Ons eigen lijstje:&amp;lt;/b&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 ssh hobbynet-lb1-int&lt;br /&gt;
 cd /disk/site/hobbynet/wiki.hobby.nl&lt;br /&gt;
 rm -rf www-old&lt;br /&gt;
 cp -a www www-old&lt;br /&gt;
 wget https://releases.wikimedia.org/mediawiki/1.36/mediawiki-1.36.1&amp;lt;nowiki/&amp;gt;.tar.gz&lt;br /&gt;
 tar xzf mediawiki-1.36.1.tar.gz&lt;br /&gt;
 chown wiki-hobby-nl:wiki-hobby-nl  mediawiki-1.36.1 -R&lt;br /&gt;
 cp -a www-old/LocalSettings.php   mediawiki-1.36.1&lt;br /&gt;
 cp -a www-old/images/*            mediawiki-1.36.1/images&lt;br /&gt;
 cp -a www-old/getip*              mediawiki-1.36.1&lt;br /&gt;
 rm -rf www&lt;br /&gt;
 mv mediawiki-1.36.1 www&lt;br /&gt;
 cd www/maintenance&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
Op 2021.08.15 wilde de update naar 1.36.1 niet starten. Bleek dat eerst de module &#039;php-intl&#039; met apt erbij gezet moest worden.&lt;br /&gt;
&lt;br /&gt;
Op 2020.08.30 weigerde de update correct te lopen. Bleek dat er geen skins meer waren, en de extensie WikiEditor ontbrak ook.&lt;br /&gt;
Pas na het terugzetten van die bestanden uit de oude omgeving wilde het update script draaien&lt;br /&gt;
 cp -a ../../www-old/skins/MonoBook ../skins/&lt;br /&gt;
 cp -a ../../www-old/skins/Vector/ ../skins/&lt;br /&gt;
 cp -a ../../www-old/skins/Timeless/ ../skins/&lt;br /&gt;
 cp -a ../../www-old/extensions/WikiEditor ../extensions/&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
*Als update.php niet draait, omdat er geen sql modules beschikbaar zouden zijn, selecteer dan eerst de juiste php versie&lt;br /&gt;
 update-alternatives --config php &lt;br /&gt;
&lt;br /&gt;
* Op de hobbynet wiki staan 2 losse bestanden die geen directe relatie met de wiki software hebben (&#039;&#039;&#039;getip.html&#039;&#039;&#039; en &#039;&#039;&#039;getip.php&#039;&#039;&#039;).&amp;lt;br&amp;gt;&lt;br /&gt;
Plaats die bestanden terug, tijdens de wiki upgrade actie!&lt;br /&gt;
&lt;br /&gt;
====optie 2: patch enkel de verschillen====&lt;br /&gt;
&lt;br /&gt;
Op 2021.10.03 is er voor het eerst gebruik gemaakt van de patch procedure om de upgrade naar versie 1.36.2 uit te voeren.&lt;br /&gt;
 wget https://releases.wikimedia.org/mediawiki/1.36/mediawiki-1.36.2.patch.gz&lt;br /&gt;
 gunzip mediawiki-1.36.2.patch.gz&lt;br /&gt;
 patch -p1 --dry-run -i mediawiki-1.36.2.patch&lt;br /&gt;
 patch -p1           -i mediawiki-1.36.2.patch&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=79303</id>
		<title>MediaWikiSites</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=79303"/>
		<updated>2021-08-15T11:16:09Z</updated>

		<summary type="html">&lt;p&gt;Hans: versie 1.36.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Lijst met Mediawiki sites die wij bijhouden ==&lt;br /&gt;
&lt;br /&gt;
* Hobbynet wiki  (https://wiki.hobby.nl/)&lt;br /&gt;
&lt;br /&gt;
== upgrade procedure ==&lt;br /&gt;
* maak met tar een backup van de wiki:&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /disk/site/wiki&lt;br /&gt;
 tar -cf wiki-backup-20200830.tar www&lt;br /&gt;
 bzip2 wiki-backup-20200830.tar&lt;br /&gt;
&lt;br /&gt;
* maak met phpmyadmin een backup van de database&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download de wiki software upgrade van http://www.mediawiki.org/&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* volg de instructies zoals beschreven op http://www.mediawiki.org/wiki/Manual:Upgrading&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hobbynet wiki updaten ===&lt;br /&gt;
* Volg de instructies om de wiki te updaten&lt;br /&gt;
 &amp;lt;b&amp;gt;Ons eigen lijstje:&amp;lt;/b&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 ssh hobbynet-lb1-int&lt;br /&gt;
 cd /disk/site/hobbynet/wiki.hobby.nl&lt;br /&gt;
 rm -rf www-old&lt;br /&gt;
 cp -a www www-old&lt;br /&gt;
 wget https://releases.wikimedia.org/mediawiki/1.36/mediawiki-1.36.1&amp;lt;nowiki/&amp;gt;.tar.gz&lt;br /&gt;
 tar xzf mediawiki-1.36.1.tar.gz&lt;br /&gt;
 chown wiki-hobby-nl:wiki-hobby-nl  mediawiki-1.36.1 -R&lt;br /&gt;
 cp -a www-old/LocalSettings.php   mediawiki-1.36.1&lt;br /&gt;
 cp -a www-old/images/*            mediawiki-1.36.1/images&lt;br /&gt;
 cp -a www-old/getip*              mediawiki-1.36.1&lt;br /&gt;
 rm -rf www&lt;br /&gt;
 mv mediawiki-1.36.1 www&lt;br /&gt;
 cd www/maintenance&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
Op 2021.08.15 wilde de update naar 1.36.1 niet starten. Bleek dat eerst de module &#039;php-intl&#039; met apt erbij gezet moest worden.&lt;br /&gt;
&lt;br /&gt;
Op 2020.08.30 weigerde de update correct te lopen. Bleek dat er geen skins meer waren, en de extensie WikiEditor ontbrak ook.&lt;br /&gt;
Pas na het terugzetten van die bestanden uit de oude omgeving wilde het update script draaien&lt;br /&gt;
 cp -a ../../www-old/skins/MonoBook ../skins/&lt;br /&gt;
 cp -a ../../www-old/skins/Vector/ ../skins/&lt;br /&gt;
 cp -a ../../www-old/skins/Timeless/ ../skins/&lt;br /&gt;
 cp -a ../../www-old/extensions/WikiEditor ../extensions/&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
* Als update.php niet draait, omdat er geen sql modules beschikbaar zouden zijn, selecteer dan eerst de juiste php versie&lt;br /&gt;
 update-alternatives --config php&lt;br /&gt;
&lt;br /&gt;
* Op de hobbynet wiki staan 2 losse bestanden die geen directe relatie met de wiki software hebben (&#039;&#039;&#039;getip.html&#039;&#039;&#039; en &#039;&#039;&#039;getip.php&#039;&#039;&#039;).&amp;lt;br&amp;gt;&lt;br /&gt;
Plaats die bestanden terug, tijdens de wiki upgrade actie!&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=79294</id>
		<title>XML-RPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=79294"/>
		<updated>2021-08-01T11:19:44Z</updated>

		<summary type="html">&lt;p&gt;Hans: hccOptOutToken geintroduceerd&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XML-RPC interface =&lt;br /&gt;
De LDAP server kan direct gemuteerd worden via een LDAP koppeling. Zie de standaard LDAP pagina voor de uitleg welke poorten daarvoor gebruikt kunnen worden.&lt;br /&gt;
&lt;br /&gt;
Daarnaast is er de wens ontstaan om via een standaard protocol met de LDAP omgeving te kunnen communiceren. Er is hiertoe een XML-RPC koppeling ontwikkeld. XML-RPC is een standaard interface, waarmee het mogelijk is om vanuit diverse omgevingen op een gestandaardiseerde manier te communiceren.&lt;br /&gt;
== Globale functie omschrijving ==&lt;br /&gt;
* Algemene aanroepen&lt;br /&gt;
** Controleer of een gebruiker bestaat&lt;br /&gt;
** Wijzig het wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
** Zoek een gebruiker (t.b.v. kantoor en/of LA-akties groeperingssecretaris)&lt;br /&gt;
** Maak een gebruiker aan (geef gebruiker een andere hccLogin waarde, maak ook bij HCCnet deze gebruiker aan)&lt;br /&gt;
** Controleer of een gebruiker zijn profiel al doorlopen heeft&lt;br /&gt;
** Haal de lijst met opgeheven accounts op&lt;br /&gt;
** Haal de lijst met bulletins van een hcc lid (OptIn)&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. hcc partners&lt;br /&gt;
** Controleer of lidnummer/postcode correct is&lt;br /&gt;
** Controleer of lidnummer/postcode correct is, en tevens ingeschreven staat bij een specifieke IG&lt;br /&gt;
&lt;br /&gt;
* Joomla template site functies (op basis van JoomlaToken)&lt;br /&gt;
** Maak een JoomlaToken&lt;br /&gt;
** Ruim een JoomlaToken op&lt;br /&gt;
** Pas mijn OptIn (bulletin inschrijving) aan&lt;br /&gt;
** Regel alles rondom Onderwerpen en de autorisatie hiervan&lt;br /&gt;
** Pas mijn wachtwoord aan&lt;br /&gt;
&lt;br /&gt;
* Joomla kadernet site functies (op basis van JoomlaToken)&lt;br /&gt;
** Zoek een hcc kaderlid (t.b.v. de kaderleden zoekpagina)&lt;br /&gt;
** Pas mijn kadermail forwarding aan en toon ja/nee mijn GSM nummer&lt;br /&gt;
** Pas het kadernet e-mail wachtwoord aan&lt;br /&gt;
** Haal de lijst met alle groeperingen op&lt;br /&gt;
** Haal de lijst met alle kaderrollen op&lt;br /&gt;
&lt;br /&gt;
* Joomla hcc.nl site (op basis van JoomlaToken)(mijn.hcc.nl vervanging)&lt;br /&gt;
** Pas mijn adresgegevens aan&lt;br /&gt;
** Pas mijn voorletters, voornaam, pseudoniem, telefoonnummer, GSM nummer etcetera aan&lt;br /&gt;
** Schrijf me in of uit op een bulletin&lt;br /&gt;
** Toon info over de kosten van een IG lidmaatschap&lt;br /&gt;
** Voer een wachtwoord reset uit op basis van een PWResetToken (een variant op JoomlaToken)&lt;br /&gt;
** Vraag een nieuwe HCC code aan, en stuur die per SMS&lt;br /&gt;
&lt;br /&gt;
* Joomla hobby.nl site (op basis van JoomlaToken)(t.b.v. IDEAL betaling)&lt;br /&gt;
** Haal het aantal hobbyDomains op&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. CRM (Microsoft Dynamics Cloud) koppeling&lt;br /&gt;
** Haal de dagelijkse synchronisatie bestanden op&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de NAW gegevens bij&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de IG gegevens van een lid bij&lt;br /&gt;
&lt;br /&gt;
* HenZ&lt;br /&gt;
** Haal de lijst met opzeggers op&lt;br /&gt;
** Valideer de opzegdatum van een opgegeven gebruiker&lt;br /&gt;
=== Authenticatie ===&lt;br /&gt;
Alle aanroepen gebeuren op basis van authenticatie vanuit de aanroeper. Dit valt uiteen in de volgende categorieën:&lt;br /&gt;
* gebruikersnaam (&#039;hccLogin&#039;) en wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;), Joomla token (&#039;JoomlaToken&#039;) en website (&#039;siteID&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;) en hcc code (&#039;hccCode&#039;)&lt;br /&gt;
* beheerders-DN (&#039;beheerLogin&#039;) en beheerders wachtwoord (&#039;beheerPassword&#039;)&lt;br /&gt;
* partner-DN (&#039;partnerLogin&#039;) en partner wachtwoord (&#039;partnerPassword&#039;)&lt;br /&gt;
=== Aanroepen, gedaan via de bezoekersregistratie-proxy ===&lt;br /&gt;
(de bezoekersregistratie proxy is een mislukt project tbv de Android app van René Prins) (deze proxy bestaat niet meer)&lt;br /&gt;
&lt;br /&gt;
Diverse aanroepen kunnen ook via de bezoekersregistratie-proxy aangeroepen worden.&lt;br /&gt;
&lt;br /&gt;
Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
* GeefAlleGroeperingen&lt;br /&gt;
* GeefAlleKaderRollen&lt;br /&gt;
* GeefLocaties&lt;br /&gt;
* GeefLocatieNamen&lt;br /&gt;
De bezoekersregistratie aanroepen hebben &#039;JoomlaToken&#039; als extra parameter nodig:&lt;br /&gt;
* LidBezoektBijeenkomst&lt;br /&gt;
* GeefBezoekersOverzicht&lt;br /&gt;
* GeefBezoekersAantallen&lt;br /&gt;
De aanroepen die over de proxy uitgevoerd worden dienen voorafgegaan te worden door een aanroep naar&lt;br /&gt;
* GeefMijnGegevens (dit geeft na validatie immers &#039;JoomlaToken&#039; terug)&lt;br /&gt;
=== Resultaten ===&lt;br /&gt;
Alle aanroepen geven de volgende elementen terug:&lt;br /&gt;
* Naam van de uitgevoerde procedure (&#039;Action&#039;)&lt;br /&gt;
* Resultaat van de uitgevoerde procedure (&#039;Status&#039;)&lt;br /&gt;
* Een tekstuele vertaling van het resultaat dan wel de foutmelding (&#039;Message&#039;)&lt;br /&gt;
* Tijdens de ontwikkelfase kan er debug-info teruggeleverd worden (&#039;ExtraInfo&#039;)&lt;br /&gt;
Daarnaast geven specifieke aanroepen extra resultaten terug&lt;br /&gt;
== Technische omschrijving ==&lt;br /&gt;
XML-RPC beschrijving van acties in hcc.nl LDAP database&amp;lt;pre&amp;gt;&lt;br /&gt;
2021.08.01 HaVe&lt;br /&gt;
XML-RPC Hobbynet versie 66.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Kort overzicht ===&lt;br /&gt;
Dit is een lijst met alle XML-RPC aanroepen. In het volgende hoofdstuk worden ze in detail besproken.&amp;lt;pre&amp;gt;&lt;br /&gt;
echo				(partners)&lt;br /&gt;
ExpandeerPostcode               (Joomla module Bas, tbv verhuizingen)&lt;br /&gt;
GebruikerBestaatControle	(Joomla sites)&lt;br /&gt;
GeefAantalDomeinen              (Joomla module Bas)&lt;br /&gt;
GeefAlleBulletins               (Joomla module Bas)&lt;br /&gt;
GeefAlleGroeperingen		(kadersite, forum, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefAlleKaderRollen		(forum, secr. portal, kantoor portal, hobbynet portal, Joomla module Bas)&lt;br /&gt;
GeefBezoekersOverzicht		(bezoekersregistratie)&lt;br /&gt;
GeefBezoekersAantallen		(bezoekersregistratie)&lt;br /&gt;
GeefFactuurOverzicht		(Joomla module Bas)&lt;br /&gt;
GeefhccEindDatum		(HenZ)&lt;br /&gt;
GeefKadermailGegevens		(kantoor portal)&lt;br /&gt;
GeefLocatieNamen		(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefLocaties			(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefMijnGegevens		(Joomla inlog module Bas)&lt;br /&gt;
GeefMijnLidnummer		(beheer.hcc.nl secretaris portal)&lt;br /&gt;
GeefOnderwerpen                 (Joomla template sites)&lt;br /&gt;
GeefSSOUrls			(Joomla module Bas)&lt;br /&gt;
GeefUitgeschrevenLeden		(Joomla sites, HenZ)&lt;br /&gt;
HaalAanmeldingsformulier	(Joomla module Bas)&lt;br /&gt;
HaalFactuur			(Joomla module Bas)&lt;br /&gt;
HaalIGBedragenOp                (Joomla module Bas)&lt;br /&gt;
HaalOptInKeuzen			(kantoor portal)&lt;br /&gt;
HaalTariefGroepenOp		(kantoor portal)&lt;br /&gt;
HCCpartner			(Partner aanroep)&lt;br /&gt;
HCCpartners			(Partner aanroep)&lt;br /&gt;
IsDezeNaamNogBeschikbaar	(aangeroepen vanuit de CRM omgeving)&lt;br /&gt;
IsDezePseudoniemNogBeschikbaar	(kantoor portal)&lt;br /&gt;
IsHCCLid			(vraagbaak aanroep)&lt;br /&gt;
IsKaderLid			(in veel apps gebruikt)&lt;br /&gt;
LidBezoektBijeenkomst		(bezoekersregistratie)&lt;br /&gt;
MaakGebruikerAan		(mijnhcc.nl, maak hccnet account aan en ldap gebruikersnaam)&lt;br /&gt;
MaakOnderwerp                   (Joomla template sites)&lt;br /&gt;
MaakPWResetToken                (Joomla module Bas)&lt;br /&gt;
MaakTestLogin                   (Joomla module Bas)&lt;br /&gt;
MuteerAanmeldingsformulier	(Joomla module Bas)&lt;br /&gt;
MuteerGroeperingSamenstelling   (Joomla kadernet module Bas)&lt;br /&gt;
MuteerOnderwerp                 (Joomla template sites)&lt;br /&gt;
MuteerOnderwerpAutorisatie      (Joomla template sites)&lt;br /&gt;
NormaliseerTelefoon             (Joomla module Bas)&lt;br /&gt;
PasHccLoginAan			(Joomla module Bas)(enkel Hobbynet)&lt;br /&gt;
PasInteressegroepAan            (Joomla module Bas)&lt;br /&gt;
PasKaderGegevensAan		(kadersite, Joomla module Bas)&lt;br /&gt;
PasOptInKeuzeAan		(Joomla module Bas)&lt;br /&gt;
PasPseudoniemAan		(Joomla module Bas)&lt;br /&gt;
PasUserWachtwoordAan		(beheer.hcc.nl Hobbynet gebruikers portal)&lt;br /&gt;
PasWachtwoordAan		(Joomla module Bas)&lt;br /&gt;
RegistreerGast			(bezoekersregistratie)&lt;br /&gt;
ResetHCCCode                    (Joomla module Bas)&lt;br /&gt;
RuimJoomlaTokenOp               (Joomla module Bas)&lt;br /&gt;
SchrijfNietlidInOpBulletin      (Joomla site bulletin module Bas)&lt;br /&gt;
SchrijfNieuwLidIn               (Joomla CRM module Bas)&lt;br /&gt;
ToonOnderwerpAutorisatie        (Joomla template sites)&lt;br /&gt;
UpdateContactEmail		(Joomla module Bas)&lt;br /&gt;
UpdateContactGegevens		(Joomla module Bas)&lt;br /&gt;
UpdateMobiel                    (Joomla module Bas)&lt;br /&gt;
UpdateNAW                       (Joomla module Bas)&lt;br /&gt;
UpdateTelefoon			(Joomla module Bas)&lt;br /&gt;
UpdateVoorletters		(Joomla module Bas)&lt;br /&gt;
UpdateVoornaam			(Joomla module Bas)&lt;br /&gt;
Upload_CSV_bestand              (CRM webproxy)&lt;br /&gt;
ValideerPWResetToken            (Joomla module Bas)&lt;br /&gt;
ValideerWachtwoordEisen		(Joomla module Bas)&lt;br /&gt;
Verwerk_JSON_mutatie            (CRM webproxy)&lt;br /&gt;
VerwijderNietLid		(Joomla beheer module Bas)&lt;br /&gt;
VerwijderOnderwerp              (Joomla template sites)&lt;br /&gt;
VraagLidgegevensTokenAan	(bezoekersregistratie)&lt;br /&gt;
WijzigGebruikersGegevens	(kantoor en Joomla template sites, ww aanpassen van gebruiker)&lt;br /&gt;
ZoekGroeperingsLid		(secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
ZoekHCCLid			(VZ portal)&lt;br /&gt;
ZoekKaderLeden			(Joomla kadernet module Bas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== HCC-ldap en/of HCC-net aanroepen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** Joomla sites, www.hcc.nl **&lt;br /&gt;
// 1.1 controleer of een gebruiker bestaat - optie 1&lt;br /&gt;
// (authenticatie op basis van hccLidnr en hccCode)&lt;br /&gt;
// Alleen bedoeld om gebruikers op www.hcc.nl op basis van het lidnr het ww te laten wijzigen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GebruikerBestaatControle&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039; =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;  =&amp;gt; $hccCode,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $method,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;);&lt;br /&gt;
    if ($hccLidnr      != &#039;&#039;) { $reply[&#039;hccLidnr&#039;]      = $hccLidnr;      }&lt;br /&gt;
    if ($hccLogin      != &#039;&#039;) { $reply[&#039;hccLogin&#039;]      = $hccLogin;      }&lt;br /&gt;
    if ($hccPseudoniem != &#039;&#039;) { $reply[&#039;hccPseudoniem&#039;] = $hccPseudoniem; }&lt;br /&gt;
    if ($cn            != &#039;&#039;) { $reply[&#039;cn&#039;]            = $cn;            }&lt;br /&gt;
    if ($sn            != &#039;&#039;) { $reply[&#039;sn&#039;]            = $sn;            }&lt;br /&gt;
    if ($mail          != &#039;&#039;) { $reply[&#039;mail&#039;]          = $mail;          }&lt;br /&gt;
    if ($mailHccnet    != &#039;&#039;) { $reply[&#039;mailHccnet&#039;]    = $mailHccnet;    }&lt;br /&gt;
    if ($hccRegio      != &#039;&#039;) { $reply[&#039;hccRegio&#039;]      = $hccRegio;      }&lt;br /&gt;
    if ($hccIG         != &#039;&#039;) { $reply[&#039;hccIG&#039;]         = $hccIG;         }&lt;br /&gt;
    if ($hccRol        != &#039;&#039;) { $reply[&#039;hccRol&#039;]        = $hccRol;        }&lt;br /&gt;
    if ($ProfielBekend != &#039;&#039;) { $reply[&#039;ProfielBekend&#039;] = $ProfielBekend; }&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
// op basis van hccLidnummer en hccCode &lt;br /&gt;
// Essentiele aanroep, gebruikt vanuit mijnhcc.nl (lidnr + hccCode)&lt;br /&gt;
// Ook gebruikt t.b.v. wachtwoord-vergeten procedure op de Joomla template sites&lt;br /&gt;
// Als de profielpagina nog niet is doorlopen wordt deze aanroep afgekeurd.&lt;br /&gt;
//&lt;br /&gt;
// Ook gebruikt om gebruiker rechtstreeks vanaf Joomla template sites wachtwoord te&lt;br /&gt;
// laten aanpassen (op basis van lidnummer en hcc code)&lt;br /&gt;
//&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;            =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Gebruikersgegevens gewijzigd&#039;,&lt;br /&gt;
    &#039;hccLogin&#039; =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;cn&#039;       =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;       =&amp;gt; $sn);&lt;br /&gt;
&lt;br /&gt;
// 2.3 wijzig wachtwoord - optie 3&lt;br /&gt;
// (t.b.v. VZ-portal)&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
// * Als hccLidnr gevuld is, dan wordt hccLidnr gebruikt om het juiste record te zoeken&lt;br /&gt;
//   Als hccLidnr leeg   is, dan wordt hccLogin gebruikt om het juiste record te zoeken&lt;br /&gt;
//   1 van beide velden MOET aanwezig zijn&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;        =&amp;gt; $beheerLogin,    // beheerder lidnummer&lt;br /&gt;
      &#039;beheerPassword&#039;     =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
     [&#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,]&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. ophalen van de opt-in keuzes op de beheer pagina **&lt;br /&gt;
// 2.6 Geef de complete lijst met opt-ins van dit lid&lt;br /&gt;
// (LET OP: authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
     [&#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;       =&amp;gt; $hccLogin,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptInLijst opgehaald&#039;,&lt;br /&gt;
    &#039;hccOptIn&#039; =&amp;gt; $hccOptIn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gebruikersnaam, pseudoniem &lt;br /&gt;
//     en wachtwoord tevens in LDAP op&lt;br /&gt;
// (authenticatie op basis van hcc lidnummer en hcc-code)&lt;br /&gt;
// ** Deze gegevens worden doorgezet naar hccnet.nl (action=4) **&lt;br /&gt;
// &lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;             =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_hccLogin&#039;      =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
      &#039;nieuw_userPassword&#039;  =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem,&lt;br /&gt;
     [&#039;ServerID&#039;            =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;              =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;       =&amp;gt; &#039;Gebruiker aangemaakt&#039;,&lt;br /&gt;
    &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
    &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;       |&lt;br /&gt;
                 &#039;Gebruikersnaam bestaat al&#039;  |&lt;br /&gt;
                 &#039;Pseudoniem bestaat al&#039;      |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.3 Haal al mijn gegevens&lt;br /&gt;
// (wordt gebruikt door de Joomla inlogmodule)&lt;br /&gt;
// Voor gebruik over de proxy t.b.v. de Android app kan compact=TRUE meegegeven worden.&lt;br /&gt;
// In dat geval worden enkel de meest essentiele gegevens teruggestuurd&lt;br /&gt;
// Voor gebruik na MaakGebruikerAan kan deze functie ook op basis van hccLidnr en JoomlaToken&lt;br /&gt;
// worden aangeroepen&lt;br /&gt;
// De optionele parameter &#039;PrevSiteID&#039; is bedoeld voor single-sign-on. Op basis van JoomlaToken,&lt;br /&gt;
// hccLidnr en PrevSiteID worden dan de credentials gevalideerd. Als die kloppen, geeft deze aanroep&lt;br /&gt;
// een 2e JoomlaToken terug, maar dan uitgegeven op basis van SiteID.&lt;br /&gt;
// Als PrevSiteID leeg is, dan wordt het token op basis van siteID gevalideerd.&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,]&lt;br /&gt;
     [&#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;PrevSiteID&#039;   =&amp;gt; $PrevSiteID,]&lt;br /&gt;
     [&#039;compact&#039;      =&amp;gt; $compact,]        // leeg of &#039;TRUE&#039;&lt;br /&gt;
     [&#039;hccGroepering&#039;=&amp;gt; $hccGroepering,]  // Een testgebruiker mag alleen op deze site inloggen&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccRegio&#039;           =&amp;gt; $hccRegio,&lt;br /&gt;
    &#039;hccIG&#039;              =&amp;gt; $hccIG,&lt;br /&gt;
    &#039;hccRol&#039;             =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;hccAutorisatie&#039;     =&amp;gt; $hccAutorisatie,&lt;br /&gt;
    &#039;cn&#039;                 =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;                 =&amp;gt; $sn,&lt;br /&gt;
    &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
   [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccPseudoniem&#039;      =&amp;gt; $hccPseudoniem,&lt;br /&gt;
    &#039;givenname&#039;          =&amp;gt; $givenname,&lt;br /&gt;
    &#039;hccAanhef&#039;          =&amp;gt; $hccAanhef,&lt;br /&gt;
    &#039;hccGeslacht&#039;        =&amp;gt; $hccGeslacht,&lt;br /&gt;
    &#039;hccTussenVoegsels&#039;  =&amp;gt; $hccTussenVoegsels,&lt;br /&gt;
    &#039;hccAchternaam&#039;      =&amp;gt; $hccAchternaam,&lt;br /&gt;
    &#039;hccStraatnaam&#039;      =&amp;gt; $hccStraatnaam,&lt;br /&gt;
    &#039;hccHuisnummer&#039;      =&amp;gt; $hccHuisnummer&lt;br /&gt;
    &#039;hccPostcode&#039;        =&amp;gt; $hccPostcode,&lt;br /&gt;
    &#039;hccWoonplaats&#039;      =&amp;gt; $hccWoonplaats,&lt;br /&gt;
    &#039;hccLand&#039;            =&amp;gt; $hccLand,&lt;br /&gt;
    &#039;hccTelefoon&#039;        =&amp;gt; $hccTelefoon,&lt;br /&gt;
    &#039;mail&#039;               =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;         =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;       =&amp;gt; $hccKaderMail, &lt;br /&gt;
    &#039;hccKaderForward&#039;    =&amp;gt; $hccKaderForward,&lt;br /&gt;
    &#039;hccKaderToonMobiel&#039; =&amp;gt; $hccKaderToonMobiel,&lt;br /&gt;
    &#039;hccOptIn&#039;           =&amp;gt; $hccOptIn,&lt;br /&gt;
    &#039;ProfielBekend&#039;      =&amp;gt; $ProfielBekend,&lt;br /&gt;
    &#039;hccBeginDatum&#039;      =&amp;gt; $hccBeginDatum,&lt;br /&gt;
    &#039;testaccount&#039;        =&amp;gt; is_testaccount(),     // &#039;TRUE&#039; | &#039;FALSE&#039;&lt;br /&gt;
   [&#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,     // in Mb&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald;]]);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de opt-in keuzes op een Joomla site **&lt;br /&gt;
// H.4 Pas 1 opt-in van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van hccLidnr, JoomlaToken en siteID)&lt;br /&gt;
//          of&lt;br /&gt;
//          authenticatie op basis van hccLidnr en OptOutToken (voor een directe uitschrijving door een lid)&lt;br /&gt;
// Als hccLidnummer gevuld is, dan is dat het lidnummer waar de mutatie op moet worden uitgevoerd.&lt;br /&gt;
// Dat kan alleen als de aanvrager HCC#LAD of HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
     [&#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;OptOutToken&#039;  =&amp;gt; $OptOutToken,]&lt;br /&gt;
     [&#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,]&lt;br /&gt;
      &#039;hccOptIn&#039;     =&amp;gt; $hccOptIn,&lt;br /&gt;
      &#039;actie&#039;        =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptIn aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials | Token ongeldig | Token verlopen&#039;);&lt;br /&gt;
    &lt;br /&gt;
// H.5 Zoek kaderleden NAW (t.b.v. de Joomla kadersite)&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
//&lt;br /&gt;
// * Er dient minstens 1 zoekcriterium opgegeven te worden.&lt;br /&gt;
// * Als zowel hccRegio als tegelijk ook hccIG opgegeven worden is de uitkomst onvoorspelbaar.&lt;br /&gt;
// * Als compact=TRUE worden enkel lidnummer, cn en sn in het antwoord gezet&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
     [&#039;hccIG&#039;       =&amp;gt; $hccIG,]&lt;br /&gt;
     [&#039;hccRol&#039;      =&amp;gt; $hccRol,]&lt;br /&gt;
     [&#039;hccLocatie&#039;  =&amp;gt; $hccLocatie,]&lt;br /&gt;
     [&#039;achternaam&#039;  =&amp;gt; $achternaam,]&lt;br /&gt;
     [&#039;compact&#039;     =&amp;gt; $compact]));        // leeg of &#039;TRUE&#039;&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Kaderleden opgevraagd&#039;&lt;br /&gt;
    &#039;Kaderleden&#039;      =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidNummer&#039;  =&amp;gt; $hccLidNummer,&lt;br /&gt;
      &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccAanhef&#039;     =&amp;gt; $hccAanhef,&lt;br /&gt;
      &#039;givenname&#039;     =&amp;gt; $givenname,&lt;br /&gt;
      &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
      &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
      &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;]);&lt;br /&gt;
&lt;br /&gt;
// H.9 PasKaderGegevensAan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
// Om de kaderleden hun forward in te laten stellen,&lt;br /&gt;
// en tegelijkertijd de opt-in / opt-out voor hccToonMobiel te laten regelen&lt;br /&gt;
// Kan tevens het kader email wachtwoord aanpassen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;         =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;            =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;              =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;hccKaderForward&#039;     =&amp;gt; $hccKaderForward,    // &#039;&#039; | $mail | $mailHccNet&lt;br /&gt;
      &#039;hccKaderToonMobiel&#039;  =&amp;gt; $hccKaderToonMobiel, // &#039;TRUE&#039; | &#039;FALSE&#039; | &#039;NULL&#039;&lt;br /&gt;
     [&#039;nieuw_kaderPassword&#039; =&amp;gt; $nieuw_kaderPassword]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;kadergegevens aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;|&#039;Alleen kaderleden mogen deze aanroep uitvoeren&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** Portal beheer.hcc.nl&lt;br /&gt;
// ** H.10 PasUserWachtwoordAan&lt;br /&gt;
// ** Betalende Hobbynet gebruikers kunnen hiermee hun wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van hccLogin en userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;         =&amp;gt; $username,&lt;br /&gt;
      &#039;userpassword&#039;     =&amp;gt; $password,&lt;br /&gt;
      &#039;hobbynetAccount&#039;  =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;nieuw_wachtwoord&#039; =&amp;gt; $nieuw_wachtwoord,&lt;br /&gt;
      &#039;ServerID&#039;         =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;           =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;         =&amp;gt; $remoteAddr));        &lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;     |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij gebruiker $hccLogin&#039; |&lt;br /&gt;
                 &#039;Kan ww van account $hobbynetAccount niet aanpassen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.11 Pas het pseudoniem van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Pseudoniem aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039; | &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.12 Controleer of een opgegeven wachtwoord aan de minimum eisen voldoet&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Wachtwoord voldoet aan de minimale eisen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Wachtwoord voldoet niet aan de minimale eisen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit een Joomla template site kunnen gebruikers hiermee hun eigen wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van JoomlaToken, lidnummer, siteID. Extra controle via userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;userpassword&#039;       =&amp;gt; $password,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13.1 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee hun eigen wachtwoord resetten&lt;br /&gt;
// (authenticatie op basis van PWResetToken en hccLogin).&lt;br /&gt;
// (Als de aanroep geslaagd is, dan is daarna het PWResetToken ongeldig)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039;       =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.14 MaakPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee een wachtwoord reset aanvragen&lt;br /&gt;
//    Deze aanroep geeft naast het PWResetToken ook het contact emailadres mee terug,&lt;br /&gt;
//    zodat Joomla een reset-mail kan sturen&lt;br /&gt;
// (acties op basis van gebruikersnaam)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;   =&amp;gt; $username,&lt;br /&gt;
      &#039;ServerID&#039;   =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;     =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;   =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
    &#039;mail&#039;         =&amp;gt; $mail,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token aangemaakt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.15 ValideerPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers een wachtwoord reset aanvragen&lt;br /&gt;
//    Controleer dat het hier om een bestaand (en nog niet gebruikt) token gaat&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token gevonden&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;hccLogin bestaat niet&#039; | &#039;PWResetToken bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.16 Ruim een bestaand JoomlaToken op&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;JoomlaToken opgeruimd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuist JoomlaToken&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.17 GeefAantalDomeinen&lt;br /&gt;
// ** Vraag het aantal domeinen op van een betalende Hobbynet gebruiker (t.b.v. IDEAL betaling)&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;     =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;ServerID&#039;        =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;          =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;        =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
    &#039;AantalDomeinen&#039;  =&amp;gt; $aantalDomeinen,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;aantal domeinen opgevraagd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij deze gebruiker&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18 ResetHCCCode&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // geheime credentials van de site&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // geheime credentials van de site&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18.1 ResetHCCCode (hcc kantoor aanroep)&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,    // Het Joomla token van de sessie van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,       // Het lidnummer van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de hccLogin van een gebruiker (Hobbynet functie op Joomla site)  **&lt;br /&gt;
// H.19 Pas de hccLogin van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// hccLidnummer is het lidnummer waar de mutatie op moet worden uitgevoerd&lt;br /&gt;
// Kan alleen als de aanvrager HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,     // lidnummer van de aanvrager&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,  // JoomlaToken van de aanvrager&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer, // pas de hccLogin van dit lidnummer aan&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,     // dit is de gewenste nieuwe hccLogin&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;hccLogin aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039;       | &lt;br /&gt;
                 &#039;Gebruikersnaam al in gebruik&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. het aanmaken van een testaccount door een webmaster&lt;br /&gt;
// H.20 Maak een testaccount aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// Kan alleen als de aanvrager WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakTestLogin&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,     // JoomlaToken van de aanvrager&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,    // lidnummer van de aanvrager&lt;br /&gt;
      &#039;hccRol&#039;        =&amp;gt; $hccRol,          // (mag leeg zijn)&lt;br /&gt;
      &#039;hccGroepering&#039; =&amp;gt; $hccGroepering,   // (regio of IG)&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;MaakTestLogin&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Tijdelijk test account aangemaakt&#039;,&lt;br /&gt;
    &#039;TestAccountNaam&#039; =&amp;gt; &#039;test-&amp;lt;groepering&amp;gt;-&amp;lt;hccLogin&amp;gt;&#039;&lt;br /&gt;
    &#039;userpassword&#039;    =&amp;gt; $nieuw_userpassword,&lt;br /&gt;
    &#039;hccGroepering&#039;   =&amp;gt; $hccGroepering,&lt;br /&gt;
    &#039;hccRol&#039;          =&amp;gt; $hccRol);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MaakTestLogin&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// 3.1 Geef mijn lidnummer&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Lidnummer opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039; =&amp;gt; $hccLidnr);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Deze gegevens worden opgevraagd bij hccnet.nl (action=3)       **&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccLogin&#039; =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Enkel voor gebruik vanaf de kantoor portal **&lt;br /&gt;
// **  t.b.v. het hernoemen van accounts in CRM  **&lt;br /&gt;
// 8.3 Controleer of een Pseudoniem op dit moment bestaat		??? NIET GEBRUIKT ??&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken zoekpagina **&lt;br /&gt;
// A.1 Zoek alle bij de query passende hcc leden&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;ZoekMethode&#039;    =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;     =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;     =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $Groepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (eerste deel van) de naam               |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | emailadres          | (eerste deel van) e-mail adres          |&lt;br /&gt;
 | gebruikersnaam      | (eerste deel van) de login naam         |&lt;br /&gt;
 | pseudoniem          | (eerste deel van) het pseudoniem        |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | niet_leden          | het volledige niet-lid lidnummer        |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
   [&#039;ExtraInfo&#039;   =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;     =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidnummer&#039;      =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;hccBeginDatum&#039;     =&amp;gt; $hccBeginDatum,&lt;br /&gt;
      &#039;hccEindDatum&#039;      =&amp;gt; $hccEindDatum,&lt;br /&gt;
      &#039;sn&#039;                =&amp;gt; $sn,&lt;br /&gt;
      &#039;givenName&#039;         =&amp;gt; $givenName,&lt;br /&gt;
      &#039;hccGeslacht&#039;       =&amp;gt; $hccGeslacht,&lt;br /&gt;
      &#039;hccStraatnaam&#039;     =&amp;gt; $hccStraatnaam,&lt;br /&gt;
      &#039;hccHuisnummer&#039;     =&amp;gt; $hccHuisnummer&lt;br /&gt;
      &#039;hccHuisToevoeging&#039; =&amp;gt; $hcchuisToevoeging,&lt;br /&gt;
      &#039;hccPostcode&#039;       =&amp;gt; $hccPostcode,&lt;br /&gt;
      &#039;hccWoonplaats&#039;     =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccLand&#039;           =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;hccTelefoon&#039;       =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;         =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;mail&#039;              =&amp;gt; $mail,&lt;br /&gt;
      &#039;mailHccnet&#039;        =&amp;gt; $mailHccnet,&lt;br /&gt;
      &#039;hccIG&#039;             =&amp;gt; $hccIG,&lt;br /&gt;
      &#039;hccRol&#039;            =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccLogin&#039;          =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;hccPseudoniem&#039;     =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ProfielBekend&#039;     =&amp;gt; &#039;TRUE&#039; | &#039;FALSE&#039;])*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. beheer.hcc.nl **&lt;br /&gt;
// A.3 Zoek alle bij de query passende hcc leden van deze groepering&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
      &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;  =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;  =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,] // Alleen voor gebruik op de&lt;br /&gt;
                                      // bijeenkomsten aanwezigheidsregistratie pagina&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (deel van) de naam                      |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | nieuwe_leden        | YYYYMMDD vanaf waar gezocht moet worden |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | kaderleden          | n.v.t.                                  |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;   =&amp;gt;&lt;br /&gt;
      [array(&lt;br /&gt;
         &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
         &#039;hccBeginDatum&#039; =&amp;gt; $hccBeginDatum,&lt;br /&gt;
         &#039;hccEindDatum&#039;  =&amp;gt; $hccEindDatum,&lt;br /&gt;
         &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
         &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
         &#039;givenName&#039;     =&amp;gt; $givenName,&lt;br /&gt;
         &#039;hccAchternaam&#039; =&amp;gt; $hccAchternaam,&lt;br /&gt;
         &#039;hccTussenVoegsels =&amp;gt; hccTussenVoegsels,  &lt;br /&gt;
         &#039;hccGeslacht&#039;   =&amp;gt; $hccGeslacht,&lt;br /&gt;
         &#039;hccStraatnaam&#039; =&amp;gt; $hccStraatnaam,&lt;br /&gt;
         &#039;hccHuisnummer&#039; =&amp;gt; $hccHuisnummer, &lt;br /&gt;
         &#039;hccPostcode&#039;   =&amp;gt; $hccPostcode,&lt;br /&gt;
         &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
         &#039;hccLand&#039;       =&amp;gt; $hccLand, &lt;br /&gt;
         &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
         &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
         &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
         &#039;mailHccnet&#039;    =&amp;gt; $mailHccnet,&lt;br /&gt;
         &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail,&lt;br /&gt;
         &#039;hccRegio&#039;      =&amp;gt; $hccRegio,&lt;br /&gt;
         &#039;hccIG&#039;         =&amp;gt; $hccIG,&lt;br /&gt;
         &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
         &#039;hccLogin&#039;      =&amp;gt; $hccLogin,&lt;br /&gt;
         &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem)]*));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) niet gevonden&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten **&lt;br /&gt;
// A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,    // lid dat aanwezig gemeld moet worden&lt;br /&gt;
     [&#039;correctie&#039;   =&amp;gt; $hccLidnr,]   // lid dat gecorrigeerd moet worden&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Bezoeker weggeschreven&#039;,&lt;br /&gt;
    &#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
      // info van deze bezoeker&lt;br /&gt;
      &#039;cn&#039;               =&amp;gt; $cn,                // cn (Verbeek, H.J.)&lt;br /&gt;
      &#039;hccGeslacht&#039;      =&amp;gt; $hccGeslacht,       // hccGeslacht van de bezoeker&lt;br /&gt;
      &#039;groeperingslid&#039;   =&amp;gt; $groeperingslid,    // TRUE of FALSE: is deze persoon lid van deze groepering&lt;br /&gt;
      &#039;mijnGroeperingen&#039; =&amp;gt; $mijnGroeperingen,  // komma-gescheiden lijst (regio, [hccIG]*)&lt;br /&gt;
      &#039;aantalBezoeken&#039;   =&amp;gt; $aantalBezoeken,    // hoe vaak heeft dit lid deze bijeenkomst bezocht&lt;br /&gt;
      // info van de bijeenkomst&lt;br /&gt;
      &#039;AantalBezoekers&#039;  =&amp;gt; $AantalBezoekers);  // aantal bezoekers van deze bijeenkomst&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.5 Vraag Lidgegevens token aan (geldig voor dit lid, en deze groepering, op deze datum)&lt;br /&gt;
// Als geen datum gegeven is, dan is het token vandaag geldig&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnummer, // vraag het token voor dit lid aan&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering,   // zoek binnen deze groepering&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]       // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;     =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;     =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;    =&amp;gt; &#039;Token opgevraagd&#039;,&lt;br /&gt;
    &#039;groepering&#039; =&amp;gt; $Groepering,&lt;br /&gt;
    &#039;token&#039;      =&amp;gt; $token,&lt;br /&gt;
    &#039;sn&#039;         =&amp;gt; $sn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.6 Toon bezoekersoverzicht&lt;br /&gt;
// (authenticatie op basis van lidnummer en bezoekersregistratie token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bezoekersoverzicht opgevraagd&#039;,&lt;br /&gt;
    &#039;Bezoekers&#039; =&amp;gt; $bezoekers,&lt;br /&gt;
   [&#039;Locatie&#039;   =&amp;gt; $Locatie]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// A.7 Geef het array met alle locaties&lt;br /&gt;
// (of beperk dit tot de locaties van de groepering $Groepering)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij hccToonInJoomla aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij ToonOpKaderNet aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocaties&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $hccGroepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;       =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;      =&amp;gt; &#039;Geen locaties gevonden voor groepering $hccGroepering&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// A.8 Registreer een niet-hcclid als bezoeker tijdens een bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RegistreerGast&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039;   =&amp;gt; $lidnr,        // credentials&lt;br /&gt;
      &#039;AccountCode&#039;   =&amp;gt; $AccountCode,  // credentials&lt;br /&gt;
      &#039;token&#039;         =&amp;gt; $token,        // credentials&lt;br /&gt;
      &#039;Bijeenkomst&#039;   =&amp;gt; $groepering,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;naam&#039;          =&amp;gt; $naam,&lt;br /&gt;
      &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;buitenland&#039;    =&amp;gt; $buitenland,&lt;br /&gt;
     [&#039;nietLidNummer&#039; =&amp;gt; $nietLidNummer,]&lt;br /&gt;
     [&#039;instructies&#039;   =&amp;gt; $instructies,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $aanroep,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid als bezoeker geregistreerd&#039;,&lt;br /&gt;
    &#039;Result&#039;  =&amp;gt; $result_array);&lt;br /&gt;
&lt;br /&gt;
// A.9 Geef het array met alle locatienamen&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;           =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locatienamen niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;          =&amp;gt; &#039;Geen locatienamen gevonden&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
// A.10 Schrijf een niet-lid in op een bulletin&lt;br /&gt;
// (2019.12.05: wordt actief gebruikt in Joomla module)&lt;br /&gt;
//      Deze aanroep mag *ook* worden gebruikt om een wel-lid in te schrijven.&lt;br /&gt;
//      Voorwaarde is dat bewezen is dat er controle bestaat over het opgegeven email adres&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
      &#039;hccOptin&#039;       =&amp;gt; $hccOptin,       // bulletin waarop ingeschreven wordt&lt;br /&gt;
      &#039;hccOptinSource&#039; =&amp;gt; $hccOptinSource, // site waar aanmelding vandaan komt&lt;br /&gt;
      &#039;Email&#039;          =&amp;gt; $Email,          // niet-lid: email adres&lt;br /&gt;
      &#039;Naam&#039;           =&amp;gt; $Naam,           // niet-lid: naam&lt;br /&gt;
     [&#039;hccLidNummer&#039;   =&amp;gt; $hccLidNummer,]  // optioneel: ik ben lid, dit is mijn lidnummer&lt;br /&gt;
     [&#039;Postcode&#039;       =&amp;gt; $Postcode,]      // optioneel: niet-lid: postcode&lt;br /&gt;
     [&#039;Huisnummer&#039;     =&amp;gt; $Huisnummer,]    // optioneel: niet-lid: huisnummer&lt;br /&gt;
     [&#039;hccGeslacht&#039;    =&amp;gt; $hccGeslacht,] // optioneel: niet-lid: geslacht (M/V/O)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Inschrijving op bulletin gelukt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                   &#039;Gegevenscombinatie onjuist&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid DN syntax&#039;    |&lt;br /&gt;
                   &#039;Invalid credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.11 Toon bezoekers aantallen&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
//&lt;br /&gt;
// ==&amp;gt; Mag weg: laatste aanroep 2018.12.15 &amp;lt;==&lt;br /&gt;
//&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]      // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;BezoekersAantallen opgevraagd&#039;,&lt;br /&gt;
    &#039;Datum&#039;       =&amp;gt; $datum,&lt;br /&gt;
    &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,&lt;br /&gt;
    &#039;Bezoekers&#039;   =&amp;gt; array(&lt;br /&gt;
      [HCC!seniorenacademie] =&amp;gt; Array(&lt;br /&gt;
        [Gorinchem] =&amp;gt; 15&lt;br /&gt;
        [Woerden]   =&amp;gt; 36)&lt;br /&gt;
      ...));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.12 GeefAlleBulletins&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Bulletins opgevraagd&#039;,&lt;br /&gt;
    &#039;bulletins&#039;       =&amp;gt; $bulletins);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.13 ExpandeerPostcode&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Postcode opgevraagd&#039;,&lt;br /&gt;
    &#039;detailgegevens&#039;  =&amp;gt; $detailgegevens);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.25 UpdateNAW&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateNAW&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;toevoeging&#039;    =&amp;gt; $toevoeging,&lt;br /&gt;
      &#039;straat&#039;        =&amp;gt; $straat,&lt;br /&gt;
      &#039;woonplaats&#039;    =&amp;gt; $woonplaats,&lt;br /&gt;
      &#039;landcode&#039;      =&amp;gt; $landcode,&lt;br /&gt;
      &#039;email&#039;         =&amp;gt; $email,&lt;br /&gt;
      &#039;voornaam&#039;      =&amp;gt; $voornaam,&lt;br /&gt;
      &#039;voorletters&#039;   =&amp;gt; $voorletters,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateContactGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Contactgegevens bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.18 NormaliseerTelefoon&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLand&#039;        =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Telefoonnummer genormaliseerd&#039;,&lt;br /&gt;
    &#039;Telefoonnummer&#039;  =&amp;gt; $Telefoonnummer);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.20 UpdateMobiel&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateMobiel&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateMobiel&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Mobiel nummer bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.21 HaalIGBedragenOp&lt;br /&gt;
//      Geef alle IG&#039;s waar je zelf lid van kunt worden, inclusief het bijbehorende bedrag&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Interessegroepen en bedragen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.22 HaalTariefGroepenOp&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Tariefgroepen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.23 PasInteressegroepAan&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;nieuw&#039;         =&amp;gt; $IG_lijst_nieuw,]&lt;br /&gt;
     [&#039;weg&#039;           =&amp;gt; $IG_lijst_weg,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;IG keuzen aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.24 GeefSSOUrls&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;SSO_urls&#039;        =&amp;gt; $sso_urls,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Single Sign On URLs opgevraagd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken beheer pagina **&lt;br /&gt;
// A.26 Verwijder een niet-lid record&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnummer,   // het te verwijderen niet-lid nummer&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Niet-lid record verwijderd&#039;,&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid record niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** HenZ **&lt;br /&gt;
// ** t.b.v. daily cron job  **&lt;br /&gt;
// ** t.b.v. dagelijkse opschoon jobs Joomla template sites **&lt;br /&gt;
// C.1 Vraag de lijst met uitgeschreven leden op&lt;br /&gt;
//     Dit kan beperkt worden tot een bepaalde regio of interessegroep&lt;br /&gt;
//     Daarnaast kan het tijdvak waarin gezocht wordt vrij gekozen worden&lt;br /&gt;
//     (gesteld dat de LDAP database nog leden uit die periode bevat)&lt;br /&gt;
//     Antwoord: lijst met (lidnummer, hccLogin, sn,&lt;br /&gt;
//                          datum einde lidmaatschap (formaat:YYYYMMDD))&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; GeefUitgeschrevenLeden &amp;lt;== (oud: GeefOpgezegdeLeden)&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccRegio&#039;       =&amp;gt; $hccRegio,    // of leeg&lt;br /&gt;
      &#039;hccIg&#039;          =&amp;gt; $hccIg,       // of leeg&lt;br /&gt;
      &#039;datum_vanaf&#039;    =&amp;gt; $datum_sinds, // YYYY-MM-DD of YYYYMMDD of leeg (leeg: 3 dagen geleden)&lt;br /&gt;
      &#039;datum_tot&#039;      =&amp;gt; $datum_tot,   // YYYY-MM-DD of YYYYMMDD of leeg (leeg: vandaag)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Uitgeschreven leden&#039;,&lt;br /&gt;
   [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
   [&#039;hccIg&#039;       =&amp;gt; $hccIg,]&lt;br /&gt;
   [&#039;datum_vanaf&#039; =&amp;gt; $datum_vanaf,]&lt;br /&gt;
   [&#039;datum_tot&#039;   =&amp;gt; $datum_tot,]&lt;br /&gt;
   [&#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
     [array(&lt;br /&gt;
        &#039;hccLogin&#039;               =&amp;gt; $hccLogin,&lt;br /&gt;
        &#039;hccLidNummer&#039;           =&amp;gt; $hccLidnummer,&lt;br /&gt;
        &#039;sn&#039;                     =&amp;gt; $sn,&lt;br /&gt;
        &#039;DatumEindeLidmaatschap&#039; =&amp;gt; $DatumEindeLidmaatschap)]*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===HCCpartner aanroepen===&lt;br /&gt;
(interface versie 1)&lt;br /&gt;
&lt;br /&gt;
(oude interface, niet meer gebruiken!)&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.1 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    array(&#039;partnerLogin&#039;,    $partnerLogin),&lt;br /&gt;
    array(&#039;partnerPassword&#039;, $partnerPassword),&lt;br /&gt;
    array(&#039;hccLidnummer&#039;,    $hcclidnummer),&lt;br /&gt;
    array(&#039;postcode&#039;,        $postcode)));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;TRUE&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;FALSE&#039;));&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Onjuiste credentials&#039;));&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
     &#039;HCCpartner&#039;,&lt;br /&gt;
     array(&lt;br /&gt;
       &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
       array(&#039;parameter&#039;, $iets)));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;OnbekendeAanroep&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Opdracht onbekend&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===HCCpartners aanroepen ===&lt;br /&gt;
(interface versie 2)&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.2 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;          =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
      &#039;partnerLogin&#039;    =&amp;gt; $partnerLogin,&lt;br /&gt;
      &#039;partnerPassword&#039; =&amp;gt; $partnerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hcclidnummer,&lt;br /&gt;
      &#039;postcode&#039;        =&amp;gt; $postcode,&lt;br /&gt;
     [&#039;ServerID&#039;        =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;          =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;        =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;groepering=$groepering&#039;]); // als de partner beperkt is tot 1 groepering&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;FALSE&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;    =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
      &#039;parameter&#039; =&amp;gt; $iets));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Opdracht onbekend&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===HCC-kader aanroepen===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** beheer.hcc.nl **&lt;br /&gt;
// F.2 Controleer of dit een kaderlid is&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsKaderLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Is kaderlid&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;cn&#039;              =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;              =&amp;gt; $sn,&lt;br /&gt;
    &#039;hccRol&#039;          =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;mail&#039;            =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;      =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;    =&amp;gt; $hccKaderMail,&lt;br /&gt;
    &#039;hccKaderForward&#039; =&amp;gt; $hccKaderForward);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Is geen kaderlid&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.4 Vraag alle groeperingen op&lt;br /&gt;
// Het is mogelijk om een groepering te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  ToonInOverzichtenFilter : attribuut &#039;hccToonInOverzichten&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  BulletinsFilter         : attribuut &#039;hccBulletins&#039;&lt;br /&gt;
//  EmailFilter             : attribuut &#039;hccFunctionalEmail&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;                =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;                  =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;                =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;          =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;BulletinsFilter&#039;         =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;EmailFilter&#039;             =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;&#039; | &#039;TRUE&#039;));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;                  =&amp;gt; &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    &#039;Status&#039;                  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;                 =&amp;gt; &#039;Lijst met groeperingen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;                  =&amp;gt; $groeperingen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;          =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.5 Vraag alle kaderrollen op&lt;br /&gt;
// Het is mogelijk om een kaderrol  te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Lijst met kaderrollen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;             =&amp;gt; $kaderrollen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de kantoor-beheerpagina **&lt;br /&gt;
// F.9 Geef de gevevens van de mailbox van dit kaderlid&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;     =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039;  =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039;));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de Joomla Kadernet module **&lt;br /&gt;
//  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID en als extra hccCode van de aanvrager)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccCode&#039;        =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
      &#039;hccLidnummer    =&amp;gt; $hccLidnummer, // lidnummer van het te muteren hcc lid&lt;br /&gt;
      &#039;hccRol&#039;         =&amp;gt; $hccRol,       // de nieuwe dan wel op te heffen rol&lt;br /&gt;
                                         // de rol &#039;ALLES_WEG&#039; ruimt alle rollen van dit hcc lid voor deze groepering op&lt;br /&gt;
      &#039;actie&#039;          =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Groepering samenstelling aangepast&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Bedankmail gestuuurd aan ex-kaderlid&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Oude rol niet gevonden&#039; |&lt;br /&gt;
		   &#039;Nieuwe rol kan niet samen met bestaande rol&#039; |&lt;br /&gt;
		   &#039;Alleen voorzitter of secretaris kan kadermutaties uitvoeren&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===HCC-groepering aanroepen===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// I.2 controleer of een gebruiker bestaat op basis van de combinatie&lt;br /&gt;
//     lidnummer + postcode + huisnummer&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
// (alternatieve authenticatie mogelijk door lidnummer + hcc-code in te vullen)&lt;br /&gt;
//&lt;br /&gt;
// Aan de aanroeper worden zekere eisen gesteld:&lt;br /&gt;
// * dient een rol te vervullen binnen de groepering &#039;FOR&#039;(forum)&lt;br /&gt;
// * dan wel dient de rol &#039;VRBK&#039; (vraagbaak) te vervullen binnen een groepering&lt;br /&gt;
//&lt;br /&gt;
// Er wordt door de gehele leden-database gezocht, waarna terug wordt gegeven &lt;br /&gt;
// * of dit hcc lid inderdaad bestaat&lt;br /&gt;
// en, als het om een aanvraag van een vraagbaak vrijwilliger gaat, &lt;br /&gt;
// * tevens of het gezochte hcc lid deel uitmaakt van zijn groepering&lt;br /&gt;
//&lt;br /&gt;
// ==&amp;gt; Mag weg: laatste aanroep 2018.07.27 &amp;lt;==&lt;br /&gt;
//&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;        =&amp;gt; [$hccLogin | $hccLidnummer],&lt;br /&gt;
      &#039;userPassword&#039;    =&amp;gt; [$userPassword | $hccCode],&lt;br /&gt;
      &#039;zoekhccLidnr&#039;    =&amp;gt; $zoekhccLidnr,&lt;br /&gt;
      &#039;zoekhccPostcode&#039; =&amp;gt; $zoekhccPostcode,&lt;br /&gt;
      &#039;zoekhccHuisnr&#039;   =&amp;gt; $zoekhccHuisnr,&lt;br /&gt;
      &#039;zoekgroepering&#039;  =&amp;gt; $zoekgroepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens gecontroleerd&#039;,&lt;br /&gt;
   [&#039;Groeperingslid&#039; =&amp;gt; $IsGroeperingLid]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker bestaat niet&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Wel HCC lid, maar geen lid van groepering $groepering&#039; |&lt;br /&gt;
                 &#039;Onvoldoende rechten&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===HenZ aanroepen===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// I.3 Geef de einddatum van een actief dan wel uitgeschreven lid&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
    &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccEindDatum&#039; =&amp;gt; $hccEindDatum (&#039;yyyymmdd&#039; | &#039;&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;Lidnummer niet gevonden&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===(Forum,vraagbaak) onderwerpen===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// L.1 MaakOnderwerp&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is aangemaakt&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.2 VerwijderOnderwerp&lt;br /&gt;
&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is verwijderd&#039;,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039;            |&lt;br /&gt;
                   &#039;Geen webmaster&#039;                 |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;         |&lt;br /&gt;
		   &#039;Ruim eerst alle geautoriseerde gebruikers op&#039; |&lt;br /&gt;
		   &#039;Kan onderwerp niet verwijderen&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.3 GeefOnderwerpen &lt;br /&gt;
// Geef het array met de lijst van onderwerpen voor de betreffende groepering&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerpen opgevraagd&#039;,&lt;br /&gt;
    &#039;onderwerpen&#039; =&amp;gt; $onderwerpen); // het array met onderwerpen&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.4 MuteerOnderwerp&lt;br /&gt;
// Pas de description van een onderwerp aan&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
   &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
   array(&lt;br /&gt;
     &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
     &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
     &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
     &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     &#039;groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
     &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
     &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp aangepast&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039; |&lt;br /&gt;
		   &#039;Onderwerp behoort bij andere groepering&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
// Geef kaderlid $kaderLidNr de autorisatie MOD, VRBK of RED bij onderwerp $onderwerp&lt;br /&gt;
// (of haal die autorisatie weg)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
    &#039;onderwerp&#039;      =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;kaderLidNr&#039;     =&amp;gt; $kaderLidNr,&lt;br /&gt;
    &#039;hccAutorisatie&#039; =&amp;gt; &#039;MOD&#039; | &#039;VRBK&#039; | &#039;RED&#039;,&lt;br /&gt;
   [&#039;verwijder&#039;      =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp autorisatie aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Onjuiste autorisatie opgegeven&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Autorisaties opgehaald&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;    =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039;  =&amp;gt; $description,&lt;br /&gt;
    &#039;autorisaties&#039; =&amp;gt; &lt;br /&gt;
      [Array(&lt;br /&gt;
        &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer&lt;br /&gt;
        &#039;cn&#039;              =&amp;gt; $cn&lt;br /&gt;
        &#039;hccAutorisatie&#039;  =&amp;gt; {komma-gescheiden autorisaties})]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Microsoft Dynamics Cloud (Cayentis) onderwerpen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// M.1 Upload_CSV_bestand&lt;br /&gt;
// De CRM proxy upload de dagelijkse CSV synchronisatie-bestanden naar de XML-RPC server&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;      =&amp;gt; $beheerLogin,     // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039;   =&amp;gt; $beheerPassword,  // xml-rpc password&lt;br /&gt;
    &#039;CSV_bestand_type&#039; =&amp;gt; &#039;1&#039; | &#039;2&#039; | &#039;3&#039; , // 1=Contactpersonen/Hoofdlidmaatschappen&lt;br /&gt;
                                            // 2=Gremiumlidmaatschap codes&lt;br /&gt;
                                            // 3=Gremiumlidmaatschappen&lt;br /&gt;
    &#039;CSV_bestand&#039;      =&amp;gt; $CSV_bestand));   // het CSV bestand (base64 encoded)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bestand opgeslagen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.2 SchrijfNieuwLidIn&lt;br /&gt;
// &lt;br /&gt;
// Maak in het CRM een nieuw HCC lid aan&lt;br /&gt;
// De NAW gegevens worden in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;NAWgegevens&#039;    =&amp;gt; $NAW_Array,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress);&lt;br /&gt;
// $NAW_array = array(&lt;br /&gt;
//   &#039;GeboorteDatum&#039;         =&amp;gt; $geboortedatum,&lt;br /&gt;
//   &#039;Geslacht&#039;              =&amp;gt; $geslacht,&lt;br /&gt;
//   &#039;Voornaam&#039;              =&amp;gt; $voornaam,&lt;br /&gt;
//   &#039;Voorletters&#039;           =&amp;gt; $voorletters,&lt;br /&gt;
//   &#039;Tussenvoegsel&#039;         =&amp;gt; $tussenvoegsel,&lt;br /&gt;
//   &#039;Achternaam&#039;            =&amp;gt; $achternaam,&lt;br /&gt;
//   &#039;Straatnaam&#039;            =&amp;gt; $straatnaam,&lt;br /&gt;
//   &#039;Huisnummer&#039;            =&amp;gt; $huisnummer,&lt;br /&gt;
//   &#039;HuisnummerToevoeging&#039;  =&amp;gt; $huisnummertoevoeging,&lt;br /&gt;
//   &#039;Woonplaats&#039;            =&amp;gt; $woonplaats,&lt;br /&gt;
//   &#039;Postcode&#039;              =&amp;gt; $postcode,&lt;br /&gt;
//   &#039;Land&#039;                  =&amp;gt; $land,&lt;br /&gt;
//   &#039;Telefoonnummer&#039;        =&amp;gt; $telefoonnummer,&lt;br /&gt;
//   &#039;MobielNummer&#039;          =&amp;gt; $mobielnummer,&lt;br /&gt;
//   &#039;Mail&#039;                  =&amp;gt; $mail,&lt;br /&gt;
//   &#039;IBAN&#039;                  =&amp;gt; $IBAN,&lt;br /&gt;
//   &#039;Interessegroep&#039;        =&amp;gt; $IGs, // komma-gescheiden lijst met IG&#039;s&lt;br /&gt;
//   &#039;Geschenk&#039;              =&amp;gt; $geschenk,&lt;br /&gt;
//   &#039;Actiecode&#039;             =&amp;gt; $actiecode,&lt;br /&gt;
//   &#039;Voorwaarden&#039;           =&amp;gt; $Akkoord); // &#039;Akkoord&#039;&lt;br /&gt;
)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;nieuw lid ingeschreven&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;  =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccCode&#039;   =&amp;gt; $hccCode);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.3 Verwerk_JSON_mutatie&lt;br /&gt;
// De CRM proxy kan NAW en/of IG mutaties en/of hccCode mutaties live doorgeven&lt;br /&gt;
// Deze gegevens worden in JSON in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;mutatie_type&#039;   =&amp;gt; &#039;1&#039; | &#039;2&#039;,       // 1=Contactpersoon/Hoofdlidmaatschap&lt;br /&gt;
                                         // 2=Gremiumlidmaatschap&lt;br /&gt;
    &#039;JSON_mutatie&#039;   =&amp;gt; $JSON_mutatie)); // de JSON payload&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Mutatie verwerkt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.4 Vertaal landcode&lt;br /&gt;
// Het CRM werkt met numerieke landcodes, wij met cijfers&lt;br /&gt;
// Vertaal die&lt;br /&gt;
// Er moet in de aanroep 1 veld aanwezig zijn, beide waarden komen in het antwoord terug&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ISO_landcode&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    [&#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,]&lt;br /&gt;
    [&#039;ISO_code   &#039;  =&amp;gt; $ISO_code]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;ISO code lookup geslaagd&#039;,&lt;br /&gt;
    &#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,&lt;br /&gt;
    &#039;ISO_code   &#039;  =&amp;gt; $ISO_code,&lt;br /&gt;
    &#039;ISO_benaming&#039; =&amp;gt; $ISO_benaming); // de descriptive name van deze ISO code&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Kan geen bijpassende vertaling vinden&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;// M.5 MuteerAanmeldingsformulier // Sla een JSON veld op in de XML-RPC server zodat deze weer opgehaald kan worden door de websites // Authenticatie op basis van hccLidnummer en JoomlaToken // Deze mutaties mogen alleen door HN#WM of SITE#WM gedaan worden.&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    MuteerAanmeldingsformulier,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;formulierdata&#039; =&amp;gt; $formulierdata, // JSON veld met alle gegevens voor het aanmeld formulier&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress ));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;MuteerAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;aanmeldingsformulier bijgewerkt&#039;;&lt;br /&gt;
// M.6 HaalAanmeldingsformulier // (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    HaalAanmeldingsformulier,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;HaalAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;formulierdata&#039; =&amp;gt; $formulierdata); // JSON veld met alle gegevens voor het aanmeld formulier &lt;br /&gt;
// M.7 GeefFactuurOverzicht // (authenticatie op basis van hccLidnummer + JoomlaToken + siteID&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    GeefFactuurOverzicht,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),]&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID, &lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;           =&amp;gt; &#039;GeefFactuurOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;           =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;FactuurOverzicht&#039; =&amp;gt; $FactuurOverzicht); &lt;br /&gt;
 //  $FactuurOverzicht =&lt;br /&gt;
 //     array(&lt;br /&gt;
 //       array(&lt;br /&gt;
 //         &#039;FactuurID&#039;     =&amp;gt; &#039;a5b93460-4536-ea11-a813-000d3a2c53fa&#039;,&lt;br /&gt;
 //         &#039;FactuurNummer&#039; =&amp;gt; &#039;200118673J5&#039;&lt;br /&gt;
 //         &#039;FactuurDatum&#039;  =&amp;gt; &#039;2020-01-15&#039;&lt;br /&gt;
 //         &#039;bedrag&#039;        =&amp;gt; 42.37&lt;br /&gt;
 //         &#039;BetaalStatus&#039;  =&amp;gt; 0]));&lt;br /&gt;
 //&lt;br /&gt;
// M.8 HaalFactuur // (authenticatie op basis van JoomlaToken of FactuurToken)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    HaalFactuur,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;FactuurToken&#039;  =&amp;gt; $FactuurToken,]&lt;br /&gt;
      &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalFactuur&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;factuur&#039; =&amp;gt; $factuurgegevens); &lt;br /&gt;
//  $factuurgegevens = //    array( //         &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer, //         &#039;FactuurDatum&#039;  =&amp;gt; $FactuurDatum, //         &#039;FactuurID&#039;     =&amp;gt; $FactuurID, //         &#039;Bestandsnaam&#039;  =&amp;gt; $Bestandsnaam, //         &#039;PDF&#039;           =&amp;gt; $PDF) // base64 encoded PDF&lt;br /&gt;
===Echo test ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// t.b.v. controle of de verbinding met de XML-RPC server functioneert&lt;br /&gt;
// Eenvoudige echo test&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;echo&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;What&#039;     =&amp;gt; $string,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;echo&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; $string);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===HenZ XML-RPC interface===&lt;br /&gt;
Overzicht van XML-RPC procedures die bij HenZ draaien (worden via de Hobbynet XML-RPC server afgehandeld)&amp;lt;pre&amp;gt;&lt;br /&gt;
- Action=2&lt;br /&gt;
  wijzig gebruikersnaam en wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=3&lt;br /&gt;
  controleer of een gebruikersnaam bestaat&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.2)&lt;br /&gt;
&lt;br /&gt;
- Action=4&lt;br /&gt;
  creer een nieuwe gebruiker. Per lidnummer is er 1 account. Als er al een &lt;br /&gt;
  account voor dit lidnummer bestaat wordt het bestaande account hernoemd.&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.1)&lt;br /&gt;
&lt;br /&gt;
- Action=5&lt;br /&gt;
  wijzig wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=7&lt;br /&gt;
  Uitgeschreven lid is weer actief lid geworden&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&lt;br /&gt;
- Action=8&lt;br /&gt;
  Lid heeft een nieuwe hcc-code gekregen&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Release notes===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2012.02.08 Wijzigingen versie 5:&lt;br /&gt;
 - 4.1 verwijder_hcc_Lidnummer i.p.v. hcc_Lidnummer&lt;br /&gt;
 - 4.1 optionele extra parameter verwijder_hccLogin&lt;br /&gt;
 - Optionele parameters aangegeven&lt;br /&gt;
 - Vanwege de duidelijkheid de beheerLogin en beheerPassword velden&lt;br /&gt;
   bovenin de betreffende aanroepen gezet&lt;br /&gt;
   (De volgorde van de parameters is niet relevant, dus dit is geen&lt;br /&gt;
    interface-aanpassing)&lt;br /&gt;
2012.02.16 Wijzigingen versie 6:&lt;br /&gt;
 - 2.1/2.2/2.3 geef ook cn en sn terug na aanpassen van het wachtwoord&lt;br /&gt;
 - 3.1 geef cn en sn terug na aanmaken nieuwe gebruiker&lt;br /&gt;
2012.02.27 Wijzigingen versie 7:&lt;br /&gt;
 - Neem de XML-RPC interface van HenZ in deze XML-RPC server op&lt;br /&gt;
   8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gegevens tevens in LDAP op&lt;br /&gt;
 - 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.2 wijzig wachtwoord, optie 2&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * gebruikersnaam kan niet meer via deze interface aangepast worden&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.3 wijzig wachtwoord, optie 3&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
2012.03.26 Wijzigingen versie 8:&lt;br /&gt;
  - Breidt de XML-RPC interface van HenZ in deze XML-RPC server uit met&lt;br /&gt;
    8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
2012.04.09 Wijzigingen versie 9:&lt;br /&gt;
 - Vervang alle &#039;ldap&#039; aanroepen door &#039;HCCldap&#039; aanroepen&lt;br /&gt;
 - documentatie van HenZ call action=2 aangepast, action=5 toegevoegd&lt;br /&gt;
2012.05.03 Wijzigingen versie 10:&lt;br /&gt;
 - 1.1 / 1.2 / 1.3 geven nu ook &#039;ProfielBekend&#039; terug om uniek te bepalen&lt;br /&gt;
   of deze bezoeker een first-time-login pagina te zien dient te krijgen&lt;br /&gt;
 - documentatie van 2.1 (wijzig wachtwoord) aangepast: &lt;br /&gt;
   2.1 kan alleen als profiel is doorlopen&lt;br /&gt;
 - nieuwe procedure t.b.v. zoekscherm PC30&lt;br /&gt;
   * A.1 ZoekHCCLid &lt;br /&gt;
     - hiervoor is de database met diverse velden uitgebreid&lt;br /&gt;
       (postcode, e-mailadres, huisadres, woonplaats, land, telefoonnummer)&lt;br /&gt;
       Dit heeft impact op diverse andere procedures (t.b.s.)&lt;br /&gt;
 - nieuwe procedure t.b.v. &#039;gewone&#039; profielpagina&lt;br /&gt;
   * B.1 GeefDBFPersoonID&lt;br /&gt;
 - nieuwe procedure t.b.v. cron-job&lt;br /&gt;
   * C.1 GeefOpgezegdeLeden&lt;br /&gt;
2012.05.10 Wijzigingen versie 11&lt;br /&gt;
 - 1.3 GebruikerBestaatControle&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
   * nieuw veld in antwoord: hccPseudoniem&lt;br /&gt;
 - 2.3 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 2.4 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * nieuwe parameter: nieuw_hccPseudoniem&lt;br /&gt;
   * alle parameters zijn verplicht (niet langer optioneel)&lt;br /&gt;
   * nieuw antwoord: Gegevenscombinatie onjuist&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * Nieuwe procedure t.b.v. 1e keer doorlopen profielpagina&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * &#039;Zoeklimiet bereikt&#039; wordt als ExtraInfo meegegeven&lt;br /&gt;
   * nieuwe velden in antwoord: hccPseudoniem en hccLogin&lt;br /&gt;
 - B.1 GeefDBFPersoonID&lt;br /&gt;
   * Zoeken kan nu ook op hccLogin en op hccPseudoniem&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden&lt;br /&gt;
   * Geef nu ook hccLogin en hccPseudoniem terug&lt;br /&gt;
2012.05.14 Wijzigingen versie 12&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook DBFPersoonID terug&lt;br /&gt;
 - 4.1 Gooi een gebruiker weg.&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 5.1 Wijzig hccIG&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 6.1 Wijzig hccRegio&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 7.1 Wijzig hccRol&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
2012.05.20 Wijzigingen versie 13&lt;br /&gt;
 - A.1 ZoekHCCLid &lt;br /&gt;
   * Geef resultaten gestructureerder formaat&lt;br /&gt;
   * Geef in ExtraInfo weer hoeveel echte resultaten er gevonden zijn&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef resultaten in gestructureerder formaat&lt;br /&gt;
2012.06.03 Wijzigingen versie 14&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * Geef ook DBFPersoonID mee&lt;br /&gt;
2012.08.17 Wijzigingen versie 15&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef ook hccLogin in het antwoord terug&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.09.29 Wijzigingen versie 16&lt;br /&gt;
 - Alle cron gerelateerde opdrachten verwijderd&lt;br /&gt;
   * 3.1 NieuweGebruiker&lt;br /&gt;
   * 4.1 GooiGebruikerWeg&lt;br /&gt;
   * 5.1 WijzigHccIG&lt;br /&gt;
   * 6.1 WijzigHccRegio&lt;br /&gt;
   * 7.1 WijzigHccRol&lt;br /&gt;
2012.10.28 Wijzigingen versie 17&lt;br /&gt;
 - nieuwe procedure t.b.v. PC30 beheerpagina&lt;br /&gt;
   * A.2 HaalPC30Token&lt;br /&gt;
 - nieuwe procedure t.b.v. Drupal profielpagina&lt;br /&gt;
   * 2.4 vervallen &lt;br /&gt;
     (WijzigGebruikersGegevens op basis van pseudoniem)&lt;br /&gt;
   * 2.5 WijzigGebruikersGegevens&lt;br /&gt;
     Nieuwe keuze: wijzig pseudoniem&lt;br /&gt;
2012.11.14 Wijzigingen versie 18&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook mail in het antwoord terug&lt;br /&gt;
2012.11.30 Wijzigingen versie 19&lt;br /&gt;
 - E.1 HCCkader/WijzigGebruikersGegevens&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.1 / F.2 / F.3 ControleerKaderlid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.12.18 Wijzigingen versie 20&lt;br /&gt;
 - Haal DBFPersoonID weg uit alle aanroepen en alle resultaten&lt;br /&gt;
   * Antwoord van 1.x GebruikerBestaatControle&lt;br /&gt;
   * B.1 GeefDBFPersoonID opgeheven&lt;br /&gt;
 - A.1 ZoekHCCLid geeft nu ook hccMobiel terug (t.b.v. PC30 zoekpagina)&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden verder uitgewerkt:&lt;br /&gt;
   * Geeft alleen de door Drupal gebruikte velden &#039;hccLogin&#039; en &#039;hccEindDatum&#039;&lt;br /&gt;
     terug in het antwoord&lt;br /&gt;
   * Geeft nu &#039;echte&#039; antwoorden i.p.v. dummy resultaten&lt;br /&gt;
 - F.1 ControleerKaderlid geeft nu ook optioneel &#039;sn&#039; en &#039;givenName&#039; &lt;br /&gt;
     terug (in de beheer-variant)&lt;br /&gt;
2013.01.25 Wijzigingen versie 21&lt;br /&gt;
 - A.1 ZoekHCCLid uitgebreid&lt;br /&gt;
   * Geeft nu ook hccBeginDatum, hccEindDatum en hccRol terug&lt;br /&gt;
2013.02.02 Wijzigingen versie 22&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * Interface aangepast&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2013.03.01 Wijzigingen versie 23&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Geeft andere resultaten terug&lt;br /&gt;
 - 2.2 WijzigWachtwoord&lt;br /&gt;
   * Geeft nu ook hccLogin terug (voor ww-vergeten op de Drupal site)&lt;br /&gt;
 - HCCenquete implementatie&lt;br /&gt;
   * G.1 Expandeer NL postcode&lt;br /&gt;
   * G.2 Haal lidgegevens op&lt;br /&gt;
   * G.3 Pas lidgegevens aan&lt;br /&gt;
2013.03.18 Wijzigingen versie 24&lt;br /&gt;
 - ZoekGroeperingsLid op basis van token&lt;br /&gt;
 - A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - A.5 VraagLidgegevensTokenAan&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2013.04.07 Wijzigingen versie 25&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   Simpeler interface ontwikkeld (&#039;HCCpartners&#039; i.p.v. &#039;HCCpartner&#039;)&lt;br /&gt;
 - G.3 mag ook Tussenvoegsels aanpassen&lt;br /&gt;
2013.04.25 Wijzigingen versie 26&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   Nieuwe interface voor validatie vanaf groeperings websites&lt;br /&gt;
2013.05.03 Wijzigingen versie 27&lt;br /&gt;
 - 2.6 HaalOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.8 HaalOptInLijst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - HCCpartners aanroep nieuwe interface (&#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;)&lt;br /&gt;
2013.07.05 Wijzigingen versie 28&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * extra parameters (mail, hccPseudoniem) in het antwoord&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
2013.08.31 Wijzigingen versie 29&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / ControleerKaderlid&lt;br /&gt;
   * extra output parameter (hccKaderMail)&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccForumLogin)&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   * komma-gescheiden lijst met groeperingen mogelijk&lt;br /&gt;
   * extra output parameter (mailHccnet)&lt;br /&gt;
2013.12.26 Wijzigingen versie 30&lt;br /&gt;
 - 3.1 Geef mijn lidnummer&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * geef nu ook &#039;ProfielBekend&#039; terug om aan de PC30 omgeving door te geven&lt;br /&gt;
     dat het wachtwoord niet veranderd mag worden door PC30&lt;br /&gt;
 - A.6 GeefBezoekersOverzicht&lt;br /&gt;
   * geef nu ook &#039;Locatie&#039; terug indien van toepassing&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * parameters aangepast&lt;br /&gt;
   * authenticatie op basis van hccLogin + userPassword of lidnummer + hcc-code&lt;br /&gt;
   * geen algemene hcc-forum authenticatie meer mogelijk&lt;br /&gt;
 - F.7 ControleerKaderlidGroep&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2014.02.01 Wijzigingen versie 31&lt;br /&gt;
 - A.8 RegistreerGast&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - nieuwe interface (losse, unieke aanroepen, niet meer gegroepeerd)&lt;br /&gt;
2014.09.27 Wijzigingen versie 32&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden hernoemd naar GeefUitgeschrevenLeden&lt;br /&gt;
 - I.3 GeefhccEindDatum&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - Action=7 en Action=8 toegevoegd aan de HenZ interface&lt;br /&gt;
2014.12.12 Wijzigingen versie 33&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / IsKaderLid&lt;br /&gt;
   * extra output parameter (mail, mailHccnet, hccKaderForward)&lt;br /&gt;
 - F.8 HCC-kader / ZetKaderForward&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.05.06 Wijzigingen versie 34&lt;br /&gt;
 - GeefMijnGegevens&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - ValideerPCActiveAbonnee&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 1.4 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccKaderForward)&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * optionele extra output parameter (ExtraInfo)&lt;br /&gt;
2015.09.27 Wijzigingen versie 35&lt;br /&gt;
 - HeeftForumCredentials&lt;br /&gt;
   * vervallen&lt;br /&gt;
2015.11.20 Wijzigingen versie 36&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.12.13 Wijzigingen versie 37&lt;br /&gt;
 - serverID als optionele parameter&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * Maak velden optioneel&lt;br /&gt;
2016.01.05 Wijzigingen versie 38&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
2016.01.15 Wijzigingen versie 39&lt;br /&gt;
 - H.3 GeefMijnGegevens&lt;br /&gt;
   * geeft nu ook hccOptIn terug&lt;br /&gt;
   * geeft nu ook JoomlaToken terug&lt;br /&gt;
 - H.4 PasOptInKeuzeAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - SiteID en RemoteID als optionele parameter&lt;br /&gt;
2016.03.17 Wijzigingen versie 40&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.03.20 Wijzigingen versie 41&lt;br /&gt;
 - ServerID, SiteID en RemoteID als optionele parameters bij alle aanroepen&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - A.9 GeefLocatieNamen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.6 WijzigHccRol&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - F.7 IsGroeperingsKaderlid&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.5 WijzigGebruikersGegevens (hccPseudoniem)&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * vervallen&lt;br /&gt;
2016.04.02 Wijzigingen versie 42&lt;br /&gt;
 - H.6 GeefMijnKaderDetails&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.07.03 Wijzigingen versie 43&lt;br /&gt;
 - Ubuntu 16.04 aanpassingen (PHP versie 7) beschreven&lt;br /&gt;
2016.09.01 Wijzigingen versie 44&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * extra parameter &#039;hccMobiel&#039;&lt;br /&gt;
2016.10.13 Wijzigingen versie 45&lt;br /&gt;
 - H.3 GeefMijnGegevens (dedecated Joomla aanroep)&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
   * Als het om een webmaster gaat, vul dan eventueel hccRegio of hccIG aan &lt;br /&gt;
     met die groepering, ook als hij geen lid is van die groepering&lt;br /&gt;
 - I.4 GebruikerBestaatControle&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
2016.12.01 Wijzigingen versie 46&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar teruggezet&lt;br /&gt;
2017.05.28 Wijzigingen versie 47&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens (t.b.v. eenmalige kadermailing)&lt;br /&gt;
 - H.8 ZetMinimaleKaderGegevens  (t.b.v. eenmalige kadermailing)&lt;br /&gt;
2017.09.01 Wijzigingen versie 48&lt;br /&gt;
 - A.10 SchrijfNietlidInOpBulletin nu alleen voor 1 bulletin tegelijk&lt;br /&gt;
 - 2.2 WijzigGebruikersGegevens (op basis van gebruikersnaam en wachtwoord)&lt;br /&gt;
       is vervallen (was een oude Drupal aanroep)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens geeft ook hccKaderToonMobiel terug&lt;br /&gt;
2017.11.14 Wijzigingen versie 49&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft geen hccKaderToonMobiel meer terug&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft alleen hccMobiel als hccKaderToonMobiel dat toestaat&lt;br /&gt;
2018.02.18 Wijzigingen versie 50&lt;br /&gt;
 - H.6 GeefMijnKaderDetails geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.9 PasKaderGegevensAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft 3 extra parameters terug (hccKaderMail, hccKaderForward,&lt;br /&gt;
   hccKaderToonMobiel)&lt;br /&gt;
 - JoomlaTokens worden gevalideerd op siteID, niet langer op serverID&lt;br /&gt;
 - diverse aanroepen kunnen nu ook via de bezoekersregistratie-proxy aangeroepen worden. &lt;br /&gt;
   Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
   (GeefAlleGroeperingen, GeefAlleKaderRollen, GeefLocaties, GeefLocatieNamen)&lt;br /&gt;
   De bezoekersregistratie aanroepen hebben enkel JoomlaToken als extra parameter nodig:&lt;br /&gt;
   (LidBezoektBijeenkomst, GeefBezoekersOverzicht)&lt;br /&gt;
2018.02.26 Wijzigingen versie 51&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft extra parameter hccMobiel terug &lt;br /&gt;
 - H.9 PasKaderGegevensAan kan nu ook kadermail password aanpassen&lt;br /&gt;
 - K.1 ValideerToken&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - K.2 ValideerHCCCode&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2018.03.17 Wijzigingen versie 52&lt;br /&gt;
 - H.3 Haal al mijn gegevens&lt;br /&gt;
   Extra optie &#039;compact&#039; om alleen essentiele resultaten te verkrijgen&lt;br /&gt;
   (t.b.v. de Android bezoekersregistratie applicatie)&lt;br /&gt;
2018.03.25 Wijzigingen versie 53&lt;br /&gt;
 - I.2 IsHCCLid&lt;br /&gt;
   (Oude aanroep teruggezet, wordt nog in vraagbaak module gebruikt)&lt;br /&gt;
2018.07.01 Wijzigingen versie 54&lt;br /&gt;
   * A.1 beheer authenticatie op basis van lidnummer + hccCode (tbv VZ-portal)&lt;br /&gt;
   * A.2 HaalPC30Token weggehaald&lt;br /&gt;
2018.08.22 Wijzigingen versie 55&lt;br /&gt;
  * 1.2 GebruikerBestaatControle&#039; (op basis van hccLogin en userPassword) weggehaald&lt;br /&gt;
  * 1.4 GebruikerBestaatControle&#039; (op basis van zoekHccLogin of zoekHccLidnr) weggehaald&lt;br /&gt;
  * 2.8 HaalOptInLijst weggehaald&lt;br /&gt;
  * E.1 PasKaderWachtwoordAan weggehaald&lt;br /&gt;
  * F.1 IsKaderLid (op basis van hccLidnr en hccCode) weggehaald&lt;br /&gt;
  * F.3 IsKaderLid (op basis van beheerdernaam en beheerderwachtwoord) was al weg&lt;br /&gt;
  * F.8 ZetKaderForward weggehaald&lt;br /&gt;
  * H.1 IsGroeperingsLid weggehaald&lt;br /&gt;
  * H.6 GeefMijnKaderDetails weggehaald&lt;br /&gt;
  * H.7 GeefMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * H.8 ZetMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * K.1 ValideerHCCCode weggehaald&lt;br /&gt;
  * K.2 ValideerToken weggehaald&lt;br /&gt;
  * H.3 GeefMijnGegevens geeft omvang kader mailbox mee terug&lt;br /&gt;
2018.11.06 Wijzigingen versie 56&lt;br /&gt;
  Nieuwe aanroepen t.b.v. forum en vraagbaak autorisaties&lt;br /&gt;
  * L.1 MaakOnderwerp&lt;br /&gt;
  * L.2 VerwijderOnderwerp&lt;br /&gt;
  * L.3 GeefOnderwerpen&lt;br /&gt;
  * L.4 MuteerOnderwerp&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
  * L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
  * H.5 ZoekKaderLeden heeft compact optie&lt;br /&gt;
2018.11.16 Wijzigingen versie 57&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie kent nu ook RED(acteur)&lt;br /&gt;
2018.12.17 Wijzigingen versie 58&lt;br /&gt;
  * A.11 GeefBezoekersAantallen (nieuwe aanroep)&lt;br /&gt;
  * H.10 PasUserWachtwoordAan (nieuwe aanroep)&lt;br /&gt;
2019.02.21 Wijzigingen versie 59&lt;br /&gt;
  * A. 6 GeefBezoekersOverzicht geeft enkel lijst van bezoekers laatste bijeenkomst&lt;br /&gt;
2019.10.26 Wijzigingen versie 60&lt;br /&gt;
  * A.4 Schrijf bezoekers niet meer automatisch in op bulletins&lt;br /&gt;
  * H.4  PasOptInKeuzeAan kan ook door LA aangeroepen worden&lt;br /&gt;
  Nieuwe aanroepen t.b.v. eigen implementatie van mijn.hcc.nl in de Joomla modules&lt;br /&gt;
  * H.11 PasPseudoniemAan&lt;br /&gt;
  * H.12 ValideerWachtwoordEisen&lt;br /&gt;
  * H.13 PasWachtwoordAan (1: op JoomlaToken, 2: op PWResetToken)&lt;br /&gt;
  * H.14 MaakPWResetToken&lt;br /&gt;
  * H.15 ValideerPWResetToken&lt;br /&gt;
  * H.16 RuimJoomlaTokenOp&lt;br /&gt;
  * A.12 GeefAlleBulletins&lt;br /&gt;
  * A.13 ExpandeerPostcode&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.18 NormaliseerTelefoon&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  * A.21 HaalIGBedragenOp&lt;br /&gt;
  * A.22 HaalTariefGroepenOp&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
  * A.24 GeefSSOUrls&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  8.1 MaakGebruikerAan&lt;br /&gt;
  F.5 GeefAlleKaderRollen&lt;br /&gt;
2020.01.04 Wijzigingen versie 61&lt;br /&gt;
  Nieuwe aanroepen t.b.v. IDEAL betaling hobbynet abonnees&lt;br /&gt;
  H.17 GeefAantalDomeinen&lt;br /&gt;
2020.01.06 Wijzigingen versie 62&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Cayentis (CRM webproxy) implementatie&lt;br /&gt;
  * M.1  Upload_CSV_bestand&lt;br /&gt;
  * M.2  SchrijfNieuwLidIn&lt;br /&gt;
  * M.3  Verwerk_JSON_mutatie&lt;br /&gt;
  * M.4  ISO_landcode&lt;br /&gt;
  * M.5  MuteerAanmeldingsformulier&lt;br /&gt;
  * M.6  HaalAanmeldingsformulier&lt;br /&gt;
  * M.7  GeefFactuurOverzicht&lt;br /&gt;
  * M.8  HaalFactuur&lt;br /&gt;
  * A.25 UpdateNAW&lt;br /&gt;
  Vervallen aanroepen&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  Aangepaste aanroepen&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
2020.03.27 Wijzigingen versie 63&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.18 ResetHCCCode&lt;br /&gt;
  * H.19 PasHccLoginAan&lt;br /&gt;
2020.04.10 Wijzigingen versie 64&lt;br /&gt;
  Nieuwe aanroepen &lt;br /&gt;
  * A.26 VerwijderNietLid&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  * A.1  ZoekHCCLid: nieuwe zoekoptie &#039;niet_leden&#039;&lt;br /&gt;
  Opnieuw geimplementeerd&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
2020.11.26 Wijzigingen versie 65&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.20 MaakTestLogin&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.3 GeefMijnGegevens: optionele parameter &#039;hccGroepering&#039;&lt;br /&gt;
  Het werken met een testaccount heeft impact op de volgende aanroepen:&lt;br /&gt;
  - G.7  GeefFactuurOverzicht&lt;br /&gt;
  - M.8  HaalFactuur&lt;br /&gt;
  - L.1  MaakOnderwerp&lt;br /&gt;
  - H.14 MaakPWResetToken&lt;br /&gt;
  - F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
  - L.4  MuteerOnderwerp&lt;br /&gt;
  - L.5  MuteerOnderwerpAutorisatie&lt;br /&gt;
  - H.19 PasHccLoginAan&lt;br /&gt;
  - A.23 PasInteressegroepAan&lt;br /&gt;
  - H.9  PasKaderGegevensAan&lt;br /&gt;
  - H.4  PasOptInKeuzeAan&lt;br /&gt;
  - H.11 PasPseudoniemAan&lt;br /&gt;
  - H.13 PasWachtwoordAan&lt;br /&gt;
  - H.18 ResetHCCCode&lt;br /&gt;
  - A.20 UpdateMobiel&lt;br /&gt;
  - A.25 UpdateNAW&lt;br /&gt;
  - L.2  VerwijderOnderwerp&lt;br /&gt;
  - A.5  VraagLidgegevensTokenAan&lt;br /&gt;
  - 2.1  WijzigGebruikersGegevens&lt;br /&gt;
  - H.3 GeefMijnGegevens geeft extra parameter terug (testaccount)&lt;br /&gt;
2021.08.01 Wijzigingen versie 66&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.4 PasOptInKeuzeAan werkt nu ook op basis van OptOutToken&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=Aanpassingen aan de Apache omgeving =&lt;br /&gt;
==php.ini aanpassingen ==&lt;br /&gt;
De XML-RPC server zal &#039;ergens&#039; een bestand moeten kunnen vinden met de gebruikersnamen t.b.v. het authenticeren bij de LDAP-server.&lt;br /&gt;
&lt;br /&gt;
Dit bestand wordt geplaatst in de map &#039;/usr/local/hobbynet/etc&#039;. Om dit vanuit Apache te mogen benaderen, dient een aanpassing aan php.ini gemaakt te worden:&lt;br /&gt;
 /etc/php5/apache2/php.ini&lt;br /&gt;
 &lt;br /&gt;
 include_path = &amp;quot;.:/usr/share/php:/usr/share/pear:/usr/local/hobbynet/etc&amp;quot;&lt;br /&gt;
== Apache modules==&lt;br /&gt;
Nieuwe server geschikt maken voor XML-RPC gebruik&lt;br /&gt;
===Apache modules (PHP 7)===&lt;br /&gt;
Ubuntu 16.04 wordt standaard met PHP versie 7.0 uitgeleverd. De opdrachten om de modules op te halen zijn:&lt;br /&gt;
 apt-get install php-xmlrpc&lt;br /&gt;
 apt-get install apache2&lt;br /&gt;
 apt-get install ldap-utils&lt;br /&gt;
 apt-get install php-ldap&lt;br /&gt;
 apt-get install libapache2-mod-php&lt;br /&gt;
==Loadbalancer akties niet naar de logbestanden schrijven==&lt;br /&gt;
De loadbalancer haalt zeer frequent een testbestand op (/test.txt), om te controleren of de xml-server operationeel is. Dat levert extreem veel logging op in /var/log/apache2/other_vhosts.log.&lt;br /&gt;
&lt;br /&gt;
Pas de apache configuratie zo aan, dat logging van alle opvragingen vanaf de loadbalancers uitgezet wordt.&lt;br /&gt;
 /etc/apache2/sites-enabled/xml-server&lt;br /&gt;
 &lt;br /&gt;
 # Mark requests from loadbalancers&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;212\.72\.227\.93&amp;quot;          dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;212\.72\.227\.94&amp;quot;          dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;172\.31\.1\.249&amp;quot;           dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;172\.31\.1\.250&amp;quot;           dontlog&lt;br /&gt;
 CustomLog ${APACHE_LOG_DIR}/access.log common env=!dontlog&lt;br /&gt;
=Firewall algemeen =&lt;br /&gt;
In de file /etc/hobby-firewall/hobby-firewall.local wordt het script &#039;/usr/local/hobbynet/bin/gen_fw.sh&#039; aangeroepen. Deze haalt de IP adressen op uit ldap. (.local omdat we dit ook zo doen op de webservers).&lt;br /&gt;
&lt;br /&gt;
De firewall wordt 4 x per dag herstart en /etc/hobby-firewall wordt gesynchroniseerd (1-richting van lb1 naar lb2) met de volgende crontab entries:&lt;br /&gt;
&lt;br /&gt;
Op lb1:&lt;br /&gt;
  0  0 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55  5 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0  6 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 11 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0 12 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 17 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0 18 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 23 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
Op lb2:&lt;br /&gt;
 15  6 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15 12 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15 18 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15  0 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null &lt;br /&gt;
Het encrypted backup script is verplaatst naar &#039;/usr/local/hobbynet/local&#039; en hernoemd naar &#039;backup-encrypted.bash&#039;. Dit is omdat deze niet mee mag worden gesynchroniseerd.&lt;br /&gt;
&lt;br /&gt;
Tevens wordt 1x per dag /usr/local/hobbynet/bin gesynchroniseerd (1-richting van hcc-ldap-lb1 naar hcc-ldap-lb2)&lt;br /&gt;
==Aanpassingen in de firewall==&lt;br /&gt;
Op de server waar de XML-RPC server staat, moeten enkele firewall aanpassingen gemaakt worden.&lt;br /&gt;
*inkomend: sta TCP 443 toe vanaf het interne netwerk (www-prod, www-test), en vanaf eventuele andere plekken die we expliciet toe willen staan.&lt;br /&gt;
*inkomend: sta TCP 443 toe vanaf mijn.hcc.nl (XML-RPC aanroepen vanaf de portal)&lt;br /&gt;
*inkomend: sta TCP 443 toe vanaf service.hccnet.nl toe (XML-RPC aanroep GeefUitgeschrevenLeden vanuit HenZ)&lt;br /&gt;
*uitgaand: sta TCP 443 naar service.hccnet.nl toe (XML-RPC aanroepen naar HenZ)&lt;br /&gt;
*uitgaand: sta TCP 990 en 5000-6000 naar Apps.HCC.local (FTPS verkeer naar de HCC server bij Hobbynet)&lt;br /&gt;
== Aanpassingen aan AppArmor==&lt;br /&gt;
Alhoewel technisch gezien dit bij slapd behoort, neem ik het toch hier op.&lt;br /&gt;
&lt;br /&gt;
Als het Hobbynet certificaat in de map /disk/site/etc/ssl/hobby.nl/ wordt neergezet, dan zal apparrmor de toegang tot de certificaten blokkeren. Neem daarom in de &#039;&#039;&#039;local&#039;&#039;&#039; directory van apparmor het volgende op:&lt;br /&gt;
 # /etc/apparmor.d/local/usr.sbin.slapd&lt;br /&gt;
 # Site-specific additions and overrides for usr.sbin.slapd.&lt;br /&gt;
 # For more details, please see /etc/apparmor.d/local/README.&lt;br /&gt;
 #include &amp;lt;abstractions/ssl_certs&amp;gt;&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/ r,&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/* r,&lt;br /&gt;
=CRM (Azure) proxy herstarten =&lt;br /&gt;
Als er indicaties zijn dat niet alle JSON berichten meer vanuit het CRM aangeboden worden aan de XML-RPC server, dan kan het helpen om de CRM proxy te herstarten&lt;br /&gt;
*Ga naar https://portal.azure.com/&lt;br /&gt;
*Login met zelfde account als voor het CRM&lt;br /&gt;
*Soms krijg je een popup. Die kan je weg klikken, je wilt geen rondleiding&lt;br /&gt;
*Klik op &#039;&#039;&#039;hccdyn01-aps-crm01&#039;&#039;&#039; voor productie en &#039;&#039;&#039;hccdyn01-aps-dev01&#039;&#039;&#039; voor test&lt;br /&gt;
*En dan kan je op opnieuw starten klikken.&lt;br /&gt;
&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=79283</id>
		<title>MediaWikiSites</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=79283"/>
		<updated>2021-04-19T12:53:57Z</updated>

		<summary type="html">&lt;p&gt;Hans: aangepast aan mediawiki release 1.35.2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Lijst met Mediawiki sites die wij bijhouden ==&lt;br /&gt;
&lt;br /&gt;
* Hobbynet wiki  (https://wiki.hobby.nl/)&lt;br /&gt;
&lt;br /&gt;
== upgrade procedure ==&lt;br /&gt;
* maak met tar een backup van de wiki:&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /disk/site/wiki&lt;br /&gt;
 tar -cf wiki-backup-20200830.tar www&lt;br /&gt;
 bzip2 wiki-backup-20200830.tar&lt;br /&gt;
&lt;br /&gt;
* maak met phpmyadmin een backup van de database&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download de wiki software upgrade van http://www.mediawiki.org/&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* volg de instructies zoals beschreven op http://www.mediawiki.org/wiki/Manual:Upgrading&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hobbynet wiki updaten ===&lt;br /&gt;
* Volg de instructies om de wiki te updaten&lt;br /&gt;
 &amp;lt;b&amp;gt;Ons eigen lijstje:&amp;lt;/b&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 ssh hobbynet-lb1-int&lt;br /&gt;
 cd /disk/site/hobbynet/wiki.hobby.nl&lt;br /&gt;
 rm -rf www-old&lt;br /&gt;
 cp -a www www-old&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://releases.wikimedia.org/mediawiki/1.35/mediawiki-1.35.2.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 tar xzf mediawiki-1.35.2.tar.gz&lt;br /&gt;
 chown wiki-hobby-nl:wiki-hobby-nl  mediawiki-1.35.2 -R&lt;br /&gt;
 cp -a www-old/LocalSettings.php   mediawiki-1.35.2&lt;br /&gt;
 cp -a www-old/images/*            mediawiki-1.35.2/images&lt;br /&gt;
 cp -a www-old/getip*              mediawiki-1.35.2&lt;br /&gt;
 rm -rf www&lt;br /&gt;
 mv mediawiki-1.35.2 www&lt;br /&gt;
 cd www/maintenance&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
Op 2020.08.30 weigerde de update correct te lopen. Bleek dat er geen skins meer waren, en de extensie WikiEditor ontbrak ook.&lt;br /&gt;
Pas na het terugzetten van die bestanden uit de oude omgeving wilde het update script draaien&lt;br /&gt;
 cp -a ../../www-old/skins/MonoBook ../skins/&lt;br /&gt;
 cp -a ../../www-old/skins/Vector/ ../skins/&lt;br /&gt;
 cp -a ../../www-old/skins/Timeless/ ../skins/&lt;br /&gt;
 cp -a ../../www-old/extensions/WikiEditor ../extensions/&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
* Als update.php niet draait, omdat er geen sql modules beschikbaar zouden zijn, selecteer dan eerst de juiste php versie&lt;br /&gt;
 update-alternatives --config php&lt;br /&gt;
&lt;br /&gt;
* Op de hobbynet wiki staan 2 losse bestanden die geen directe relatie met de wiki software hebben (&#039;&#039;&#039;getip.html&#039;&#039;&#039; en &#039;&#039;&#039;getip.php&#039;&#039;&#039;).&amp;lt;br&amp;gt;&lt;br /&gt;
Plaats die bestanden terug, tijdens de wiki upgrade actie!&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Main_Page&amp;diff=79271</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Main_Page&amp;diff=79271"/>
		<updated>2021-01-13T10:34:03Z</updated>

		<summary type="html">&lt;p&gt;Hans: Reverted edits by 2A02:968:FFFF:999:172:31:1:103 (talk) to last revision by Bas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Hobbynet Admin WIKI===&lt;br /&gt;
 Shortcuts&lt;br /&gt;
 [http://otrs.hobby.nl/ HobbyNet Ticket systeem]            - OTRS&lt;br /&gt;
 [https://nagios.hobby.nl/nagios Nagios monitoring]                  -[[Nagios|&#039;&#039;&#039; Uitleg&#039;&#039;&#039;]]&lt;br /&gt;
 [https://wiki.hobby.nl/getip.html Waar draait een website]            - simpel tooltje om te kijken waar een website draait.&lt;br /&gt;
&lt;br /&gt;
===Algemene informatie===&lt;br /&gt;
 [[HCC!Hobbynet]]                         - Wat is Hobbynet - een uitleg voor kantoor (zie ook discussie tab)&lt;br /&gt;
 [[HCC!verenigingsdag]]                   - Een draaiboek voor de HCC!verenigingsdag&lt;br /&gt;
 [[Evenementen lan]]                      - Een draaiboek voor een Evenementen LAN&lt;br /&gt;
 [[Kadernet]]                             - Info over Kadernet voorzieningen (website, forum, etc.)&lt;br /&gt;
 [[Financien]]                            - Financiële aspecten van Hobbynet&lt;br /&gt;
 [[inventaris]]                           - Hobbynet inventaris overzicht t.b.v. hcc kantoor&lt;br /&gt;
 [[Windows_licenties]]                    - Hobbynet overzicht van de windows licenties&lt;br /&gt;
 [[Beheerders]]                           - Hobbynet beheerders&lt;br /&gt;
 [[server_certs]]                         - Hobbynet CAcert certificaten&lt;br /&gt;
 [[Hobbykeys]]                            - Info over het hobbykeys script&lt;br /&gt;
 [[accounts]]                             - Diverse account gegevens (o.a. knoppix.nl)&lt;br /&gt;
&lt;br /&gt;
===HCC.NL website platform===&lt;br /&gt;
 hcc.nl [[netwerk]]                       - Netwerk voor hcc.nl website platform&lt;br /&gt;
 [[XML-RPC]]                              - XML-RPC interface t.b.v. LDAP&lt;br /&gt;
 [[XML-HENZ-PROXY]]                       - XML-RPC HenZ proxy t.b.v. cronjob toegang tot HenZ&lt;br /&gt;
 [[www-prod-lb*]]                         - Productie servers (loadbalanced)&lt;br /&gt;
 [[Protocol_onderhoud]]                   - Afspraken rondom onderhoud en meldingen aan hcc.nl webmasters&lt;br /&gt;
&lt;br /&gt;
===Toegang===&lt;br /&gt;
 [[KVM over IP]]                          - Beheer op afstand m.b.v. KVM over IP apparatuur&lt;br /&gt;
 [[beheerder_accounts]]                   - Beheerder accounts aanmaken / bijhouden&lt;br /&gt;
 [[Aanmaken_Gebruiker]]                   - Aanmaken van een gebruiker&lt;br /&gt;
 [[Opzeggen_Gebruiker]]                   - Opzeggen van een gebruiker&lt;br /&gt;
&lt;br /&gt;
===Algemene services===&lt;br /&gt;
 [[Backup]]                               - Zo backupen we&lt;br /&gt;
 [[scp]]                                  - Hobbynet filetransfer omgeving&lt;br /&gt;
 [[sftp]]                                 - Hobbynet sftp omgeving kantoor en Tripolis&lt;br /&gt;
 [[Redirect server]]                      - De redirect server&lt;br /&gt;
 [[EMAIL]] (ook postfixadmin)             - Email server documentatie&lt;br /&gt;
 [[Roundcube Webmail]]                    - Upgrading Roundcube&lt;br /&gt;
 [[LDAP]] (server en client)              - LDAP setup&lt;br /&gt;
 [[LDAP login Authenticatie]]             - Om op (web)servers login via LDAP te doen  &lt;br /&gt;
 [[LDAP scripting]]                       - Scripting die op ldap-lb1 draait&lt;br /&gt;
 [[LDAP Administrative account]] weg!     - Hoe te handelen als het administrative account opeens weg is&lt;br /&gt;
 [[LDAP groeperings vlaggen]]             - Welke vlaggen zijn er voor een groepering en waar dienen ze voor&lt;br /&gt;
 [[SFTP server]]                          - sftp server voor uitwisseling met kantoor en tripolis&lt;br /&gt;
 [[Speciale groepen in ldap en CRM]]      - Speciale groepen in ldap en CRM&lt;br /&gt;
 [[PXE]]                                  - Hobbynet PXE omgeving&lt;br /&gt;
 [[Web cluster]]                          - Beschrijving van het Web cluster&lt;br /&gt;
 [[Nagios]]                               - Beschrijving van Nagios&lt;br /&gt;
 [[Nagios_upgrade]]                       - Hoe upgrade ik Nagios vanuit source&lt;br /&gt;
 [[Hobbynet repository]]                  - Informatie over de Hobbynet repository&lt;br /&gt;
 [[Hobbynet repository inhoud]]           - Wat zit er in de Hobbynet repository&lt;br /&gt;
 [[Cron jobs]]                            - Niet standaard cronjobs die lopen bij hobbynet&lt;br /&gt;
 [[Fail2ban]]                             - Block possible intruders and bots&lt;br /&gt;
 [[Groepering_hernoemen]]                 - Beschrijving van het hernoemen van een groeperingsnaam&lt;br /&gt;
 [[killdisk]]                             - Software voor secure wissen van disken&lt;br /&gt;
 [[Wij jitsi server]]                     - HCC Jitsi server&lt;br /&gt;
 [[VMware installatie]]                   - Handige hulpjes bij installatie vmware&lt;br /&gt;
&lt;br /&gt;
=== nieuwe omgeving 03-11-2020 ===&lt;br /&gt;
 [[Loadbalancers]]                        - Beschrijving van de Loadbalancer.org loadbalancers&lt;br /&gt;
 [[Cephfs]]                               - Shared storage&lt;br /&gt;
 [[Switches]]                             - Switches&lt;br /&gt;
 [[iSCSI]]                                - iSCSI&lt;br /&gt;
 [[Automatische installatie]]             - Automatische installatie via iPXE&lt;br /&gt;
 [[iPXE]]                                 - iPXE&lt;br /&gt;
 [[Sambabal]]                             - server die Samba shares verzorgt&lt;br /&gt;
 [[VMware 1 t/m 3]]                       - vmware 1 t/m 3&lt;br /&gt;
 [[VMware 4 t/m 6]]                       - vmware 4 t/m 6&lt;br /&gt;
 [[Vcenter]]                              - Beheersomgeving VMware Vcenter&lt;br /&gt;
 [[MySQL cluster]]                        - Beschrijving van het MySQL cluster&lt;br /&gt;
&lt;br /&gt;
=== dns ===&lt;br /&gt;
   [[DNS]]                                - DNS instellingen t.b.v. de domeinen&lt;br /&gt;
   [[domein]]                             - Direct naar domein&lt;br /&gt;
   [[ns1]]                                - Direct naar ns1.hobby.nl&lt;br /&gt;
   [[ns2]]                                - Direct naar ns2.hobby.nl&lt;br /&gt;
   [[ns3]]                                - Direct naar ns3.hobby.nl (bij TransIP)&lt;br /&gt;
   [[ns4]]                                - Direct naar ns4.hobby.nl (bij TransIP)&lt;br /&gt;
   [[Resolv*-int]]                        - Direct naar resolv nameserver pagina (draait op [[resolv-lb1]], [[resolv-lb2]] en [[resolv-lb3]])&lt;br /&gt;
   [[DNSSEC ds records publiceren]]       - Scripting t.b.v. het publiceren van DNSSEC DS records.&lt;br /&gt;
   [[DNS scripting]]                      - Overige DNS scripting&lt;br /&gt;
   [[DNS Zone updaten]]                   - een zone updaten&lt;br /&gt;
   [[Dane]]                               - Dane records in dns (wat moet je doen bij nieuw ssl cert)&lt;br /&gt;
&lt;br /&gt;
=== Joomla ===&lt;br /&gt;
&lt;br /&gt;
 [[Nieuwe joomla site maken]]             - Nieuwe Joomla site maken&lt;br /&gt;
 [[Joomla_xml_server]]                    - De XML-RPC-server t.b.v. de Joomla template sites&lt;br /&gt;
 [[Joomla modules]]                       - Beschrijving van Joomla modules en processen er om heen&lt;br /&gt;
 [[Joomla Events RSVP Pro]]               - RSVP Pro configureren (beperk bijeenkomst tot x personen)&lt;br /&gt;
&lt;br /&gt;
===Uitleg IP space===&lt;br /&gt;
 [[netwerk]]                              - Netwerk tekening van Hobbynet&lt;br /&gt;
 [[IPv4_space|IPv4]]                                 - IPv4 Hobbynet&lt;br /&gt;
 [[Ipv6_space|IPv6]]                                 - IPv6 Hobbynet&lt;br /&gt;
&lt;br /&gt;
===Kast indeling===&lt;br /&gt;
 [[kasten]]                               - Indeling kasten bij BIT &#039;&#039;(pagina heeft onderhoud nodig)&#039;&#039;&lt;br /&gt;
 [[systems]]                              - Alle systemen van Hobbynet (hardware &amp;amp; netwerk)&lt;br /&gt;
 [[Powerboot]]                            - Indeling APC PDU&#039;s (feb. 2013)&lt;br /&gt;
&lt;br /&gt;
===Tuning webservers===&lt;br /&gt;
 [[Hobby-firewall]]                       - de Hobbynet firewall&lt;br /&gt;
 [[PHP via fcgi]]                         - PHP via fcgi en suexec&lt;br /&gt;
 [[upg_web]]                              - Door middel van script server upgraden&lt;br /&gt;
&lt;br /&gt;
 [[NFS_settings]]                         - NFS poort instellingen t.b.v. iptables firewall&lt;br /&gt;
 [[sync Loadbalanced webservers]]         - dit script zorgt dat webserver configs worden gesynct&lt;br /&gt;
 [[Entropy]]                              - Hoe zorg ik voor meer Entropy op vmware machine&lt;br /&gt;
&lt;br /&gt;
===VPS voor derden===&lt;br /&gt;
 [[Ubuntu-nl]]                            - De Ubuntu-nl virtuele server&lt;br /&gt;
&lt;br /&gt;
=== Hobbynet informatie ===&lt;br /&gt;
 [[Scripting]]                            - Een poging om de scripting te beschrijven. WIP!&lt;br /&gt;
 [[agreements]]                           - Alle Hobbynet contracten met contract beheerder e.d.&lt;br /&gt;
 [[ToDo]]                                 - Een wensenlijstje van dingen die we kunnen veranderen/verbeteren&lt;br /&gt;
&lt;br /&gt;
===Updaten===&lt;br /&gt;
 [[Joomlasites]]                          - Joomla sites die wij bijhouden&lt;br /&gt;
 [[MediaWikiSites]]                       - MediaWiki sites die wij bijhouden&lt;br /&gt;
&lt;br /&gt;
===Nood gegevens===&lt;br /&gt;
 [[Medische protocol Bas|Medisch protocol bas]]                 - Medisch protocol bas&lt;br /&gt;
&lt;br /&gt;
Dit is een &amp;quot;mediawiki&amp;quot; (http://www.mediawiki.org/).&amp;lt;br&amp;gt;&lt;br /&gt;
Uitleg over het editen is te vinden op:&amp;lt;br&amp;gt;&lt;br /&gt;
http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/Wikipedia:How_does_one_edit_a_page&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=79199</id>
		<title>XML-RPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=79199"/>
		<updated>2020-12-29T14:01:06Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XML-RPC interface =&lt;br /&gt;
&lt;br /&gt;
De LDAP server kan direct gemuteerd worden via een LDAP koppeling. Zie&lt;br /&gt;
de standaard LDAP pagina voor de uitleg welke poorten daarvoor gebruikt&lt;br /&gt;
kunnen worden.&lt;br /&gt;
&lt;br /&gt;
Daarnaast is er de wens ontstaan om via een standaard protocol met de&lt;br /&gt;
LDAP omgeving te kunnen communiceren. Er is hiertoe een XML-RPC&lt;br /&gt;
koppeling ontwikkeld. XML-RPC is een standaard interface, waarmee het&lt;br /&gt;
mogelijk is om vanuit diverse omgevingen op een gestandaardiseerde&lt;br /&gt;
manier te communiceren.&lt;br /&gt;
&lt;br /&gt;
== Globale functie omschrijving ==&lt;br /&gt;
* Algemene aanroepen&lt;br /&gt;
** Controleer of een gebruiker bestaat&lt;br /&gt;
** Wijzig het wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
** Zoek een gebruiker (t.b.v. kantoor en/of LA-akties groeperingssecretaris)&lt;br /&gt;
** Maak een gebruiker aan (geef gebruiker een andere hccLogin waarde, maak ook bij HCCnet deze gebruiker aan)&lt;br /&gt;
** Controleer of een gebruiker zijn profiel al doorlopen heeft&lt;br /&gt;
** Haal de lijst met opgeheven accounts op&lt;br /&gt;
** Haal de lijst met bulletins van een hcc lid (OptIn)&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. hcc partners&lt;br /&gt;
** Controleer of lidnummer/postcode correct is&lt;br /&gt;
** Controleer of lidnummer/postcode correct is, en tevens ingeschreven staat bij een specifieke IG&lt;br /&gt;
&lt;br /&gt;
* Joomla template site functies (op basis van JoomlaToken)&lt;br /&gt;
** Maak een JoomlaToken&lt;br /&gt;
** Ruim een JoomlaToken op&lt;br /&gt;
** Pas mijn OptIn (bulletin inschrijving) aan&lt;br /&gt;
** Regel alles rondom Onderwerpen en de autorisatie hiervan&lt;br /&gt;
** Pas mijn wachtwoord aan&lt;br /&gt;
&lt;br /&gt;
* Joomla kadernet site functies (op basis van JoomlaToken)&lt;br /&gt;
** Zoek een hcc kaderlid (t.b.v. de kaderleden zoekpagina)&lt;br /&gt;
** Pas mijn kadermail forwarding aan en toon ja/nee mijn GSM nummer&lt;br /&gt;
** Pas het kadernet e-mail wachtwoord aan&lt;br /&gt;
** Haal de lijst met alle groeperingen op&lt;br /&gt;
** Haal de lijst met alle kaderrollen op&lt;br /&gt;
&lt;br /&gt;
* Joomla hcc.nl site (op basis van JoomlaToken)(mijn.hcc.nl vervanging)&lt;br /&gt;
** Pas mijn adresgegevens aan&lt;br /&gt;
** Pas mijn voorletters, voornaam, pseudoniem, telefoonnummer, GSM nummer etcetera aan&lt;br /&gt;
** Schrijf me in of uit op een bulletin&lt;br /&gt;
** Toon info over de kosten van een IG lidmaatschap&lt;br /&gt;
** Voer een wachtwoord reset uit op basis van een PWResetToken (een variant op JoomlaToken)&lt;br /&gt;
** Vraag een nieuwe HCC code aan, en stuur die per SMS&lt;br /&gt;
&lt;br /&gt;
* Joomla hobby.nl site (op basis van JoomlaToken)(t.b.v. IDEAL betaling)&lt;br /&gt;
** Haal het aantal hobbyDomains op&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. CRM (Microsoft Dynamics Cloud) koppeling&lt;br /&gt;
** Haal de dagelijkse synchronisatie bestanden op&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de NAW gegevens bij&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de IG gegevens van een lid bij&lt;br /&gt;
&lt;br /&gt;
* HenZ&lt;br /&gt;
** Haal de lijst met opzeggers op&lt;br /&gt;
** Valideer de opzegdatum van een opgegeven gebruiker&lt;br /&gt;
&lt;br /&gt;
=== Authenticatie ===&lt;br /&gt;
&lt;br /&gt;
Alle aanroepen gebeuren op basis van authenticatie vanuit de aanroeper.&lt;br /&gt;
Dit valt uiteen in de volgende categorieën:&lt;br /&gt;
* gebruikersnaam (&#039;hccLogin&#039;) en wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;), Joomla token (&#039;JoomlaToken&#039;) en website (&#039;siteID&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;) en hcc code (&#039;hccCode&#039;)&lt;br /&gt;
* beheerders-DN (&#039;beheerLogin&#039;) en beheerders wachtwoord (&#039;beheerPassword&#039;)&lt;br /&gt;
* partner-DN (&#039;partnerLogin&#039;) en partner wachtwoord (&#039;partnerPassword&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Aanroepen, gedaan via de bezoekersregistratie-proxy ===&lt;br /&gt;
(de bezoekersregistratie proxy is een mislukt project tbv de Android app van René Prins)&lt;br /&gt;
(deze proxy bestaat niet meer)&amp;lt;br&amp;gt;&lt;br /&gt;
Diverse aanroepen kunnen ook via de bezoekersregistratie-proxy aangeroepen worden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
* GeefAlleGroeperingen&lt;br /&gt;
* GeefAlleKaderRollen&lt;br /&gt;
* GeefLocaties&lt;br /&gt;
* GeefLocatieNamen&lt;br /&gt;
De bezoekersregistratie aanroepen hebben &#039;JoomlaToken&#039; als extra parameter nodig:&lt;br /&gt;
* LidBezoektBijeenkomst&lt;br /&gt;
* GeefBezoekersOverzicht&lt;br /&gt;
* GeefBezoekersAantallen&lt;br /&gt;
De aanroepen die over de proxy uitgevoerd worden dienen voorafgegaan te worden door een aanroep naar&lt;br /&gt;
* GeefMijnGegevens (dit geeft na validatie immers &#039;JoomlaToken&#039; terug)&lt;br /&gt;
&lt;br /&gt;
=== Resultaten ===&lt;br /&gt;
&lt;br /&gt;
Alle aanroepen geven de volgende elementen terug:&lt;br /&gt;
* Naam van de uitgevoerde procedure (&#039;Action&#039;)&lt;br /&gt;
* Resultaat van de uitgevoerde procedure (&#039;Status&#039;)&lt;br /&gt;
* Een tekstuele vertaling van het resultaat dan wel de foutmelding (&#039;Message&#039;)&lt;br /&gt;
* Tijdens de ontwikkelfase kan er debug-info teruggeleverd worden (&#039;ExtraInfo&#039;)&lt;br /&gt;
Daarnaast geven specifieke aanroepen extra resultaten terug&lt;br /&gt;
&lt;br /&gt;
== Technische omschrijving ==&lt;br /&gt;
XML-RPC beschrijving van acties in hcc.nl LDAP database&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2020.11.28 HaVe&lt;br /&gt;
XML-RPC Hobbynet versie 65.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kort overzicht ===&lt;br /&gt;
Dit is een lijst met alle XML-RPC aanroepen. In het volgende hoofdstuk worden ze in detail besproken.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo				(partners)&lt;br /&gt;
ExpandeerPostcode               (Joomla module Bas, tbv verhuizingen)&lt;br /&gt;
GebruikerBestaatControle	(Joomla sites)&lt;br /&gt;
GeefAantalDomeinen              (Joomla module Bas)&lt;br /&gt;
GeefAlleBulletins               (Joomla module Bas)&lt;br /&gt;
GeefAlleGroeperingen		(kadersite, forum, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefAlleKaderRollen		(forum, secr. portal, kantoor portal, hobbynet portal, Joomla module Bas)&lt;br /&gt;
GeefBezoekersOverzicht		(bezoekersregistratie)&lt;br /&gt;
GeefBezoekersAantallen		(bezoekersregistratie)&lt;br /&gt;
GeefFactuurOverzicht		(Joomla module Bas)&lt;br /&gt;
GeefhccEindDatum		(HenZ)&lt;br /&gt;
GeefKadermailGegevens		(kantoor portal)&lt;br /&gt;
GeefLocatieNamen		(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefLocaties			(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefMijnGegevens		(Joomla inlog module Bas)&lt;br /&gt;
GeefMijnLidnummer		(beheer.hcc.nl secretaris portal)&lt;br /&gt;
GeefOnderwerpen                 (Joomla template sites)&lt;br /&gt;
GeefSSOUrls			(Joomla module Bas)&lt;br /&gt;
GeefUitgeschrevenLeden		(Joomla sites, HenZ)&lt;br /&gt;
HaalAanmeldingsformulier	(Joomla module Bas)&lt;br /&gt;
HaalFactuur			(Joomla module Bas)&lt;br /&gt;
HaalIGBedragenOp                (Joomla module Bas)&lt;br /&gt;
HaalOptInKeuzen			(kantoor portal)&lt;br /&gt;
HaalTariefGroepenOp		(kantoor portal)&lt;br /&gt;
HCCpartner			(Partner aanroep)&lt;br /&gt;
HCCpartners			(Partner aanroep)&lt;br /&gt;
IsDezeNaamNogBeschikbaar	(aangeroepen vanuit de CRM omgeving)&lt;br /&gt;
IsDezePseudoniemNogBeschikbaar	(kantoor portal)&lt;br /&gt;
IsHCCLid			(vraagbaak aanroep)&lt;br /&gt;
IsKaderLid			(in veel apps gebruikt)&lt;br /&gt;
LidBezoektBijeenkomst		(bezoekersregistratie)&lt;br /&gt;
MaakGebruikerAan		(mijnhcc.nl, maak hccnet account aan en ldap gebruikersnaam)&lt;br /&gt;
MaakOnderwerp                   (Joomla template sites)&lt;br /&gt;
MaakPWResetToken                (Joomla module Bas)&lt;br /&gt;
MaakTestLogin                   (Joomla module Bas)&lt;br /&gt;
MuteerAanmeldingsformulier	(Joomla module Bas)&lt;br /&gt;
MuteerGroeperingSamenstelling   (Joomla kadernet module Bas)&lt;br /&gt;
MuteerOnderwerp                 (Joomla template sites)&lt;br /&gt;
MuteerOnderwerpAutorisatie      (Joomla template sites)&lt;br /&gt;
NormaliseerTelefoon             (Joomla module Bas)&lt;br /&gt;
PasHccLoginAan			(Joomla module Bas)(enkel Hobbynet)&lt;br /&gt;
PasInteressegroepAan            (Joomla module Bas)&lt;br /&gt;
PasKaderGegevensAan		(kadersite, Joomla module Bas)&lt;br /&gt;
PasOptInKeuzeAan		(Joomla module Bas)&lt;br /&gt;
PasPseudoniemAan		(Joomla module Bas)&lt;br /&gt;
PasUserWachtwoordAan		(beheer.hcc.nl Hobbynet gebruikers portal)&lt;br /&gt;
PasWachtwoordAan		(Joomla module Bas)&lt;br /&gt;
RegistreerGast			(bezoekersregistratie)&lt;br /&gt;
ResetHCCCode                    (Joomla module Bas)&lt;br /&gt;
RuimJoomlaTokenOp               (Joomla module Bas)&lt;br /&gt;
SchrijfNietlidInOpBulletin      (Joomla site bulletin module Bas)&lt;br /&gt;
SchrijfNieuwLidIn               (Joomla CRM module Bas)&lt;br /&gt;
ToonOnderwerpAutorisatie        (Joomla template sites)&lt;br /&gt;
UpdateContactEmail		(Joomla module Bas)&lt;br /&gt;
UpdateContactGegevens		(Joomla module Bas)&lt;br /&gt;
UpdateMobiel                    (Joomla module Bas)&lt;br /&gt;
UpdateNAW                       (Joomla module Bas)&lt;br /&gt;
UpdateTelefoon			(Joomla module Bas)&lt;br /&gt;
UpdateVoorletters		(Joomla module Bas)&lt;br /&gt;
UpdateVoornaam			(Joomla module Bas)&lt;br /&gt;
Upload_CSV_bestand              (CRM webproxy)&lt;br /&gt;
ValideerPWResetToken            (Joomla module Bas)&lt;br /&gt;
ValideerWachtwoordEisen		(Joomla module Bas)&lt;br /&gt;
Verwerk_JSON_mutatie            (CRM webproxy)&lt;br /&gt;
VerwijderNietLid		(Joomla beheer module Bas)&lt;br /&gt;
VerwijderOnderwerp              (Joomla template sites)&lt;br /&gt;
VraagLidgegevensTokenAan	(bezoekersregistratie)&lt;br /&gt;
WijzigGebruikersGegevens	(kantoor en Joomla template sites, ww aanpassen van gebruiker)&lt;br /&gt;
ZoekGroeperingsLid		(secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
ZoekHCCLid			(VZ portal)&lt;br /&gt;
ZoekKaderLeden			(Joomla kadernet module Bas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-ldap en/of HCC-net aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** Joomla sites, www.hcc.nl **&lt;br /&gt;
// 1.1 controleer of een gebruiker bestaat - optie 1&lt;br /&gt;
// (authenticatie op basis van hccLidnr en hccCode)&lt;br /&gt;
// Alleen bedoeld om gebruikers op www.hcc.nl op basis van het lidnr het ww te laten wijzigen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GebruikerBestaatControle&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039; =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;  =&amp;gt; $hccCode,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $method,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;);&lt;br /&gt;
    if ($hccLidnr      != &#039;&#039;) { $reply[&#039;hccLidnr&#039;]      = $hccLidnr;      }&lt;br /&gt;
    if ($hccLogin      != &#039;&#039;) { $reply[&#039;hccLogin&#039;]      = $hccLogin;      }&lt;br /&gt;
    if ($hccPseudoniem != &#039;&#039;) { $reply[&#039;hccPseudoniem&#039;] = $hccPseudoniem; }&lt;br /&gt;
    if ($cn            != &#039;&#039;) { $reply[&#039;cn&#039;]            = $cn;            }&lt;br /&gt;
    if ($sn            != &#039;&#039;) { $reply[&#039;sn&#039;]            = $sn;            }&lt;br /&gt;
    if ($mail          != &#039;&#039;) { $reply[&#039;mail&#039;]          = $mail;          }&lt;br /&gt;
    if ($mailHccnet    != &#039;&#039;) { $reply[&#039;mailHccnet&#039;]    = $mailHccnet;    }&lt;br /&gt;
    if ($hccRegio      != &#039;&#039;) { $reply[&#039;hccRegio&#039;]      = $hccRegio;      }&lt;br /&gt;
    if ($hccIG         != &#039;&#039;) { $reply[&#039;hccIG&#039;]         = $hccIG;         }&lt;br /&gt;
    if ($hccRol        != &#039;&#039;) { $reply[&#039;hccRol&#039;]        = $hccRol;        }&lt;br /&gt;
    if ($ProfielBekend != &#039;&#039;) { $reply[&#039;ProfielBekend&#039;] = $ProfielBekend; }&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
// op basis van hccLidnummer en hccCode &lt;br /&gt;
// Essentiele aanroep, gebruikt vanuit mijnhcc.nl (lidnr + hccCode)&lt;br /&gt;
// Ook gebruikt t.b.v. wachtwoord-vergeten procedure op de Joomla template sites&lt;br /&gt;
// Als de profielpagina nog niet is doorlopen wordt deze aanroep afgekeurd.&lt;br /&gt;
//&lt;br /&gt;
// Ook gebruikt om gebruiker rechtstreeks vanaf Joomla template sites wachtwoord te&lt;br /&gt;
// laten aanpassen (op basis van lidnummer en hcc code)&lt;br /&gt;
//&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;            =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Gebruikersgegevens gewijzigd&#039;,&lt;br /&gt;
    &#039;hccLogin&#039; =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;cn&#039;       =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;       =&amp;gt; $sn);&lt;br /&gt;
&lt;br /&gt;
// 2.3 wijzig wachtwoord - optie 3&lt;br /&gt;
// (t.b.v. VZ-portal)&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
// * Als hccLidnr gevuld is, dan wordt hccLidnr gebruikt om het juiste record te zoeken&lt;br /&gt;
//   Als hccLidnr leeg   is, dan wordt hccLogin gebruikt om het juiste record te zoeken&lt;br /&gt;
//   1 van beide velden MOET aanwezig zijn&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;        =&amp;gt; $beheerLogin,    // beheerder lidnummer&lt;br /&gt;
      &#039;beheerPassword&#039;     =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
     [&#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,]&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. ophalen van de opt-in keuzes op de beheer pagina **&lt;br /&gt;
// 2.6 Geef de complete lijst met opt-ins van dit lid&lt;br /&gt;
// (LET OP: authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
     [&#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;       =&amp;gt; $hccLogin,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptInLijst opgehaald&#039;,&lt;br /&gt;
    &#039;hccOptIn&#039; =&amp;gt; $hccOptIn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gebruikersnaam, pseudoniem &lt;br /&gt;
//     en wachtwoord tevens in LDAP op&lt;br /&gt;
// (authenticatie op basis van hcc lidnummer en hcc-code)&lt;br /&gt;
// ** Deze gegevens worden doorgezet naar hccnet.nl (action=4) **&lt;br /&gt;
// &lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;             =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_hccLogin&#039;      =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
      &#039;nieuw_userPassword&#039;  =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem,&lt;br /&gt;
     [&#039;ServerID&#039;            =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;              =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;       =&amp;gt; &#039;Gebruiker aangemaakt&#039;,&lt;br /&gt;
    &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
    &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;       |&lt;br /&gt;
                 &#039;Gebruikersnaam bestaat al&#039;  |&lt;br /&gt;
                 &#039;Pseudoniem bestaat al&#039;      |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.3 Haal al mijn gegevens&lt;br /&gt;
// (wordt gebruikt door de Joomla inlogmodule)&lt;br /&gt;
// Voor gebruik over de proxy t.b.v. de Android app kan compact=TRUE meegegeven worden.&lt;br /&gt;
// In dat geval worden enkel de meest essentiele gegevens teruggestuurd&lt;br /&gt;
// Voor gebruik na MaakGebruikerAan kan deze functie ook op basis van hccLidnr en JoomlaToken&lt;br /&gt;
// worden aangeroepen&lt;br /&gt;
// De optionele parameter &#039;PrevSiteID&#039; is bedoeld voor single-sign-on. Op basis van JoomlaToken,&lt;br /&gt;
// hccLidnr en PrevSiteID worden dan de credentials gevalideerd. Als die kloppen, geeft deze aanroep&lt;br /&gt;
// een 2e JoomlaToken terug, maar dan uitgegeven op basis van SiteID.&lt;br /&gt;
// Als PrevSiteID leeg is, dan wordt het token op basis van siteID gevalideerd.&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,]&lt;br /&gt;
     [&#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;PrevSiteID&#039;   =&amp;gt; $PrevSiteID,]&lt;br /&gt;
     [&#039;compact&#039;      =&amp;gt; $compact,]        // leeg of &#039;TRUE&#039;&lt;br /&gt;
     [&#039;hccGroepering&#039;=&amp;gt; $hccGroepering,]  // Een testgebruiker mag alleen op deze site inloggen&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccRegio&#039;           =&amp;gt; $hccRegio,&lt;br /&gt;
    &#039;hccIG&#039;              =&amp;gt; $hccIG,&lt;br /&gt;
    &#039;hccRol&#039;             =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;hccAutorisatie&#039;     =&amp;gt; $hccAutorisatie,&lt;br /&gt;
    &#039;cn&#039;                 =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;                 =&amp;gt; $sn,&lt;br /&gt;
    &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
   [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccPseudoniem&#039;      =&amp;gt; $hccPseudoniem,&lt;br /&gt;
    &#039;givenname&#039;          =&amp;gt; $givenname,&lt;br /&gt;
    &#039;hccAanhef&#039;          =&amp;gt; $hccAanhef,&lt;br /&gt;
    &#039;hccGeslacht&#039;        =&amp;gt; $hccGeslacht,&lt;br /&gt;
    &#039;hccTussenVoegsels&#039;  =&amp;gt; $hccTussenVoegsels,&lt;br /&gt;
    &#039;hccAchternaam&#039;      =&amp;gt; $hccAchternaam,&lt;br /&gt;
    &#039;hccStraatnaam&#039;      =&amp;gt; $hccStraatnaam,&lt;br /&gt;
    &#039;hccHuisnummer&#039;      =&amp;gt; $hccHuisnummer&lt;br /&gt;
    &#039;hccPostcode&#039;        =&amp;gt; $hccPostcode,&lt;br /&gt;
    &#039;hccWoonplaats&#039;      =&amp;gt; $hccWoonplaats,&lt;br /&gt;
    &#039;hccLand&#039;            =&amp;gt; $hccLand,&lt;br /&gt;
    &#039;hccTelefoon&#039;        =&amp;gt; $hccTelefoon,&lt;br /&gt;
    &#039;mail&#039;               =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;         =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;       =&amp;gt; $hccKaderMail, &lt;br /&gt;
    &#039;hccKaderForward&#039;    =&amp;gt; $hccKaderForward,&lt;br /&gt;
    &#039;hccKaderToonMobiel&#039; =&amp;gt; $hccKaderToonMobiel,&lt;br /&gt;
    &#039;hccOptIn&#039;           =&amp;gt; $hccOptIn,&lt;br /&gt;
    &#039;ProfielBekend&#039;      =&amp;gt; $ProfielBekend,&lt;br /&gt;
    &#039;hccBeginDatum&#039;      =&amp;gt; $hccBeginDatum,&lt;br /&gt;
    &#039;testaccount&#039;        =&amp;gt; is_testaccount(),     // &#039;TRUE&#039; | &#039;FALSE&#039;&lt;br /&gt;
   [&#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,     // in Mb&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald;]]);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de opt-in keuzes op een Joomla site **&lt;br /&gt;
// H.4 Pas 1 opt-in van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// Als hccLidnummer gevuld is, dan is dat het lidnummer waar de mutatie op moet worden uitgevoerd.&lt;br /&gt;
// Dat kan alleen als de aanvrager HCC#LAD of HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,]&lt;br /&gt;
      &#039;hccOptIn&#039;     =&amp;gt; $hccOptIn,&lt;br /&gt;
      &#039;actie&#039;        =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptIn aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
    &lt;br /&gt;
// H.5 Zoek kaderleden NAW (t.b.v. de Joomla kadersite)&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
//&lt;br /&gt;
// * Er dient minstens 1 zoekcriterium opgegeven te worden.&lt;br /&gt;
// * Als zowel hccRegio als tegelijk ook hccIG opgegeven worden is de uitkomst onvoorspelbaar.&lt;br /&gt;
// * Als compact=TRUE worden enkel lidnummer, cn en sn in het antwoord gezet&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
     [&#039;hccIG&#039;       =&amp;gt; $hccIG,]&lt;br /&gt;
     [&#039;hccRol&#039;      =&amp;gt; $hccRol,]&lt;br /&gt;
     [&#039;hccLocatie&#039;  =&amp;gt; $hccLocatie,]&lt;br /&gt;
     [&#039;achternaam&#039;  =&amp;gt; $achternaam,]&lt;br /&gt;
     [&#039;compact&#039;     =&amp;gt; $compact]));        // leeg of &#039;TRUE&#039;&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Kaderleden opgevraagd&#039;&lt;br /&gt;
    &#039;Kaderleden&#039;      =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidNummer&#039;  =&amp;gt; $hccLidNummer,&lt;br /&gt;
      &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccAanhef&#039;     =&amp;gt; $hccAanhef,&lt;br /&gt;
      &#039;givenname&#039;     =&amp;gt; $givenname,&lt;br /&gt;
      &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
      &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
      &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;]);&lt;br /&gt;
&lt;br /&gt;
// H.9 PasKaderGegevensAan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
// Om de kaderleden hun forward in te laten stellen,&lt;br /&gt;
// en tegelijkertijd de opt-in / opt-out voor hccToonMobiel te laten regelen&lt;br /&gt;
// Kan tevens het kader email wachtwoord aanpassen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;         =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;            =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;              =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;hccKaderForward&#039;     =&amp;gt; $hccKaderForward,    // &#039;&#039; | $mail | $mailHccNet&lt;br /&gt;
      &#039;hccKaderToonMobiel&#039;  =&amp;gt; $hccKaderToonMobiel, // &#039;TRUE&#039; | &#039;FALSE&#039; | &#039;NULL&#039;&lt;br /&gt;
     [&#039;nieuw_kaderPassword&#039; =&amp;gt; $nieuw_kaderPassword]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;kadergegevens aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;|&#039;Alleen kaderleden mogen deze aanroep uitvoeren&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** Portal beheer.hcc.nl&lt;br /&gt;
// ** H.10 PasUserWachtwoordAan&lt;br /&gt;
// ** Betalende Hobbynet gebruikers kunnen hiermee hun wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van hccLogin en userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;         =&amp;gt; $username,&lt;br /&gt;
      &#039;userpassword&#039;     =&amp;gt; $password,&lt;br /&gt;
      &#039;hobbynetAccount&#039;  =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;nieuw_wachtwoord&#039; =&amp;gt; $nieuw_wachtwoord,&lt;br /&gt;
      &#039;ServerID&#039;         =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;           =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;         =&amp;gt; $remoteAddr));        &lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;     |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij gebruiker $hccLogin&#039; |&lt;br /&gt;
                 &#039;Kan ww van account $hobbynetAccount niet aanpassen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.11 Pas het pseudoniem van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Pseudoniem aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039; | &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.12 Controleer of een opgegeven wachtwoord aan de minimum eisen voldoet&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Wachtwoord voldoet aan de minimale eisen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Wachtwoord voldoet niet aan de minimale eisen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit een Joomla template site kunnen gebruikers hiermee hun eigen wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van JoomlaToken, lidnummer, siteID. Extra controle via userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;userpassword&#039;       =&amp;gt; $password,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13.1 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee hun eigen wachtwoord resetten&lt;br /&gt;
// (authenticatie op basis van PWResetToken en hccLogin).&lt;br /&gt;
// (Als de aanroep geslaagd is, dan is daarna het PWResetToken ongeldig)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039;       =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.14 MaakPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee een wachtwoord reset aanvragen&lt;br /&gt;
//    Deze aanroep geeft naast het PWResetToken ook het contact emailadres mee terug,&lt;br /&gt;
//    zodat Joomla een reset-mail kan sturen&lt;br /&gt;
// (acties op basis van gebruikersnaam)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;   =&amp;gt; $username,&lt;br /&gt;
      &#039;ServerID&#039;   =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;     =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;   =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
    &#039;mail&#039;         =&amp;gt; $mail,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token aangemaakt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.15 ValideerPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers een wachtwoord reset aanvragen&lt;br /&gt;
//    Controleer dat het hier om een bestaand (en nog niet gebruikt) token gaat&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token gevonden&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;hccLogin bestaat niet&#039; | &#039;PWResetToken bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.16 Ruim een bestaand JoomlaToken op&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;JoomlaToken opgeruimd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuist JoomlaToken&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.17 GeefAantalDomeinen&lt;br /&gt;
// ** Vraag het aantal domeinen op van een betalende Hobbynet gebruiker (t.b.v. IDEAL betaling)&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;     =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;ServerID&#039;        =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;          =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;        =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
    &#039;AantalDomeinen&#039;  =&amp;gt; $aantalDomeinen,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;aantal domeinen opgevraagd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij deze gebruiker&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18 ResetHCCCode&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // geheime credentials van de site&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // geheime credentials van de site&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18.1 ResetHCCCode (hcc kantoor aanroep)&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,    // Het Joomla token van de sessie van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,       // Het lidnummer van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de hccLogin van een gebruiker (Hobbynet functie op Joomla site)  **&lt;br /&gt;
// H.19 Pas de hccLogin van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// hccLidnummer is het lidnummer waar de mutatie op moet worden uitgevoerd&lt;br /&gt;
// Kan alleen als de aanvrager HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,     // lidnummer van de aanvrager&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,  // JoomlaToken van de aanvrager&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer, // pas de hccLogin van dit lidnummer aan&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,     // dit is de gewenste nieuwe hccLogin&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;hccLogin aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039;       | &lt;br /&gt;
                 &#039;Gebruikersnaam al in gebruik&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. het aanmaken van een testaccount door een webmaster&lt;br /&gt;
// H.20 Maak een testaccount aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// Kan alleen als de aanvrager WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakTestLogin&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,     // JoomlaToken van de aanvrager&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,    // lidnummer van de aanvrager&lt;br /&gt;
      &#039;hccRol&#039;        =&amp;gt; $hccRol,          // (mag leeg zijn)&lt;br /&gt;
      &#039;hccGroepering&#039; =&amp;gt; $hccGroepering,   // (regio of IG)&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;MaakTestLogin&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Tijdelijk test account aangemaakt&#039;,&lt;br /&gt;
    &#039;TestAccountNaam&#039; =&amp;gt; &#039;test-&amp;lt;groepering&amp;gt;-&amp;lt;hccLogin&amp;gt;&#039;&lt;br /&gt;
    &#039;userpassword&#039;    =&amp;gt; $nieuw_userpassword,&lt;br /&gt;
    &#039;hccGroepering&#039;   =&amp;gt; $hccGroepering,&lt;br /&gt;
    &#039;hccRol&#039;          =&amp;gt; $hccRol);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MaakTestLogin&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// 3.1 Geef mijn lidnummer&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Lidnummer opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039; =&amp;gt; $hccLidnr);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Deze gegevens worden opgevraagd bij hccnet.nl (action=3)       **&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccLogin&#039; =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Enkel voor gebruik vanaf de kantoor portal **&lt;br /&gt;
// **  t.b.v. het hernoemen van accounts in CRM  **&lt;br /&gt;
// 8.3 Controleer of een Pseudoniem op dit moment bestaat		??? NIET GEBRUIKT ??&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken zoekpagina **&lt;br /&gt;
// A.1 Zoek alle bij de query passende hcc leden&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;ZoekMethode&#039;    =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;     =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;     =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $Groepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (eerste deel van) de naam               |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | emailadres          | (eerste deel van) e-mail adres          |&lt;br /&gt;
 | gebruikersnaam      | (eerste deel van) de login naam         |&lt;br /&gt;
 | pseudoniem          | (eerste deel van) het pseudoniem        |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | niet_leden          | het volledige niet-lid lidnummer        |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
   [&#039;ExtraInfo&#039;   =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;     =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidnummer&#039;      =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;hccBeginDatum&#039;     =&amp;gt; $hccBeginDatum,&lt;br /&gt;
      &#039;hccEindDatum&#039;      =&amp;gt; $hccEindDatum,&lt;br /&gt;
      &#039;sn&#039;                =&amp;gt; $sn,&lt;br /&gt;
      &#039;givenName&#039;         =&amp;gt; $givenName,&lt;br /&gt;
      &#039;hccGeslacht&#039;       =&amp;gt; $hccGeslacht,&lt;br /&gt;
      &#039;hccStraatnaam&#039;     =&amp;gt; $hccStraatnaam,&lt;br /&gt;
      &#039;hccHuisnummer&#039;     =&amp;gt; $hccHuisnummer&lt;br /&gt;
      &#039;hccHuisToevoeging&#039; =&amp;gt; $hcchuisToevoeging,&lt;br /&gt;
      &#039;hccPostcode&#039;       =&amp;gt; $hccPostcode,&lt;br /&gt;
      &#039;hccWoonplaats&#039;     =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccLand&#039;           =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;hccTelefoon&#039;       =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;         =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;mail&#039;              =&amp;gt; $mail,&lt;br /&gt;
      &#039;mailHccnet&#039;        =&amp;gt; $mailHccnet,&lt;br /&gt;
      &#039;hccIG&#039;             =&amp;gt; $hccIG,&lt;br /&gt;
      &#039;hccRol&#039;            =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccLogin&#039;          =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;hccPseudoniem&#039;     =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ProfielBekend&#039;     =&amp;gt; &#039;TRUE&#039; | &#039;FALSE&#039;])*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. beheer.hcc.nl **&lt;br /&gt;
// A.3 Zoek alle bij de query passende hcc leden van deze groepering&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
      &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;  =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;  =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,] // Alleen voor gebruik op de&lt;br /&gt;
                                      // bijeenkomsten aanwezigheidsregistratie pagina&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (deel van) de naam                      |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | nieuwe_leden        | YYYYMMDD vanaf waar gezocht moet worden |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | kaderleden          | n.v.t.                                  |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;   =&amp;gt;&lt;br /&gt;
      [array(&lt;br /&gt;
         &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
         &#039;hccBeginDatum&#039; =&amp;gt; $hccBeginDatum,&lt;br /&gt;
         &#039;hccEindDatum&#039;  =&amp;gt; $hccEindDatum,&lt;br /&gt;
         &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
         &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
         &#039;givenName&#039;     =&amp;gt; $givenName,&lt;br /&gt;
         &#039;hccAchternaam&#039; =&amp;gt; $hccAchternaam,&lt;br /&gt;
         &#039;hccTussenVoegsels =&amp;gt; hccTussenVoegsels,  &lt;br /&gt;
         &#039;hccGeslacht&#039;   =&amp;gt; $hccGeslacht,&lt;br /&gt;
         &#039;hccStraatnaam&#039; =&amp;gt; $hccStraatnaam,&lt;br /&gt;
         &#039;hccHuisnummer&#039; =&amp;gt; $hccHuisnummer, &lt;br /&gt;
         &#039;hccPostcode&#039;   =&amp;gt; $hccPostcode,&lt;br /&gt;
         &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
         &#039;hccLand&#039;       =&amp;gt; $hccLand, &lt;br /&gt;
         &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
         &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
         &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
         &#039;mailHccnet&#039;    =&amp;gt; $mailHccnet,&lt;br /&gt;
         &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail,&lt;br /&gt;
         &#039;hccRegio&#039;      =&amp;gt; $hccRegio,&lt;br /&gt;
         &#039;hccIG&#039;         =&amp;gt; $hccIG,&lt;br /&gt;
         &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
         &#039;hccLogin&#039;      =&amp;gt; $hccLogin,&lt;br /&gt;
         &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem)]*));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) niet gevonden&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten **&lt;br /&gt;
// A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,    // lid dat aanwezig gemeld moet worden&lt;br /&gt;
     [&#039;correctie&#039;   =&amp;gt; $hccLidnr,]   // lid dat gecorrigeerd moet worden&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Bezoeker weggeschreven&#039;,&lt;br /&gt;
    &#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
      // info van deze bezoeker&lt;br /&gt;
      &#039;cn&#039;               =&amp;gt; $cn,                // cn (Verbeek, H.J.)&lt;br /&gt;
      &#039;hccGeslacht&#039;      =&amp;gt; $hccGeslacht,       // hccGeslacht van de bezoeker&lt;br /&gt;
      &#039;groeperingslid&#039;   =&amp;gt; $groeperingslid,    // TRUE of FALSE: is deze persoon lid van deze groepering&lt;br /&gt;
      &#039;mijnGroeperingen&#039; =&amp;gt; $mijnGroeperingen,  // komma-gescheiden lijst (regio, [hccIG]*)&lt;br /&gt;
      &#039;aantalBezoeken&#039;   =&amp;gt; $aantalBezoeken,    // hoe vaak heeft dit lid deze bijeenkomst bezocht&lt;br /&gt;
      // info van de bijeenkomst&lt;br /&gt;
      &#039;AantalBezoekers&#039;  =&amp;gt; $AantalBezoekers);  // aantal bezoekers van deze bijeenkomst&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.5 Vraag Lidgegevens token aan (geldig voor dit lid, en deze groepering, op deze datum)&lt;br /&gt;
// Als geen datum gegeven is, dan is het token vandaag geldig&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnummer, // vraag het token voor dit lid aan&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering,   // zoek binnen deze groepering&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]       // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;     =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;     =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;    =&amp;gt; &#039;Token opgevraagd&#039;,&lt;br /&gt;
    &#039;groepering&#039; =&amp;gt; $Groepering,&lt;br /&gt;
    &#039;token&#039;      =&amp;gt; $token,&lt;br /&gt;
    &#039;sn&#039;         =&amp;gt; $sn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.6 Toon bezoekersoverzicht&lt;br /&gt;
// (authenticatie op basis van lidnummer en bezoekersregistratie token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bezoekersoverzicht opgevraagd&#039;,&lt;br /&gt;
    &#039;Bezoekers&#039; =&amp;gt; $bezoekers,&lt;br /&gt;
   [&#039;Locatie&#039;   =&amp;gt; $Locatie]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// A.7 Geef het array met alle locaties&lt;br /&gt;
// (of beperk dit tot de locaties van de groepering $Groepering)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij hccToonInJoomla aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij ToonOpKaderNet aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocaties&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $hccGroepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;       =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;      =&amp;gt; &#039;Geen locaties gevonden voor groepering $hccGroepering&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// A.8 Registreer een niet-hcclid als bezoeker tijdens een bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RegistreerGast&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039;   =&amp;gt; $lidnr,        // credentials&lt;br /&gt;
      &#039;AccountCode&#039;   =&amp;gt; $AccountCode,  // credentials&lt;br /&gt;
      &#039;token&#039;         =&amp;gt; $token,        // credentials&lt;br /&gt;
      &#039;Bijeenkomst&#039;   =&amp;gt; $groepering,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;naam&#039;          =&amp;gt; $naam,&lt;br /&gt;
      &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;buitenland&#039;    =&amp;gt; $buitenland,&lt;br /&gt;
     [&#039;nietLidNummer&#039; =&amp;gt; $nietLidNummer,]&lt;br /&gt;
     [&#039;instructies&#039;   =&amp;gt; $instructies,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $aanroep,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid als bezoeker geregistreerd&#039;,&lt;br /&gt;
    &#039;Result&#039;  =&amp;gt; $result_array);&lt;br /&gt;
&lt;br /&gt;
// A.9 Geef het array met alle locatienamen&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;           =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locatienamen niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;          =&amp;gt; &#039;Geen locatienamen gevonden&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
// A.10 Schrijf een niet-lid in op een bulletin&lt;br /&gt;
// (2019.12.05: wordt actief gebruikt in Joomla module)&lt;br /&gt;
//      Deze aanroep mag *ook* worden gebruikt om een wel-lid in te schrijven.&lt;br /&gt;
//      Voorwaarde is dat bewezen is dat er controle bestaat over het opgegeven email adres&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
      &#039;hccOptin&#039;       =&amp;gt; $hccOptin,       // bulletin waarop ingeschreven wordt&lt;br /&gt;
      &#039;hccOptinSource&#039; =&amp;gt; $hccOptinSource, // site waar aanmelding vandaan komt&lt;br /&gt;
      &#039;Email&#039;          =&amp;gt; $Email,          // niet-lid: email adres&lt;br /&gt;
      &#039;Naam&#039;           =&amp;gt; $Naam,           // niet-lid: naam&lt;br /&gt;
     [&#039;hccLidNummer&#039;   =&amp;gt; $hccLidNummer,]  // optioneel: ik ben lid, dit is mijn lidnummer&lt;br /&gt;
     [&#039;Postcode&#039;       =&amp;gt; $Postcode,]      // optioneel: niet-lid: postcode&lt;br /&gt;
     [&#039;Huisnummer&#039;     =&amp;gt; $Huisnummer,]    // optioneel: niet-lid: huisnummer&lt;br /&gt;
     [&#039;hccGeslacht&#039;    =&amp;gt; $hccGeslacht,] // optioneel: niet-lid: geslacht (M/V/O)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Inschrijving op bulletin gelukt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                   &#039;Gegevenscombinatie onjuist&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid DN syntax&#039;    |&lt;br /&gt;
                   &#039;Invalid credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.11 Toon bezoekers aantallen&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
//&lt;br /&gt;
// ==&amp;gt; Mag weg: laatste aanroep 2018.12.15 &amp;lt;==&lt;br /&gt;
//&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]      // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;BezoekersAantallen opgevraagd&#039;,&lt;br /&gt;
    &#039;Datum&#039;       =&amp;gt; $datum,&lt;br /&gt;
    &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,&lt;br /&gt;
    &#039;Bezoekers&#039;   =&amp;gt; array(&lt;br /&gt;
      [HCC!seniorenacademie] =&amp;gt; Array(&lt;br /&gt;
        [Gorinchem] =&amp;gt; 15&lt;br /&gt;
        [Woerden]   =&amp;gt; 36)&lt;br /&gt;
      ...));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.12 GeefAlleBulletins&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Bulletins opgevraagd&#039;,&lt;br /&gt;
    &#039;bulletins&#039;       =&amp;gt; $bulletins);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.13 ExpandeerPostcode&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Postcode opgevraagd&#039;,&lt;br /&gt;
    &#039;detailgegevens&#039;  =&amp;gt; $detailgegevens);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.25 UpdateNAW&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateNAW&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;toevoeging&#039;    =&amp;gt; $toevoeging,&lt;br /&gt;
      &#039;straat&#039;        =&amp;gt; $straat,&lt;br /&gt;
      &#039;woonplaats&#039;    =&amp;gt; $woonplaats,&lt;br /&gt;
      &#039;landcode&#039;      =&amp;gt; $landcode,&lt;br /&gt;
      &#039;email&#039;         =&amp;gt; $email,&lt;br /&gt;
      &#039;voornaam&#039;      =&amp;gt; $voornaam,&lt;br /&gt;
      &#039;voorletters&#039;   =&amp;gt; $voorletters,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateContactGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Contactgegevens bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.18 NormaliseerTelefoon&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLand&#039;        =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Telefoonnummer genormaliseerd&#039;,&lt;br /&gt;
    &#039;Telefoonnummer&#039;  =&amp;gt; $Telefoonnummer);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.20 UpdateMobiel&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateMobiel&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateMobiel&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Mobiel nummer bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.21 HaalIGBedragenOp&lt;br /&gt;
//      Geef alle IG&#039;s waar je zelf lid van kunt worden, inclusief het bijbehorende bedrag&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Interessegroepen en bedragen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.22 HaalTariefGroepenOp&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Tariefgroepen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.23 PasInteressegroepAan&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;nieuw&#039;         =&amp;gt; $IG_lijst_nieuw,]&lt;br /&gt;
     [&#039;weg&#039;           =&amp;gt; $IG_lijst_weg,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;IG keuzen aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.24 GeefSSOUrls&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;SSO_urls&#039;        =&amp;gt; $sso_urls,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Single Sign On URLs opgevraagd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken beheer pagina **&lt;br /&gt;
// A.26 Verwijder een niet-lid record&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnummer,   // het te verwijderen niet-lid nummer&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Niet-lid record verwijderd&#039;,&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid record niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** HenZ **&lt;br /&gt;
// ** t.b.v. daily cron job  **&lt;br /&gt;
// ** t.b.v. dagelijkse opschoon jobs Joomla template sites **&lt;br /&gt;
// C.1 Vraag de lijst met uitgeschreven leden op&lt;br /&gt;
//     Dit kan beperkt worden tot een bepaalde regio of interessegroep&lt;br /&gt;
//     Daarnaast kan het tijdvak waarin gezocht wordt vrij gekozen worden&lt;br /&gt;
//     (gesteld dat de LDAP database nog leden uit die periode bevat)&lt;br /&gt;
//     Antwoord: lijst met (lidnummer, hccLogin, sn,&lt;br /&gt;
//                          datum einde lidmaatschap (formaat:YYYYMMDD))&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; GeefUitgeschrevenLeden &amp;lt;== (oud: GeefOpgezegdeLeden)&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccRegio&#039;       =&amp;gt; $hccRegio,    // of leeg&lt;br /&gt;
      &#039;hccIg&#039;          =&amp;gt; $hccIg,       // of leeg&lt;br /&gt;
      &#039;datum_vanaf&#039;    =&amp;gt; $datum_sinds, // YYYY-MM-DD of YYYYMMDD of leeg (leeg: 3 dagen geleden)&lt;br /&gt;
      &#039;datum_tot&#039;      =&amp;gt; $datum_tot,   // YYYY-MM-DD of YYYYMMDD of leeg (leeg: vandaag)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Uitgeschreven leden&#039;,&lt;br /&gt;
   [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
   [&#039;hccIg&#039;       =&amp;gt; $hccIg,]&lt;br /&gt;
   [&#039;datum_vanaf&#039; =&amp;gt; $datum_vanaf,]&lt;br /&gt;
   [&#039;datum_tot&#039;   =&amp;gt; $datum_tot,]&lt;br /&gt;
   [&#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
     [array(&lt;br /&gt;
        &#039;hccLogin&#039;               =&amp;gt; $hccLogin,&lt;br /&gt;
        &#039;hccLidNummer&#039;           =&amp;gt; $hccLidnummer,&lt;br /&gt;
        &#039;sn&#039;                     =&amp;gt; $sn,&lt;br /&gt;
        &#039;DatumEindeLidmaatschap&#039; =&amp;gt; $DatumEindeLidmaatschap)]*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCCpartner aanroepen ===&lt;br /&gt;
(interface versie 1)&amp;lt;br&amp;gt;&lt;br /&gt;
(oude interface, niet meer gebruiken!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.1 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    array(&#039;partnerLogin&#039;,    $partnerLogin),&lt;br /&gt;
    array(&#039;partnerPassword&#039;, $partnerPassword),&lt;br /&gt;
    array(&#039;hccLidnummer&#039;,    $hcclidnummer),&lt;br /&gt;
    array(&#039;postcode&#039;,        $postcode)));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;TRUE&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;FALSE&#039;));&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Onjuiste credentials&#039;));&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
     &#039;HCCpartner&#039;,&lt;br /&gt;
     array(&lt;br /&gt;
       &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
       array(&#039;parameter&#039;, $iets)));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;OnbekendeAanroep&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Opdracht onbekend&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCCpartners aanroepen ===&lt;br /&gt;
(interface versie 2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.2 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;          =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
      &#039;partnerLogin&#039;    =&amp;gt; $partnerLogin,&lt;br /&gt;
      &#039;partnerPassword&#039; =&amp;gt; $partnerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hcclidnummer,&lt;br /&gt;
      &#039;postcode&#039;        =&amp;gt; $postcode,&lt;br /&gt;
     [&#039;ServerID&#039;        =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;          =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;        =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;groepering=$groepering&#039;]); // als de partner beperkt is tot 1 groepering&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;FALSE&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;    =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
      &#039;parameter&#039; =&amp;gt; $iets));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Opdracht onbekend&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-kader aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** beheer.hcc.nl **&lt;br /&gt;
// F.2 Controleer of dit een kaderlid is&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsKaderLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Is kaderlid&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;cn&#039;              =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;              =&amp;gt; $sn,&lt;br /&gt;
    &#039;hccRol&#039;          =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;mail&#039;            =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;      =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;    =&amp;gt; $hccKaderMail,&lt;br /&gt;
    &#039;hccKaderForward&#039; =&amp;gt; $hccKaderForward);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Is geen kaderlid&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.4 Vraag alle groeperingen op&lt;br /&gt;
// Het is mogelijk om een groepering te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  ToonInOverzichtenFilter : attribuut &#039;hccToonInOverzichten&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  BulletinsFilter         : attribuut &#039;hccBulletins&#039;&lt;br /&gt;
//  EmailFilter             : attribuut &#039;hccFunctionalEmail&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;                =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;                  =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;                =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;          =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;BulletinsFilter&#039;         =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;EmailFilter&#039;             =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;&#039; | &#039;TRUE&#039;));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;                  =&amp;gt; &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    &#039;Status&#039;                  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;                 =&amp;gt; &#039;Lijst met groeperingen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;                  =&amp;gt; $groeperingen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;          =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.5 Vraag alle kaderrollen op&lt;br /&gt;
// Het is mogelijk om een kaderrol  te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Lijst met kaderrollen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;             =&amp;gt; $kaderrollen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de kantoor-beheerpagina **&lt;br /&gt;
// F.9 Geef de gevevens van de mailbox van dit kaderlid&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;     =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039;  =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039;));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de Joomla Kadernet module **&lt;br /&gt;
//  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID en als extra hccCode van de aanvrager)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccCode&#039;        =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
      &#039;hccLidnummer    =&amp;gt; $hccLidnummer, // lidnummer van het te muteren hcc lid&lt;br /&gt;
      &#039;hccRol&#039;         =&amp;gt; $hccRol,       // de nieuwe dan wel op te heffen rol&lt;br /&gt;
                                         // de rol &#039;ALLES_WEG&#039; ruimt alle rollen van dit hcc lid voor deze groepering op&lt;br /&gt;
      &#039;actie&#039;          =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Groepering samenstelling aangepast&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Bedankmail gestuuurd aan ex-kaderlid&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Oude rol niet gevonden&#039; |&lt;br /&gt;
		   &#039;Nieuwe rol kan niet samen met bestaande rol&#039; |&lt;br /&gt;
		   &#039;Alleen voorzitter of secretaris kan kadermutaties uitvoeren&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-groepering aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// I.2 controleer of een gebruiker bestaat op basis van de combinatie&lt;br /&gt;
//     lidnummer + postcode + huisnummer&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
// (alternatieve authenticatie mogelijk door lidnummer + hcc-code in te vullen)&lt;br /&gt;
//&lt;br /&gt;
// Aan de aanroeper worden zekere eisen gesteld:&lt;br /&gt;
// * dient een rol te vervullen binnen de groepering &#039;FOR&#039;(forum)&lt;br /&gt;
// * dan wel dient de rol &#039;VRBK&#039; (vraagbaak) te vervullen binnen een groepering&lt;br /&gt;
//&lt;br /&gt;
// Er wordt door de gehele leden-database gezocht, waarna terug wordt gegeven &lt;br /&gt;
// * of dit hcc lid inderdaad bestaat&lt;br /&gt;
// en, als het om een aanvraag van een vraagbaak vrijwilliger gaat, &lt;br /&gt;
// * tevens of het gezochte hcc lid deel uitmaakt van zijn groepering&lt;br /&gt;
//&lt;br /&gt;
// ==&amp;gt; Mag weg: laatste aanroep 2018.07.27 &amp;lt;==&lt;br /&gt;
//&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;        =&amp;gt; [$hccLogin | $hccLidnummer],&lt;br /&gt;
      &#039;userPassword&#039;    =&amp;gt; [$userPassword | $hccCode],&lt;br /&gt;
      &#039;zoekhccLidnr&#039;    =&amp;gt; $zoekhccLidnr,&lt;br /&gt;
      &#039;zoekhccPostcode&#039; =&amp;gt; $zoekhccPostcode,&lt;br /&gt;
      &#039;zoekhccHuisnr&#039;   =&amp;gt; $zoekhccHuisnr,&lt;br /&gt;
      &#039;zoekgroepering&#039;  =&amp;gt; $zoekgroepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens gecontroleerd&#039;,&lt;br /&gt;
   [&#039;Groeperingslid&#039; =&amp;gt; $IsGroeperingLid]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker bestaat niet&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Wel HCC lid, maar geen lid van groepering $groepering&#039; |&lt;br /&gt;
                 &#039;Onvoldoende rechten&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HenZ aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// I.3 Geef de einddatum van een actief dan wel uitgeschreven lid&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
    &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccEindDatum&#039; =&amp;gt; $hccEindDatum (&#039;yyyymmdd&#039; | &#039;&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;Lidnummer niet gevonden&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== (Forum,vraagbaak) onderwerpen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// L.1 MaakOnderwerp&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is aangemaakt&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.2 VerwijderOnderwerp&lt;br /&gt;
&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is verwijderd&#039;,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039;            |&lt;br /&gt;
                   &#039;Geen webmaster&#039;                 |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;         |&lt;br /&gt;
		   &#039;Ruim eerst alle geautoriseerde gebruikers op&#039; |&lt;br /&gt;
		   &#039;Kan onderwerp niet verwijderen&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.3 GeefOnderwerpen &lt;br /&gt;
// Geef het array met de lijst van onderwerpen voor de betreffende groepering&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerpen opgevraagd&#039;,&lt;br /&gt;
    &#039;onderwerpen&#039; =&amp;gt; $onderwerpen); // het array met onderwerpen&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.4 MuteerOnderwerp&lt;br /&gt;
// Pas de description van een onderwerp aan&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
   &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
   array(&lt;br /&gt;
     &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
     &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
     &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
     &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     &#039;groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
     &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
     &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp aangepast&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039; |&lt;br /&gt;
		   &#039;Onderwerp behoort bij andere groepering&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
// Geef kaderlid $kaderLidNr de autorisatie MOD, VRBK of RED bij onderwerp $onderwerp&lt;br /&gt;
// (of haal die autorisatie weg)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
    &#039;onderwerp&#039;      =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;kaderLidNr&#039;     =&amp;gt; $kaderLidNr,&lt;br /&gt;
    &#039;hccAutorisatie&#039; =&amp;gt; &#039;MOD&#039; | &#039;VRBK&#039; | &#039;RED&#039;,&lt;br /&gt;
   [&#039;verwijder&#039;      =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp autorisatie aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Onjuiste autorisatie opgegeven&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Autorisaties opgehaald&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;    =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039;  =&amp;gt; $description,&lt;br /&gt;
    &#039;autorisaties&#039; =&amp;gt; &lt;br /&gt;
      [Array(&lt;br /&gt;
        &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer&lt;br /&gt;
        &#039;cn&#039;              =&amp;gt; $cn&lt;br /&gt;
        &#039;hccAutorisatie&#039;  =&amp;gt; {komma-gescheiden autorisaties})]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Dynamics Cloud (Cayentis) onderwerpen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// M.1 Upload_CSV_bestand&lt;br /&gt;
// De CRM proxy upload de dagelijkse CSV synchronisatie-bestanden naar de XML-RPC server&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;      =&amp;gt; $beheerLogin,     // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039;   =&amp;gt; $beheerPassword,  // xml-rpc password&lt;br /&gt;
    &#039;CSV_bestand_type&#039; =&amp;gt; &#039;1&#039; | &#039;2&#039; | &#039;3&#039; , // 1=Contactpersonen/Hoofdlidmaatschappen&lt;br /&gt;
                                            // 2=Gremiumlidmaatschap codes&lt;br /&gt;
                                            // 3=Gremiumlidmaatschappen&lt;br /&gt;
    &#039;CSV_bestand&#039;      =&amp;gt; $CSV_bestand));   // het CSV bestand (base64 encoded)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bestand opgeslagen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.2 SchrijfNieuwLidIn&lt;br /&gt;
// &lt;br /&gt;
// Maak in het CRM een nieuw HCC lid aan&lt;br /&gt;
// De NAW gegevens worden in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;NAWgegevens&#039;    =&amp;gt; $NAW_Array,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress);&lt;br /&gt;
// $NAW_array = array(&lt;br /&gt;
//   &#039;GeboorteDatum&#039;         =&amp;gt; $geboortedatum,&lt;br /&gt;
//   &#039;Geslacht&#039;              =&amp;gt; $geslacht,&lt;br /&gt;
//   &#039;Voornaam&#039;              =&amp;gt; $voornaam,&lt;br /&gt;
//   &#039;Voorletters&#039;           =&amp;gt; $voorletters,&lt;br /&gt;
//   &#039;Tussenvoegsel&#039;         =&amp;gt; $tussenvoegsel,&lt;br /&gt;
//   &#039;Achternaam&#039;            =&amp;gt; $achternaam,&lt;br /&gt;
//   &#039;Straatnaam&#039;            =&amp;gt; $straatnaam,&lt;br /&gt;
//   &#039;Huisnummer&#039;            =&amp;gt; $huisnummer,&lt;br /&gt;
//   &#039;HuisnummerToevoeging&#039;  =&amp;gt; $huisnummertoevoeging,&lt;br /&gt;
//   &#039;Woonplaats&#039;            =&amp;gt; $woonplaats,&lt;br /&gt;
//   &#039;Postcode&#039;              =&amp;gt; $postcode,&lt;br /&gt;
//   &#039;Land&#039;                  =&amp;gt; $land,&lt;br /&gt;
//   &#039;Telefoonnummer&#039;        =&amp;gt; $telefoonnummer,&lt;br /&gt;
//   &#039;MobielNummer&#039;          =&amp;gt; $mobielnummer,&lt;br /&gt;
//   &#039;Mail&#039;                  =&amp;gt; $mail,&lt;br /&gt;
//   &#039;IBAN&#039;                  =&amp;gt; $IBAN,&lt;br /&gt;
//   &#039;Interessegroep&#039;        =&amp;gt; $IGs, // komma-gescheiden lijst met IG&#039;s&lt;br /&gt;
//   &#039;Geschenk&#039;              =&amp;gt; $geschenk,&lt;br /&gt;
//   &#039;Actiecode&#039;             =&amp;gt; $actiecode,&lt;br /&gt;
//   &#039;Voorwaarden&#039;           =&amp;gt; $Akkoord); // &#039;Akkoord&#039;&lt;br /&gt;
)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;nieuw lid ingeschreven&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;  =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccCode&#039;   =&amp;gt; $hccCode);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.3 Verwerk_JSON_mutatie&lt;br /&gt;
// De CRM proxy kan NAW en/of IG mutaties en/of hccCode mutaties live doorgeven&lt;br /&gt;
// Deze gegevens worden in JSON in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;mutatie_type&#039;   =&amp;gt; &#039;1&#039; | &#039;2&#039;,       // 1=Contactpersoon/Hoofdlidmaatschap&lt;br /&gt;
                                         // 2=Gremiumlidmaatschap&lt;br /&gt;
    &#039;JSON_mutatie&#039;   =&amp;gt; $JSON_mutatie)); // de JSON payload&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Mutatie verwerkt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.4 Vertaal landcode&lt;br /&gt;
// Het CRM werkt met numerieke landcodes, wij met cijfers&lt;br /&gt;
// Vertaal die&lt;br /&gt;
// Er moet in de aanroep 1 veld aanwezig zijn, beide waarden komen in het antwoord terug&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ISO_landcode&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    [&#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,]&lt;br /&gt;
    [&#039;ISO_code   &#039;  =&amp;gt; $ISO_code]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;ISO code lookup geslaagd&#039;,&lt;br /&gt;
    &#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,&lt;br /&gt;
    &#039;ISO_code   &#039;  =&amp;gt; $ISO_code,&lt;br /&gt;
    &#039;ISO_benaming&#039; =&amp;gt; $ISO_benaming); // de descriptive name van deze ISO code&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Kan geen bijpassende vertaling vinden&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
// M.5 MuteerAanmeldingsformulier&lt;br /&gt;
// Sla een JSON veld op in de XML-RPC server zodat deze weer opgehaald kan worden door de websites&lt;br /&gt;
// Authenticatie op basis van hccLidnummer en JoomlaToken&lt;br /&gt;
// Deze mutaties mogen alleen door HN#WM of SITE#WM gedaan worden.&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    MuteerAanmeldingsformulier,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;formulierdata&#039; =&amp;gt; $formulierdata, // JSON veld met alle gegevens voor het aanmeld formulier&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress ));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;MuteerAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;aanmeldingsformulier bijgewerkt&#039;;&lt;br /&gt;
 &lt;br /&gt;
// M.6 HaalAanmeldingsformulier&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    HaalAanmeldingsformulier,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;HaalAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;formulierdata&#039; =&amp;gt; $formulierdata); // JSON veld met alle gegevens voor het aanmeld formulier &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// M.7 GeefFactuurOverzicht&lt;br /&gt;
// (authenticatie op basis van hccLidnummer + JoomlaToken + siteID&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    GeefFactuurOverzicht,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),]&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID, &lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;           =&amp;gt; &#039;GeefFactuurOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;           =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;FactuurOverzicht&#039; =&amp;gt; $FactuurOverzicht); &lt;br /&gt;
//  $FactuurOverzicht =&lt;br /&gt;
//     array(&lt;br /&gt;
//       array(&lt;br /&gt;
//         &#039;FactuurID&#039;     =&amp;gt; &#039;a5b93460-4536-ea11-a813-000d3a2c53fa&#039;,&lt;br /&gt;
//         &#039;FactuurNummer&#039; =&amp;gt; &#039;200118673J5&#039;&lt;br /&gt;
//         &#039;FactuurDatum&#039;  =&amp;gt; &#039;2020-01-15&#039;&lt;br /&gt;
//         &#039;bedrag&#039;        =&amp;gt; 42.37&lt;br /&gt;
//         &#039;BetaalStatus&#039;  =&amp;gt; 0]));&lt;br /&gt;
//     )&lt;br /&gt;
&lt;br /&gt;
// M.8 HaalFactuur&lt;br /&gt;
// (authenticatie op basis van JoomlaToken of FactuurToken)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    HaalFactuur,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;FactuurToken&#039;  =&amp;gt; $FactuurToken,]&lt;br /&gt;
      &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalFactuur&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;factuur&#039; =&amp;gt; $factuurgegevens); &lt;br /&gt;
//  $factuurgegevens =&lt;br /&gt;
//    array(&lt;br /&gt;
//         &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
//         &#039;FactuurDatum&#039;  =&amp;gt; $FactuurDatum,&lt;br /&gt;
//         &#039;FactuurID&#039;     =&amp;gt; $FactuurID,&lt;br /&gt;
//         &#039;Bestandsnaam&#039;  =&amp;gt; $Bestandsnaam,&lt;br /&gt;
//         &#039;PDF&#039;           =&amp;gt; $PDF) // base64 encoded PDF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Echo test ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// t.b.v. controle of de verbinding met de XML-RPC server functioneert&lt;br /&gt;
// Eenvoudige echo test&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;echo&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;What&#039;     =&amp;gt; $string,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;echo&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; $string);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HenZ XML-RPC interface ===&lt;br /&gt;
&lt;br /&gt;
Overzicht van XML-RPC procedures die bij HenZ draaien&lt;br /&gt;
(worden via de Hobbynet XML-RPC server afgehandeld)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- Action=2&lt;br /&gt;
  wijzig gebruikersnaam en wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=3&lt;br /&gt;
  controleer of een gebruikersnaam bestaat&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.2)&lt;br /&gt;
&lt;br /&gt;
- Action=4&lt;br /&gt;
  creer een nieuwe gebruiker. Per lidnummer is er 1 account. Als er al een &lt;br /&gt;
  account voor dit lidnummer bestaat wordt het bestaande account hernoemd.&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.1)&lt;br /&gt;
&lt;br /&gt;
- Action=5&lt;br /&gt;
  wijzig wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=7&lt;br /&gt;
  Uitgeschreven lid is weer actief lid geworden&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&lt;br /&gt;
- Action=8&lt;br /&gt;
  Lid heeft een nieuwe hcc-code gekregen&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Release notes ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2012.02.08 Wijzigingen versie 5:&lt;br /&gt;
 - 4.1 verwijder_hcc_Lidnummer i.p.v. hcc_Lidnummer&lt;br /&gt;
 - 4.1 optionele extra parameter verwijder_hccLogin&lt;br /&gt;
 - Optionele parameters aangegeven&lt;br /&gt;
 - Vanwege de duidelijkheid de beheerLogin en beheerPassword velden&lt;br /&gt;
   bovenin de betreffende aanroepen gezet&lt;br /&gt;
   (De volgorde van de parameters is niet relevant, dus dit is geen&lt;br /&gt;
    interface-aanpassing)&lt;br /&gt;
2012.02.16 Wijzigingen versie 6:&lt;br /&gt;
 - 2.1/2.2/2.3 geef ook cn en sn terug na aanpassen van het wachtwoord&lt;br /&gt;
 - 3.1 geef cn en sn terug na aanmaken nieuwe gebruiker&lt;br /&gt;
2012.02.27 Wijzigingen versie 7:&lt;br /&gt;
 - Neem de XML-RPC interface van HenZ in deze XML-RPC server op&lt;br /&gt;
   8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gegevens tevens in LDAP op&lt;br /&gt;
 - 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.2 wijzig wachtwoord, optie 2&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * gebruikersnaam kan niet meer via deze interface aangepast worden&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.3 wijzig wachtwoord, optie 3&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
2012.03.26 Wijzigingen versie 8:&lt;br /&gt;
  - Breidt de XML-RPC interface van HenZ in deze XML-RPC server uit met&lt;br /&gt;
    8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
2012.04.09 Wijzigingen versie 9:&lt;br /&gt;
 - Vervang alle &#039;ldap&#039; aanroepen door &#039;HCCldap&#039; aanroepen&lt;br /&gt;
 - documentatie van HenZ call action=2 aangepast, action=5 toegevoegd&lt;br /&gt;
2012.05.03 Wijzigingen versie 10:&lt;br /&gt;
 - 1.1 / 1.2 / 1.3 geven nu ook &#039;ProfielBekend&#039; terug om uniek te bepalen&lt;br /&gt;
   of deze bezoeker een first-time-login pagina te zien dient te krijgen&lt;br /&gt;
 - documentatie van 2.1 (wijzig wachtwoord) aangepast: &lt;br /&gt;
   2.1 kan alleen als profiel is doorlopen&lt;br /&gt;
 - nieuwe procedure t.b.v. zoekscherm PC30&lt;br /&gt;
   * A.1 ZoekHCCLid &lt;br /&gt;
     - hiervoor is de database met diverse velden uitgebreid&lt;br /&gt;
       (postcode, e-mailadres, huisadres, woonplaats, land, telefoonnummer)&lt;br /&gt;
       Dit heeft impact op diverse andere procedures (t.b.s.)&lt;br /&gt;
 - nieuwe procedure t.b.v. &#039;gewone&#039; profielpagina&lt;br /&gt;
   * B.1 GeefDBFPersoonID&lt;br /&gt;
 - nieuwe procedure t.b.v. cron-job&lt;br /&gt;
   * C.1 GeefOpgezegdeLeden&lt;br /&gt;
2012.05.10 Wijzigingen versie 11&lt;br /&gt;
 - 1.3 GebruikerBestaatControle&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
   * nieuw veld in antwoord: hccPseudoniem&lt;br /&gt;
 - 2.3 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 2.4 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * nieuwe parameter: nieuw_hccPseudoniem&lt;br /&gt;
   * alle parameters zijn verplicht (niet langer optioneel)&lt;br /&gt;
   * nieuw antwoord: Gegevenscombinatie onjuist&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * Nieuwe procedure t.b.v. 1e keer doorlopen profielpagina&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * &#039;Zoeklimiet bereikt&#039; wordt als ExtraInfo meegegeven&lt;br /&gt;
   * nieuwe velden in antwoord: hccPseudoniem en hccLogin&lt;br /&gt;
 - B.1 GeefDBFPersoonID&lt;br /&gt;
   * Zoeken kan nu ook op hccLogin en op hccPseudoniem&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden&lt;br /&gt;
   * Geef nu ook hccLogin en hccPseudoniem terug&lt;br /&gt;
2012.05.14 Wijzigingen versie 12&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook DBFPersoonID terug&lt;br /&gt;
 - 4.1 Gooi een gebruiker weg.&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 5.1 Wijzig hccIG&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 6.1 Wijzig hccRegio&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 7.1 Wijzig hccRol&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
2012.05.20 Wijzigingen versie 13&lt;br /&gt;
 - A.1 ZoekHCCLid &lt;br /&gt;
   * Geef resultaten gestructureerder formaat&lt;br /&gt;
   * Geef in ExtraInfo weer hoeveel echte resultaten er gevonden zijn&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef resultaten in gestructureerder formaat&lt;br /&gt;
2012.06.03 Wijzigingen versie 14&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * Geef ook DBFPersoonID mee&lt;br /&gt;
2012.08.17 Wijzigingen versie 15&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef ook hccLogin in het antwoord terug&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.09.29 Wijzigingen versie 16&lt;br /&gt;
 - Alle cron gerelateerde opdrachten verwijderd&lt;br /&gt;
   * 3.1 NieuweGebruiker&lt;br /&gt;
   * 4.1 GooiGebruikerWeg&lt;br /&gt;
   * 5.1 WijzigHccIG&lt;br /&gt;
   * 6.1 WijzigHccRegio&lt;br /&gt;
   * 7.1 WijzigHccRol&lt;br /&gt;
2012.10.28 Wijzigingen versie 17&lt;br /&gt;
 - nieuwe procedure t.b.v. PC30 beheerpagina&lt;br /&gt;
   * A.2 HaalPC30Token&lt;br /&gt;
 - nieuwe procedure t.b.v. Drupal profielpagina&lt;br /&gt;
   * 2.4 vervallen &lt;br /&gt;
     (WijzigGebruikersGegevens op basis van pseudoniem)&lt;br /&gt;
   * 2.5 WijzigGebruikersGegevens&lt;br /&gt;
     Nieuwe keuze: wijzig pseudoniem&lt;br /&gt;
2012.11.14 Wijzigingen versie 18&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook mail in het antwoord terug&lt;br /&gt;
2012.11.30 Wijzigingen versie 19&lt;br /&gt;
 - E.1 HCCkader/WijzigGebruikersGegevens&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.1 / F.2 / F.3 ControleerKaderlid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.12.18 Wijzigingen versie 20&lt;br /&gt;
 - Haal DBFPersoonID weg uit alle aanroepen en alle resultaten&lt;br /&gt;
   * Antwoord van 1.x GebruikerBestaatControle&lt;br /&gt;
   * B.1 GeefDBFPersoonID opgeheven&lt;br /&gt;
 - A.1 ZoekHCCLid geeft nu ook hccMobiel terug (t.b.v. PC30 zoekpagina)&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden verder uitgewerkt:&lt;br /&gt;
   * Geeft alleen de door Drupal gebruikte velden &#039;hccLogin&#039; en &#039;hccEindDatum&#039;&lt;br /&gt;
     terug in het antwoord&lt;br /&gt;
   * Geeft nu &#039;echte&#039; antwoorden i.p.v. dummy resultaten&lt;br /&gt;
 - F.1 ControleerKaderlid geeft nu ook optioneel &#039;sn&#039; en &#039;givenName&#039; &lt;br /&gt;
     terug (in de beheer-variant)&lt;br /&gt;
2013.01.25 Wijzigingen versie 21&lt;br /&gt;
 - A.1 ZoekHCCLid uitgebreid&lt;br /&gt;
   * Geeft nu ook hccBeginDatum, hccEindDatum en hccRol terug&lt;br /&gt;
2013.02.02 Wijzigingen versie 22&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * Interface aangepast&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2013.03.01 Wijzigingen versie 23&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Geeft andere resultaten terug&lt;br /&gt;
 - 2.2 WijzigWachtwoord&lt;br /&gt;
   * Geeft nu ook hccLogin terug (voor ww-vergeten op de Drupal site)&lt;br /&gt;
 - HCCenquete implementatie&lt;br /&gt;
   * G.1 Expandeer NL postcode&lt;br /&gt;
   * G.2 Haal lidgegevens op&lt;br /&gt;
   * G.3 Pas lidgegevens aan&lt;br /&gt;
2013.03.18 Wijzigingen versie 24&lt;br /&gt;
 - ZoekGroeperingsLid op basis van token&lt;br /&gt;
 - A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - A.5 VraagLidgegevensTokenAan&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2013.04.07 Wijzigingen versie 25&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   Simpeler interface ontwikkeld (&#039;HCCpartners&#039; i.p.v. &#039;HCCpartner&#039;)&lt;br /&gt;
 - G.3 mag ook Tussenvoegsels aanpassen&lt;br /&gt;
2013.04.25 Wijzigingen versie 26&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   Nieuwe interface voor validatie vanaf groeperings websites&lt;br /&gt;
2013.05.03 Wijzigingen versie 27&lt;br /&gt;
 - 2.6 HaalOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.8 HaalOptInLijst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - HCCpartners aanroep nieuwe interface (&#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;)&lt;br /&gt;
2013.07.05 Wijzigingen versie 28&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * extra parameters (mail, hccPseudoniem) in het antwoord&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
2013.08.31 Wijzigingen versie 29&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / ControleerKaderlid&lt;br /&gt;
   * extra output parameter (hccKaderMail)&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccForumLogin)&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   * komma-gescheiden lijst met groeperingen mogelijk&lt;br /&gt;
   * extra output parameter (mailHccnet)&lt;br /&gt;
2013.12.26 Wijzigingen versie 30&lt;br /&gt;
 - 3.1 Geef mijn lidnummer&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * geef nu ook &#039;ProfielBekend&#039; terug om aan de PC30 omgeving door te geven&lt;br /&gt;
     dat het wachtwoord niet veranderd mag worden door PC30&lt;br /&gt;
 - A.6 GeefBezoekersOverzicht&lt;br /&gt;
   * geef nu ook &#039;Locatie&#039; terug indien van toepassing&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * parameters aangepast&lt;br /&gt;
   * authenticatie op basis van hccLogin + userPassword of lidnummer + hcc-code&lt;br /&gt;
   * geen algemene hcc-forum authenticatie meer mogelijk&lt;br /&gt;
 - F.7 ControleerKaderlidGroep&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2014.02.01 Wijzigingen versie 31&lt;br /&gt;
 - A.8 RegistreerGast&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - nieuwe interface (losse, unieke aanroepen, niet meer gegroepeerd)&lt;br /&gt;
2014.09.27 Wijzigingen versie 32&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden hernoemd naar GeefUitgeschrevenLeden&lt;br /&gt;
 - I.3 GeefhccEindDatum&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - Action=7 en Action=8 toegevoegd aan de HenZ interface&lt;br /&gt;
2014.12.12 Wijzigingen versie 33&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / IsKaderLid&lt;br /&gt;
   * extra output parameter (mail, mailHccnet, hccKaderForward)&lt;br /&gt;
 - F.8 HCC-kader / ZetKaderForward&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.05.06 Wijzigingen versie 34&lt;br /&gt;
 - GeefMijnGegevens&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - ValideerPCActiveAbonnee&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 1.4 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccKaderForward)&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * optionele extra output parameter (ExtraInfo)&lt;br /&gt;
2015.09.27 Wijzigingen versie 35&lt;br /&gt;
 - HeeftForumCredentials&lt;br /&gt;
   * vervallen&lt;br /&gt;
2015.11.20 Wijzigingen versie 36&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.12.13 Wijzigingen versie 37&lt;br /&gt;
 - serverID als optionele parameter&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * Maak velden optioneel&lt;br /&gt;
2016.01.05 Wijzigingen versie 38&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
2016.01.15 Wijzigingen versie 39&lt;br /&gt;
 - H.3 GeefMijnGegevens&lt;br /&gt;
   * geeft nu ook hccOptIn terug&lt;br /&gt;
   * geeft nu ook JoomlaToken terug&lt;br /&gt;
 - H.4 PasOptInKeuzeAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - SiteID en RemoteID als optionele parameter&lt;br /&gt;
2016.03.17 Wijzigingen versie 40&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.03.20 Wijzigingen versie 41&lt;br /&gt;
 - ServerID, SiteID en RemoteID als optionele parameters bij alle aanroepen&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - A.9 GeefLocatieNamen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.6 WijzigHccRol&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - F.7 IsGroeperingsKaderlid&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.5 WijzigGebruikersGegevens (hccPseudoniem)&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * vervallen&lt;br /&gt;
2016.04.02 Wijzigingen versie 42&lt;br /&gt;
 - H.6 GeefMijnKaderDetails&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.07.03 Wijzigingen versie 43&lt;br /&gt;
 - Ubuntu 16.04 aanpassingen (PHP versie 7) beschreven&lt;br /&gt;
2016.09.01 Wijzigingen versie 44&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * extra parameter &#039;hccMobiel&#039;&lt;br /&gt;
2016.10.13 Wijzigingen versie 45&lt;br /&gt;
 - H.3 GeefMijnGegevens (dedecated Joomla aanroep)&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
   * Als het om een webmaster gaat, vul dan eventueel hccRegio of hccIG aan &lt;br /&gt;
     met die groepering, ook als hij geen lid is van die groepering&lt;br /&gt;
 - I.4 GebruikerBestaatControle&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
2016.12.01 Wijzigingen versie 46&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar teruggezet&lt;br /&gt;
2017.05.28 Wijzigingen versie 47&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens (t.b.v. eenmalige kadermailing)&lt;br /&gt;
 - H.8 ZetMinimaleKaderGegevens  (t.b.v. eenmalige kadermailing)&lt;br /&gt;
2017.09.01 Wijzigingen versie 48&lt;br /&gt;
 - A.10 SchrijfNietlidInOpBulletin nu alleen voor 1 bulletin tegelijk&lt;br /&gt;
 - 2.2 WijzigGebruikersGegevens (op basis van gebruikersnaam en wachtwoord)&lt;br /&gt;
       is vervallen (was een oude Drupal aanroep)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens geeft ook hccKaderToonMobiel terug&lt;br /&gt;
2017.11.14 Wijzigingen versie 49&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft geen hccKaderToonMobiel meer terug&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft alleen hccMobiel als hccKaderToonMobiel dat toestaat&lt;br /&gt;
2018.02.18 Wijzigingen versie 50&lt;br /&gt;
 - H.6 GeefMijnKaderDetails geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.9 PasKaderGegevensAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft 3 extra parameters terug (hccKaderMail, hccKaderForward,&lt;br /&gt;
   hccKaderToonMobiel)&lt;br /&gt;
 - JoomlaTokens worden gevalideerd op siteID, niet langer op serverID&lt;br /&gt;
 - diverse aanroepen kunnen nu ook via de bezoekersregistratie-proxy aangeroepen worden. &lt;br /&gt;
   Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
   (GeefAlleGroeperingen, GeefAlleKaderRollen, GeefLocaties, GeefLocatieNamen)&lt;br /&gt;
   De bezoekersregistratie aanroepen hebben enkel JoomlaToken als extra parameter nodig:&lt;br /&gt;
   (LidBezoektBijeenkomst, GeefBezoekersOverzicht)&lt;br /&gt;
2018.02.26 Wijzigingen versie 51&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft extra parameter hccMobiel terug &lt;br /&gt;
 - H.9 PasKaderGegevensAan kan nu ook kadermail password aanpassen&lt;br /&gt;
 - K.1 ValideerToken&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - K.2 ValideerHCCCode&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2018.03.17 Wijzigingen versie 52&lt;br /&gt;
 - H.3 Haal al mijn gegevens&lt;br /&gt;
   Extra optie &#039;compact&#039; om alleen essentiele resultaten te verkrijgen&lt;br /&gt;
   (t.b.v. de Android bezoekersregistratie applicatie)&lt;br /&gt;
2018.03.25 Wijzigingen versie 53&lt;br /&gt;
 - I.2 IsHCCLid&lt;br /&gt;
   (Oude aanroep teruggezet, wordt nog in vraagbaak module gebruikt)&lt;br /&gt;
2018.07.01 Wijzigingen versie 54&lt;br /&gt;
   * A.1 beheer authenticatie op basis van lidnummer + hccCode (tbv VZ-portal)&lt;br /&gt;
   * A.2 HaalPC30Token weggehaald&lt;br /&gt;
2018.08.22 Wijzigingen versie 55&lt;br /&gt;
  * 1.2 GebruikerBestaatControle&#039; (op basis van hccLogin en userPassword) weggehaald&lt;br /&gt;
  * 1.4 GebruikerBestaatControle&#039; (op basis van zoekHccLogin of zoekHccLidnr) weggehaald&lt;br /&gt;
  * 2.8 HaalOptInLijst weggehaald&lt;br /&gt;
  * E.1 PasKaderWachtwoordAan weggehaald&lt;br /&gt;
  * F.1 IsKaderLid (op basis van hccLidnr en hccCode) weggehaald&lt;br /&gt;
  * F.3 IsKaderLid (op basis van beheerdernaam en beheerderwachtwoord) was al weg&lt;br /&gt;
  * F.8 ZetKaderForward weggehaald&lt;br /&gt;
  * H.1 IsGroeperingsLid weggehaald&lt;br /&gt;
  * H.6 GeefMijnKaderDetails weggehaald&lt;br /&gt;
  * H.7 GeefMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * H.8 ZetMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * K.1 ValideerHCCCode weggehaald&lt;br /&gt;
  * K.2 ValideerToken weggehaald&lt;br /&gt;
  * H.3 GeefMijnGegevens geeft omvang kader mailbox mee terug&lt;br /&gt;
2018.11.06 Wijzigingen versie 56&lt;br /&gt;
  Nieuwe aanroepen t.b.v. forum en vraagbaak autorisaties&lt;br /&gt;
  * L.1 MaakOnderwerp&lt;br /&gt;
  * L.2 VerwijderOnderwerp&lt;br /&gt;
  * L.3 GeefOnderwerpen&lt;br /&gt;
  * L.4 MuteerOnderwerp&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
  * L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
  * H.5 ZoekKaderLeden heeft compact optie&lt;br /&gt;
2018.11.16 Wijzigingen versie 57&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie kent nu ook RED(acteur)&lt;br /&gt;
2018.12.17 Wijzigingen versie 58&lt;br /&gt;
  * A.11 GeefBezoekersAantallen (nieuwe aanroep)&lt;br /&gt;
  * H.10 PasUserWachtwoordAan (nieuwe aanroep)&lt;br /&gt;
2019.02.21 Wijzigingen versie 59&lt;br /&gt;
  * A. 6 GeefBezoekersOverzicht geeft enkel lijst van bezoekers laatste bijeenkomst&lt;br /&gt;
2019.10.26 Wijzigingen versie 60&lt;br /&gt;
  * A.4 Schrijf bezoekers niet meer automatisch in op bulletins&lt;br /&gt;
  * H.4  PasOptInKeuzeAan kan ook door LA aangeroepen worden&lt;br /&gt;
  Nieuwe aanroepen t.b.v. eigen implementatie van mijn.hcc.nl in de Joomla modules&lt;br /&gt;
  * H.11 PasPseudoniemAan&lt;br /&gt;
  * H.12 ValideerWachtwoordEisen&lt;br /&gt;
  * H.13 PasWachtwoordAan (1: op JoomlaToken, 2: op PWResetToken)&lt;br /&gt;
  * H.14 MaakPWResetToken&lt;br /&gt;
  * H.15 ValideerPWResetToken&lt;br /&gt;
  * H.16 RuimJoomlaTokenOp&lt;br /&gt;
  * A.12 GeefAlleBulletins&lt;br /&gt;
  * A.13 ExpandeerPostcode&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.18 NormaliseerTelefoon&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  * A.21 HaalIGBedragenOp&lt;br /&gt;
  * A.22 HaalTariefGroepenOp&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
  * A.24 GeefSSOUrls&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  8.1 MaakGebruikerAan&lt;br /&gt;
  F.5 GeefAlleKaderRollen&lt;br /&gt;
2020.01.04 Wijzigingen versie 61&lt;br /&gt;
  Nieuwe aanroepen t.b.v. IDEAL betaling hobbynet abonnees&lt;br /&gt;
  H.17 GeefAantalDomeinen&lt;br /&gt;
2020.01.06 Wijzigingen versie 62&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Cayentis (CRM webproxy) implementatie&lt;br /&gt;
  * M.1  Upload_CSV_bestand&lt;br /&gt;
  * M.2  SchrijfNieuwLidIn&lt;br /&gt;
  * M.3  Verwerk_JSON_mutatie&lt;br /&gt;
  * M.4  ISO_landcode&lt;br /&gt;
  * M.5  MuteerAanmeldingsformulier&lt;br /&gt;
  * M.6  HaalAanmeldingsformulier&lt;br /&gt;
  * M.7  GeefFactuurOverzicht&lt;br /&gt;
  * M.8  HaalFactuur&lt;br /&gt;
  * A.25 UpdateNAW&lt;br /&gt;
  Vervallen aanroepen&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  Aangepaste aanroepen&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
2020.03.27 Wijzigingen versie 63&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.18 ResetHCCCode&lt;br /&gt;
  * H.19 PasHccLoginAan&lt;br /&gt;
2020.04.10 Wijzigingen versie 64&lt;br /&gt;
  Nieuwe aanroepen &lt;br /&gt;
  * A.26 VerwijderNietLid&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  * A.1  ZoekHCCLid: nieuwe zoekoptie &#039;niet_leden&#039;&lt;br /&gt;
  Opnieuw geimplementeerd&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
2020.11.26 Wijzigingen versie 65&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.20 MaakTestLogin&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.3 GeefMijnGegevens: optionele parameter &#039;hccGroepering&#039;&lt;br /&gt;
  Het werken met een testaccount heeft impact op de volgende aanroepen:&lt;br /&gt;
  - G.7  GeefFactuurOverzicht&lt;br /&gt;
  - M.8  HaalFactuur&lt;br /&gt;
  - L.1  MaakOnderwerp&lt;br /&gt;
  - H.14 MaakPWResetToken&lt;br /&gt;
  - F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
  - L.4  MuteerOnderwerp&lt;br /&gt;
  - L.5  MuteerOnderwerpAutorisatie&lt;br /&gt;
  - H.19 PasHccLoginAan&lt;br /&gt;
  - A.23 PasInteressegroepAan&lt;br /&gt;
  - H.9  PasKaderGegevensAan&lt;br /&gt;
  - H.4  PasOptInKeuzeAan&lt;br /&gt;
  - H.11 PasPseudoniemAan&lt;br /&gt;
  - H.13 PasWachtwoordAan&lt;br /&gt;
  - H.18 ResetHCCCode&lt;br /&gt;
  - A.20 UpdateMobiel&lt;br /&gt;
  - A.25 UpdateNAW&lt;br /&gt;
  - L.2  VerwijderOnderwerp&lt;br /&gt;
  - A.5  VraagLidgegevensTokenAan&lt;br /&gt;
  - 2.1  WijzigGebruikersGegevens&lt;br /&gt;
  - H.3 GeefMijnGegevens geeft extra parameter terug (testaccount)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Aanpassingen aan de Apache omgeving =&lt;br /&gt;
&lt;br /&gt;
== php.ini aanpassingen ==&lt;br /&gt;
De XML-RPC server zal &#039;ergens&#039; een bestand moeten kunnen vinden met de&lt;br /&gt;
gebruikersnamen t.b.v. het authenticeren bij de LDAP-server.&lt;br /&gt;
&lt;br /&gt;
Dit bestand wordt geplaatst in de map &#039;/usr/local/hobbynet/etc&#039;. Om dit&lt;br /&gt;
vanuit Apache te mogen benaderen, dient een aanpassing aan php.ini&lt;br /&gt;
gemaakt te worden:&lt;br /&gt;
&lt;br /&gt;
 /etc/php5/apache2/php.ini&lt;br /&gt;
 &lt;br /&gt;
 include_path = &amp;quot;.:/usr/share/php:/usr/share/pear:/usr/local/hobbynet/etc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Apache modules ==&lt;br /&gt;
Nieuwe server geschikt maken voor XML-RPC gebruik&lt;br /&gt;
&lt;br /&gt;
=== Apache modules (PHP 7) ===&lt;br /&gt;
Ubuntu 16.04 wordt standaard met PHP versie 7.0 uitgeleverd.&lt;br /&gt;
De opdrachten om de modules op te halen zijn:&lt;br /&gt;
 apt-get install php-xmlrpc&lt;br /&gt;
 apt-get install apache2&lt;br /&gt;
 apt-get install ldap-utils&lt;br /&gt;
 apt-get install php-ldap&lt;br /&gt;
 apt-get install libapache2-mod-php&lt;br /&gt;
&lt;br /&gt;
== Loadbalancer akties niet naar de logbestanden schrijven ==&lt;br /&gt;
De loadbalancer haalt zeer frequent een testbestand op (/test.txt), om&lt;br /&gt;
te controleren of de xml-server operationeel is. Dat levert extreem veel&lt;br /&gt;
logging op in /var/log/apache2/other_vhosts.log.&lt;br /&gt;
&lt;br /&gt;
Pas de apache configuratie zo aan, dat logging van alle opvragingen&lt;br /&gt;
vanaf de loadbalancers uitgezet wordt.&lt;br /&gt;
 /etc/apache2/sites-enabled/xml-server&lt;br /&gt;
 &lt;br /&gt;
 # Mark requests from loadbalancers&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;212\.72\.227\.93&amp;quot;          dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;212\.72\.227\.94&amp;quot;          dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;172\.31\.1\.249&amp;quot;           dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;172\.31\.1\.250&amp;quot;           dontlog&lt;br /&gt;
 CustomLog ${APACHE_LOG_DIR}/access.log common env=!dontlog&lt;br /&gt;
&lt;br /&gt;
= Firewall algemeen =&lt;br /&gt;
In de file /etc/hobby-firewall/hobby-firewall.local wordt het script&lt;br /&gt;
&#039;/usr/local/hobbynet/bin/gen_fw.sh&#039; aangeroepen.&lt;br /&gt;
Deze haalt de IP adressen op uit ldap. &lt;br /&gt;
(.local omdat we dit ook zo doen op de webservers).&lt;br /&gt;
&lt;br /&gt;
De firewall wordt 4 x per dag herstart en /etc/hobby-firewall wordt&lt;br /&gt;
gesynchroniseerd (1-richting van lb1 naar lb2) met de volgende crontab&lt;br /&gt;
entries:&lt;br /&gt;
&lt;br /&gt;
Op lb1:&lt;br /&gt;
  0  0 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55  5 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0  6 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 11 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0 12 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 17 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0 18 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 23 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
Op lb2:&lt;br /&gt;
 15  6 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15 12 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15 18 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15  0 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null &lt;br /&gt;
&lt;br /&gt;
Het encrypted backup script is verplaatst naar &#039;/usr/local/hobbynet/local&#039; en hernoemd naar &#039;backup-encrypted.bash&#039;.&lt;br /&gt;
Dit is omdat deze niet mee mag worden gesynchroniseerd.&lt;br /&gt;
&lt;br /&gt;
Tevens wordt 1x per dag /usr/local/hobbynet/bin gesynchroniseerd (1-richting van hcc-ldap-lb1 naar hcc-ldap-lb2)&lt;br /&gt;
&lt;br /&gt;
== Aanpassingen in de firewall ==&lt;br /&gt;
Op de server waar de XML-RPC server staat, moeten enkele firewall aanpassingen gemaakt worden.&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf het interne netwerk (www-prod, www-test), en vanaf eventuele andere plekken die we expliciet toe willen staan.&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf mijn.hcc.nl (XML-RPC aanroepen vanaf de portal)&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf service.hccnet.nl toe (XML-RPC aanroep GeefUitgeschrevenLeden vanuit HenZ)&lt;br /&gt;
* uitgaand: sta TCP 443 naar service.hccnet.nl toe (XML-RPC aanroepen naar HenZ)&lt;br /&gt;
* uitgaand: sta TCP 990 en 5000-6000 naar Apps.HCC.local (FTPS verkeer naar de HCC server bij Hobbynet)&lt;br /&gt;
&lt;br /&gt;
== Aanpassingen aan AppArmor ==&lt;br /&gt;
Alhoewel technisch gezien dit bij slapd behoort, neem ik het toch hier op.&lt;br /&gt;
&lt;br /&gt;
Als het Hobbynet certificaat in de map /disk/site/etc/ssl/hobby.nl/ wordt neergezet, dan zal apparrmor de toegang tot de certificaten blokkeren. Neem daarom in de &#039;&#039;&#039;local&#039;&#039;&#039; directory van apparmor het volgende op:&lt;br /&gt;
 # /etc/apparmor.d/local/usr.sbin.slapd&lt;br /&gt;
 # Site-specific additions and overrides for usr.sbin.slapd.&lt;br /&gt;
 # For more details, please see /etc/apparmor.d/local/README.&lt;br /&gt;
 #include &amp;lt;abstractions/ssl_certs&amp;gt;&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/ r,&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/* r,&lt;br /&gt;
&lt;br /&gt;
= CRM (Azure) proxy herstarten =&lt;br /&gt;
Als er indicaties zijn dat niet alle JSON berichten meer vanuit het CRM aangeboden worden aan de xml-rpc server, dan kan het helpen om de CRM proxy te herstarten&lt;br /&gt;
&lt;br /&gt;
* Ga naar https://portal.azure.com/&lt;br /&gt;
* Login met zelfde account als voor het CRM&lt;br /&gt;
* Soms krijg je een popup. Die kan je weg klikken, je wilt geen rondleiding&lt;br /&gt;
* Klik op &#039;&#039;&#039;hccdyn01-aps-crm01&#039;&#039;&#039; voor productie en &#039;&#039;&#039;hccdyn01-aps-dev01&#039;&#039;&#039; voor test&lt;br /&gt;
* En dan kan je op opnieuw starten klikken.&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Loadbalancers&amp;diff=79197</id>
		<title>Loadbalancers</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Loadbalancers&amp;diff=79197"/>
		<updated>2020-12-29T13:49:31Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=doel=&lt;br /&gt;
De loadbalancer zorgt er voor dat onze webdiensten redundant uitgevoerd worden.&lt;br /&gt;
= OPGELET = &lt;br /&gt;
&#039;&#039;&#039; heel belangrijk &#039;&#039;&#039; de loadbalancer mag je nooit migreren als ze aan staan, hierdoor krijg je een &#039;split brain&#039; situatie&lt;br /&gt;
&lt;br /&gt;
Dit is dan ook geblokkeerd in vmware zoals omschreven hier https://frankdenneman.nl/2014/08/18/disable-vmotion-single-vm/  met 1 aanpassing query mag wel en vmotion als uit staat mag wel&lt;br /&gt;
&lt;br /&gt;
=opzet=&lt;br /&gt;
We hebben 2 virtuele loadbalancers: loadbalancer1 en loadbalancer2. Elk draait op een andere hypervisor te weten vmware4 en vmware5&lt;br /&gt;
&lt;br /&gt;
== normale situatie ==&lt;br /&gt;
Dit geeft weer hoe in normale situaties het verkeer loopt.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:normaal.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:normaal.dia]]&lt;br /&gt;
&lt;br /&gt;
== webserver faalt ==&lt;br /&gt;
Dit geeft weer hoe het verkeer loopt wanneer een webserver faalt.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:webserverfaalt.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:webserverfaalt.dia]]&lt;br /&gt;
&lt;br /&gt;
== loadbalancer faalt ==&lt;br /&gt;
Dit geeft weer hoe het verkeer loopt wanneer een loadbalancer faalt.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:lbfaalt.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:lbfaalt.dia]]&lt;br /&gt;
&lt;br /&gt;
=IP plan=&lt;br /&gt;
== 212.72.224 IP reeks (eth1)==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
212.72.224.240 2a02:968:1:2:212:72:224:240  loadbalancer1-vlan100.hobby.nl     (IP adressen voor loadbalancer zelf)&lt;br /&gt;
212.72.224.241 2a02:968:1:2:212:72:224:241  loadbalancer2-vlan100.hobby.nl     (IP adressen voor loadbalancer zelf)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 212.72.227 IP reeks (eth3)====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
212.72.227.88 en 2a02:968:1:7:212:72:227:88  loadbalancer1-vlan107.hobby.nl     (IP adressen voor loadbalancer zelf)&lt;br /&gt;
212.72.227.89 en 2a02:968:1:7:212:72:227:89  loadbalancer2-vlan107.hobby.nl     (IP adressen voor loadbalancer zelf)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 212.72.229 IP reeks (eth2)====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
212.72.229.240 2a02:968:1:1:212:72:229:240  loadbalancer1-vlan102.hobby.nl     (IP adressen voor loadbalancer zelf)&lt;br /&gt;
212.72.229.241 2a02:968:1:1:212:72:229:241  loadbalancer2-vlan102.hobby.nl     (IP adressen voor loadbalancer zelf)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 172.31.1 IP reeks (eth0) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
172.31.1.240 2a02:968:ffff:999:172:31:1:240  loadbalancer1-vlan999.hobby.nl     (IP adressen voor loadbalancer zelf)&lt;br /&gt;
172.31.1.241 2a02:968:ffff:999:172:31:1:241  loadbalancer2-vlan999.hobby.nl     (IP adressen voor loadbalancer zelf)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== 172.31.254 IP reeks (eth5) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
172.31.254.240 2a02:968:ffff:997:172:31:254:240  loadbalancer1-vlan997.hobby.nl     (IP adressen voor loadbalancer zelf)&lt;br /&gt;
172.31.254.241 2a02:968:ffff:997:172:31:254:241  loadbalancer2-vlan997.hobby.nl     (IP adressen voor loadbalancer zelf)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===== dns aliassen =====&lt;br /&gt;
Via interne netwerk zijn de dns aliassen aangemaakt loadbalancer1-int.hobby.nl en loadbalancer2-int.hobby.nl op die manier konden gebruik blijven maken van hobbynet wildcard certificaat.&lt;br /&gt;
&lt;br /&gt;
=configuratie=&lt;br /&gt;
== termen ==&lt;br /&gt;
* Virtual service : De dienst die geloadbalanced wordt (dit kan layer 4 of layer 7 zijn)&lt;br /&gt;
&lt;br /&gt;
Configuratie gebeurt altijd via de webinterface. Enkel bij hele uitzonderlijke gevallen moet je wat via SSH doen.&lt;br /&gt;
&lt;br /&gt;
De loadbalancers zijn te bereiken via: &lt;br /&gt;
* https://loadbalancer1-int.hobby.nl:9443/&lt;br /&gt;
* https://loadbalancer2-int.hobby.nl:9443/&lt;br /&gt;
&lt;br /&gt;
== ssh toegang ==&lt;br /&gt;
SSH keys kunnen toegevoegd worden, dit vereist echter strak formaat namelijk &lt;br /&gt;
   ssh-rsa &amp;lt;snip&amp;gt; je key &amp;lt;/snip&amp;gt; bas@een.domein.nl&lt;br /&gt;
Het is heel belangrijk dat je key in dit formaat is, ook ben je verplicht een hostnaam in te geven, gebruik daarvoor gewoon je naam dit moet namelijk uniek zijn.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Key&#039;s mogen niet met de hand worden toegevoegd via SSH !&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Je kan in de loadbalancer onder Local Configuration -&amp;gt; SSH Keys en dan het tab SSH Authentication&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Configuratie van dit onderdeel moet je op beide loadbalancers doen want dit wordt niet gerepliceerd!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Direct routing =&lt;br /&gt;
Op dit moment maken we nog gebruik van direct routing, dit wil zeggen dat de loadbalancer het inkomend verkeer door stuurt naar de server en de server stuurt zelf het antwoord door naar de client. &lt;br /&gt;
&lt;br /&gt;
== standaard setup ==&lt;br /&gt;
Standaard gebruiken wij een setup waarbij altijd de load over meerdere servers verspreid wordt&lt;br /&gt;
&lt;br /&gt;
=== instellen van Virtual service layer 4 ===&lt;br /&gt;
&lt;br /&gt;
==== van scratch ====&lt;br /&gt;
Ga naar cluster configuration -&amp;gt; layer 4 - virtual services en klik daar op &#039;Add a new Virtual Service&#039;&lt;br /&gt;
&lt;br /&gt;
* 1) Vul hier de naam van virtual service in. Standaard is dat VIP(nr) naam.url.nl-v4 (of v6 bij IPv6) (&#039;&#039;&#039;let op: geen spatie tussen vip en het nummer van de vip&#039;&#039;&#039;)&lt;br /&gt;
* 2) Het IP-adres wat aan de buitenkant wordt gebruikt&lt;br /&gt;
* 3) De poort nummers voor web standaard 80,443 je mag meer poort nummers opgeven door te scheiden met een ,&lt;br /&gt;
Klik op update&lt;br /&gt;
&lt;br /&gt;
[[File:Add Virtual service layer 4 stap1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Herhaal de bovenstaande stappen voor het IPv6 adres&lt;br /&gt;
&lt;br /&gt;
Nu moeten we nog bestemming toevoegen : waar moet het verkeer naar toe worden gerouteerd. &lt;br /&gt;
&lt;br /&gt;
Ga naar cluster configuration -&amp;gt; layer 4 - Real Servers&amp;lt;br&amp;gt;&lt;br /&gt;
Zoek daar je Virtual service op en klik op modify &lt;br /&gt;
&lt;br /&gt;
Tip je standaard staat de Virtual service die je net hebt gemaakt onderaan&amp;lt;br&amp;gt;&lt;br /&gt;
Klik op &#039;Add a new Real Server&amp;quot; bij de Virtual service die we net hebben aangemaakt&lt;br /&gt;
&lt;br /&gt;
1) Zet naam van de bestemming neer dit geval Joomla-lb1-v4 (of v6 bij IPv6)&lt;br /&gt;
2) Vul het IP-adres van de bestemming in&lt;br /&gt;
3) Klik op update&lt;br /&gt;
&lt;br /&gt;
[[File:Add a new Real server.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Indien het hier geen fallback scenario betreft herhaal de bovenstaande stap voor de 2e bestemming &lt;br /&gt;
&lt;br /&gt;
Herhaal deze stappen voor IPv6 virtual service&lt;br /&gt;
&lt;br /&gt;
===== fallback scenario =====&lt;br /&gt;
Bij fallback senario wil je dat verkeer standaard op 1e server uitkomt, behalve wanneer deze er niet is. Bijvoorbeeld bij mail en de xml-rpc server, in dit geval voeg je &#039;&#039;&#039;geen&#039;&#039;&#039; 2e realserver toe.&lt;br /&gt;
&lt;br /&gt;
Ga terug naar cluster configuration -&amp;gt; layer 4 - virtual services, zoek je virtual service op en klik op modify&amp;lt;br&amp;gt;&lt;br /&gt;
TIP boven in zit zoek veld &lt;br /&gt;
&lt;br /&gt;
* Zoek de sectie &#039;Fallback Server&#039; op &lt;br /&gt;
* Vul het IP-adres in van de fallback server in, laat de overige velden leeg &lt;br /&gt;
* klik op update&lt;br /&gt;
Herhaal deze stappen voor IPv6 virtual service&lt;br /&gt;
&lt;br /&gt;
[[File:Fallback server.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==== bestaande virtual service kopiëren ====&lt;br /&gt;
Maar dit alles kan ook veel makkelijker, als er alleen vip is die de zelfde bestemming heeft etc etc &lt;br /&gt;
&lt;br /&gt;
Ga terug naar cluster configuration -&amp;gt; layer 4 - virtual services, zoek je virtual service op die je kopiëren en klik op modify &amp;lt;br&amp;gt;&lt;br /&gt;
Zie afbeelding 5 rechts&amp;lt;br&amp;gt;&lt;br /&gt;
Klik op Duplicate service&lt;br /&gt;
&lt;br /&gt;
[[File:Duplicate service.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Negeer de waarschuwing is melding dat toevoeging heeft gedaan zodat er geen dubbele namen zijn &lt;br /&gt;
* 1) Vervang hier de naam van virtual service. Standaard is dat VIP(nr) naam.url.nl-v4 (of v6 bij IPv6) (&#039;&#039;&#039;let op : geen spatie tussen vip en het nummer van de vip&#039;&#039;&#039;)&lt;br /&gt;
* 2) Vervang het IP-adres wat aan de buitenkant wordt gebruikt&lt;br /&gt;
* 3) Controleer de poortnummers voor web standaard 80,443 je mag meer poortnummers opgeven door te scheiden met een ,&amp;lt;br&amp;gt;&lt;br /&gt;
Klik op update&amp;lt;br&amp;gt;&lt;br /&gt;
Herhaal deze stappen voor IPv6 virtual service&lt;br /&gt;
&lt;br /&gt;
[[File:Duplicate service2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
= firewall lock down script =&lt;br /&gt;
Het standaard lockdownscript (de term die in de loadbalancer wordt gebruikt) is aangepast met de volgende de aanpassingen:&lt;br /&gt;
* Onze VPN IP-reeksen toegevoegd als admin reeksen &lt;br /&gt;
* Voor SNMP is aparte chain aangemaakt&lt;br /&gt;
* Al het SNMP verkeer dat niet het IP-adres (eth0) van de loadbalancer is wordt gereject&lt;br /&gt;
Hier vindt je kopie van het huidige lockdown script van 28-09-2020 10:00&lt;br /&gt;
[[File:Lockdownscript.txt]]&lt;br /&gt;
Dit script kan je bewerken via Maintenance -&amp;gt; Firewall Lock Down Wizzard&amp;lt;br&amp;gt;&lt;br /&gt;
Met &#039;Modify the firewall lock down wizard script&#039; pas je het script aan. &amp;lt;br&amp;gt;&lt;br /&gt;
Met &#039;Update Firewall lockdown&#039; wordt het de firewall herladen &amp;lt;br&amp;gt;&lt;br /&gt;
Standaard wordt het IP-adres waarmee je bent ingelogd ingevuld bij &#039;Administration subnet&#039;. Dit is om te zorgen dat je er altijd weer in kan als je een foutje hebt gemaakt. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Configuratie van dit onderdeel moet je op beide loadbalancers doen want dit wordt niet gerepliceerd!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= backup =&lt;br /&gt;
Elke dag backuppen we om 22:00&lt;br /&gt;
&lt;br /&gt;
== ssh_config aanpassing ==&lt;br /&gt;
Omdat de loadbalancer heel veel IP-adressen heeft zou het script ad random een IP-adres uitzoeken en dat gaat natuurlijk fout. Daarom hebben we een source IP-adres gespecificeerd. In /etc/ssh/ssh_config zijn daarom volgende regels toegevoegd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host backup2bit-int.hobby.nl&lt;br /&gt;
        BindAddress=2a02:968:ffff:999:172:31:1:240&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Verder wordt standaard script dat ook logging draait gebruikt voor de backup /usr/local/hobbynet/bin/backup_etc&lt;br /&gt;
&lt;br /&gt;
= handleidingen=&lt;br /&gt;
Deze vind je in de loadbalancer onder support -&amp;gt; Useful Links&lt;br /&gt;
&lt;br /&gt;
= uitzonderingen = &lt;br /&gt;
Voor dbadmin*.hobby.nl en vraagbaak.hcc.nl is er uitzondering daar wordt geen applicatie cookie gebruikt voor Persistence Mode, maar het source IP-adres, de applicatie kan er niet tegen&lt;br /&gt;
&lt;br /&gt;
= LET OP : update instructies =&lt;br /&gt;
 1. schakel master uit &lt;br /&gt;
 2. maak snapshot in vmware van master&lt;br /&gt;
 3. zet master weer aan &lt;br /&gt;
 4. wacht tot master weer helemaal op is&lt;br /&gt;
 5. zet slave uit &lt;br /&gt;
 6. maak snapshot slave&lt;br /&gt;
 7. zet slave weer aan. &lt;br /&gt;
 8. maak via web interface backup van alle bestanden en download die op master&lt;br /&gt;
 9. maak via web interface backup van alle bestanden en download die op slave (zodra slave weer volledig operationeel is)&lt;br /&gt;
 10. maak slave master (login op slave, vouw groene vlak open en klik op take over)&lt;br /&gt;
 11. update master via Maintenance -&amp;gt; software update en kies voor online update&lt;br /&gt;
 12. maak master weer  master (login op slave, vouw groene vlak open en klik op take over) als dat niet al vanzelf is gebeurd&lt;br /&gt;
 11. update slave via Maintenance -&amp;gt; software update en kies voor online update&lt;br /&gt;
 12. Zet reminder in OTRS om snap shots te verwijderen na 4 dagen (dit kan terwijl machines online zijn)&lt;br /&gt;
&lt;br /&gt;
== aandachts punten == &lt;br /&gt;
 1. altijd dienen master en slave direct na elkaar te worden geupdate&lt;br /&gt;
 2. het maken van het snapshot moet gebeuren als de VM uit staat ! dit komt om dat de VM vertraagd wordt tijdens het maken van het snapshot waardoor hij meerdere keren gaat overschakelen naar slave en weer terug.&lt;br /&gt;
 3. Mocht de update mislukken kan met paar klikken terug naar het snapshot wat je voor de update hebt gemaakt.&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Speciale_groepen_in_ldap_en_CRM&amp;diff=79164</id>
		<title>Speciale groepen in ldap en CRM</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Speciale_groepen_in_ldap_en_CRM&amp;diff=79164"/>
		<updated>2020-12-27T11:44:48Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Er zijn speciale groepen in CRM met speciale functie deze hebben standaard 3 of 4 letters hier onder lijst&lt;br /&gt;
&lt;br /&gt;
= SRVB =&lt;br /&gt;
 &lt;br /&gt;
Deze groep wordt gebruik voor het faciliteren van de mailing list van de vraagbaak &amp;lt;br&amp;gt;&lt;br /&gt;
Deze groep heeft 1 lid namelijk Bas (lidnummer 199641) (zonder leden in het CRM werd de groep vanuit het CRM niet geëxporteerd).&amp;lt;br&amp;gt;&lt;br /&gt;
De afspraken over deze groep zoals die met kantoor zijn gemaakt zijn als volgt:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Autorisatie kunnen alleen gedaan worden door Hobbynet&lt;br /&gt;
* &#039;&#039;&#039;niemand&#039;&#039;&#039; wordt lid van deze groepering behalve Bas&lt;br /&gt;
* Er worden &#039;&#039;&#039;geen&#039;&#039;&#039; kaderrollen aan deze groepering gekoppeld&lt;br /&gt;
* Deze groep wordt nergens anders voor gebruikt&lt;br /&gt;
* Deze groep heeft geen functionele e-mail adressen&lt;br /&gt;
* Deze groep wordt niet meegenomen in overzicht op kadernet&lt;br /&gt;
&lt;br /&gt;
= NWF =&lt;br /&gt;
&lt;br /&gt;
NWF wordt gebruikt als export van HCC!nieuwsbrief&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;Sinds medio 2017 worden de NWF inschrijvingen in het CRM bijgehouden. Zowel de in- als ook de uitschrijvingen moeten sinds dat moment dus aan LA door worden gegeven.&lt;br /&gt;
CRM is leidend.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SITE = &lt;br /&gt;
&lt;br /&gt;
Deze groep wordt gebruikt voor autorisaties voor www.hcc.nl website &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De afspraken over deze groep zoals die met kantoor zijn gemaakt zijn als volgt:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Autorisatie kunnen alleen gedaan worden door Bas, Joris en Bert&lt;br /&gt;
* Bij het toekennen van nieuwe autorisatie wordt persoon lid gemaakt van deze groepering en krijgt de bijbehorende kaderrol&lt;br /&gt;
* De volgende kaderrollen mogen alleen gebruikt worden:&lt;br /&gt;
** Redacteur&lt;br /&gt;
** Agenda Beheerder&lt;br /&gt;
** Webmaster&lt;br /&gt;
* Is de kaderrol ingetrokken bij deze groep, en er zijn verder geen kaderrollen meer, dan moet de ledenadministratie deze persoon ook weer uitschrijven uit deze groepering.&lt;br /&gt;
* Deze groep heeft geen nieuwsbrief of functionele e-mail adressen&lt;br /&gt;
* Deze groep wordt niet meegenomen in het overzicht op kadernet &lt;br /&gt;
&lt;br /&gt;
= KNET = &lt;br /&gt;
&lt;br /&gt;
Deze groep wordt gebruikt voor autorisaties voor kadernet.hcc.nl website &lt;br /&gt;
&lt;br /&gt;
De afspraken over deze groep zoals die met kantoor zijn gemaakt zijn als volgt:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Autorisatie kunnen alleen gedaan worden door Bas, Wijnand en Bert&lt;br /&gt;
* Bij het toekennen van nieuwe autorisatie wordt persoon lid gemaakt van deze groepering en krijgt de bijbehorende kaderrol&lt;br /&gt;
* De volgende kaderrollen mogen gebruikt worden &lt;br /&gt;
** Redacteur&lt;br /&gt;
** Agenda Beheerder&lt;br /&gt;
** Webmaster&lt;br /&gt;
* Is de kaderrol ingetrokken bij deze groep, en er zijn verder geen kaderrollen meer, dan moet de ledenadministratie deze persoon ook weer uitschrijven uit deze groepering.&lt;br /&gt;
* Deze groep heeft geen nieuwsbrief of functionele e-mail adressen&lt;br /&gt;
* Deze groep wordt niet meegenomen in overzicht op kadernet&lt;br /&gt;
&lt;br /&gt;
= COSA =&lt;br /&gt;
Speciale groepering, bedoeld om leden van Beleggen, die deelnemen aan hun COSA sub-werkgroep, een nieuwsbrief te kunnen sturen.&lt;br /&gt;
&lt;br /&gt;
= DEMO =&lt;br /&gt;
Behoort bij de demo omgeving&lt;br /&gt;
&lt;br /&gt;
= HKAS =&lt;br /&gt;
Leden van de kascommissie hebben de rol &#039;LID&#039;. Dienen in het CRM ook aan deze groepering gekoppeld te worden, en weer ontkoppeld als ze de rol opgeven.&lt;br /&gt;
&lt;br /&gt;
= KADE =&lt;br /&gt;
Een virtuele groepering, die &#039;onder water&#039; gebruikt wordt. Alle kader- en kernleden maken deel uit van deze groepering.&lt;br /&gt;
&lt;br /&gt;
= PCAS =&lt;br /&gt;
Deze groep wordt gebruikt voor autorisaties voor www.pcactive.nl website &amp;lt;br&amp;gt;&lt;br /&gt;
De afspraken hieromtrent zijn min of meer gelijk aan die van SITE&lt;br /&gt;
&lt;br /&gt;
= PNNL =&lt;br /&gt;
Een (mislukte?) poging om de noordelijke groeperingen 1 overkoepelende site te geven&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Main_Page&amp;diff=79161</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Main_Page&amp;diff=79161"/>
		<updated>2020-12-27T10:26:07Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Hobbynet Admin WIKI===&lt;br /&gt;
 Shortcuts&lt;br /&gt;
 [http://otrs.hobby.nl/ HobbyNet Ticket systeem]            - OTRS&lt;br /&gt;
 [https://nagios.hobby.nl/nagios Nagios monitoring]                  -[[Nagios|&#039;&#039;&#039; Uitleg&#039;&#039;&#039;]]&lt;br /&gt;
 [https://wiki.hobby.nl/getip.html Waar draait een website]            - simpel tooltje om te kijken waar een website draait.&lt;br /&gt;
&lt;br /&gt;
===Algemene informatie===&lt;br /&gt;
 [[HCC!Hobbynet]]                         - Wat is Hobbynet - een uitleg voor kantoor (zie ook discussie tab)&lt;br /&gt;
 [[HCC!verenigingsdag]]                   - Een draaiboek voor de HCC!verenigingsdag&lt;br /&gt;
 [[Evenementen lan]]                      - Een draaiboek voor een Evenementen LAN&lt;br /&gt;
 [[Kadernet]]                             - Info over Kadernet voorzieningen (website, forum, etc.)&lt;br /&gt;
 [[Financien]]                            - Financiële aspecten van Hobbynet&lt;br /&gt;
 [[inventaris]]                           - Hobbynet inventaris overzicht t.b.v. hcc kantoor&lt;br /&gt;
 [[Windows_licenties]]                    - Hobbynet overzicht van de windows licenties&lt;br /&gt;
 [[Beheerders]]                           - Hobbynet beheerders&lt;br /&gt;
 [[server_certs]]                         - Hobbynet CAcert certificaten&lt;br /&gt;
 [[Hobbykeys]]                            - Info over het hobbykeys script&lt;br /&gt;
 [[accounts]]                             - Diverse account gegevens (o.a. knoppix.nl)&lt;br /&gt;
&lt;br /&gt;
===HCC.NL website platform===&lt;br /&gt;
 hcc.nl [[netwerk]]                       - Netwerk voor hcc.nl website platform&lt;br /&gt;
 [[XML-RPC]]                              - XML-RPC interface t.b.v. LDAP&lt;br /&gt;
 [[XML-HENZ-PROXY]]                       - XML-RPC HenZ proxy t.b.v. cronjob toegang tot HenZ&lt;br /&gt;
 [[www-prod-lb*]]                         - Productie servers (loadbalanced)&lt;br /&gt;
 [[Protocol_onderhoud]]                   - Afspraken rondom onderhoud en meldingen aan hcc.nl webmasters&lt;br /&gt;
&lt;br /&gt;
===Toegang===&lt;br /&gt;
 [[KVM over IP]]                          - Beheer op afstand m.b.v. KVM over IP apparatuur&lt;br /&gt;
 [[beheerder_accounts]]                   - Beheerder accounts aanmaken / bijhouden&lt;br /&gt;
 [[Aanmaken_Gebruiker]]                   - Aanmaken van een gebruiker&lt;br /&gt;
 [[Opzeggen_Gebruiker]]                   - Opzeggen van een gebruiker&lt;br /&gt;
&lt;br /&gt;
===Algemene services===&lt;br /&gt;
 [[Backup]]                               - Zo backupen we&lt;br /&gt;
 [[scp]]                                  - Hobbynet filetransfer omgeving&lt;br /&gt;
 [[sftp]]                                 - Hobbynet sftp omgeving kantoor en Tripolis&lt;br /&gt;
 [[Redirect server]]                      - De redirect server&lt;br /&gt;
 [[EMAIL]] (ook postfixadmin)             - Email server documentatie&lt;br /&gt;
 [[Roundcube Webmail]]                    - Upgrading Roundcube&lt;br /&gt;
 [[LDAP]] (server en client)              - LDAP setup&lt;br /&gt;
 [[LDAP login Authenticatie]]             - Om op (web)servers login via LDAP te doen  &lt;br /&gt;
 [[LDAP scripting]]                       - Scripting die op ldap-lb1 draait&lt;br /&gt;
 [[LDAP Administrative account]] weg!     - Hoe te handelen als het administrative account opeens weg is&lt;br /&gt;
 [[LDAP groeperings vlaggen]]             - Welke vlaggen zijn er voor een groepering en waar dienen ze voor&lt;br /&gt;
 [[SFTP server]]                          - sftp server voor uitwisseling met kantoor en tripolis&lt;br /&gt;
 [[Speciale groepen in ldap en CRM]]      - Speciale groepen in ldap en CRM&lt;br /&gt;
 [[PXE]]                                  - Hobbynet PXE omgeving&lt;br /&gt;
 [[Web cluster]]                          - Beschrijving van het Web cluster&lt;br /&gt;
 [[Loadbalancers]]                        - Beschrijving van de LoadbalancerNG&lt;br /&gt;
 [[Nagios]]                               - Beschrijving van Nagios&lt;br /&gt;
 [[Nagios_upgrade]]                       - Hoe upgrade ik Nagios vanuit source&lt;br /&gt;
 [[Hobbynet repository]]                  - Informatie over de Hobbynet repository&lt;br /&gt;
 [[Hobbynet repository inhoud]]           - Wat zit er in de Hobbynet repository&lt;br /&gt;
 [[Cron jobs]]                            - Niet standaard cronjobs die lopen bij hobbynet&lt;br /&gt;
 [[Fail2ban]]                             - Block possible intruders and bots&lt;br /&gt;
 [[Groepering_hernoemen]]                 - Beschrijving van het hernoemen van een groeperingsnaam&lt;br /&gt;
 [[killdisk]]                             - Software voor secure wissen van disken&lt;br /&gt;
 [[Wij jitsi server]]                     - HCC Jitsi server&lt;br /&gt;
 [[VMware installatie]]                   - Handige hulpjes bij installatie vmware&lt;br /&gt;
&lt;br /&gt;
=== nieuwe omgeving 03-11-2020 ===&lt;br /&gt;
 [[Cephfs]]                               - Shared storage&lt;br /&gt;
 [[Switches]]                             - Switches&lt;br /&gt;
 [[iSCSI]]                                - iSCSI&lt;br /&gt;
 [[Automatische installatie]]             - Automatische installatie via iPXE&lt;br /&gt;
 [[iPXE]]                                 - iPXE&lt;br /&gt;
 [[Sambabal]]                             - server die Samba shares verzorgt&lt;br /&gt;
 [[VMware 1 t/m 3]]                       - vmware 1 t/m 3&lt;br /&gt;
 [[VMware 4 t/m 6]]                       - vmware 4 t/m 6&lt;br /&gt;
 [[Vcenter]]                              - Beheersomgeving VMware Vcenter&lt;br /&gt;
 [[MySQL cluster]]                        - Beschrijving van het MySQL cluster&lt;br /&gt;
&lt;br /&gt;
=== dns ===&lt;br /&gt;
   [[DNS]]                                - DNS instellingen t.b.v. de domeinen&lt;br /&gt;
   [[domein]]                             - Direct naar domein&lt;br /&gt;
   [[ns1]]                                - Direct naar ns1.hobby.nl&lt;br /&gt;
   [[ns2]]                                - Direct naar ns2.hobby.nl&lt;br /&gt;
   [[ns3]]                                - Direct naar ns3.hobby.nl (bij TransIP)&lt;br /&gt;
   [[ns4]]                                - Direct naar ns4.hobby.nl (bij TransIP)&lt;br /&gt;
   [[Resolv*-int]]                        - Direct naar resolv nameserver pagina (draait op [[resolv-lb1]], [[resolv-lb2]] en [[resolv-lb3]])&lt;br /&gt;
   [[DNSSEC ds records publiceren]]       - Scripting t.b.v. het publiceren van DNSSEC DS records.&lt;br /&gt;
   [[DNS scripting]]                      - Overige DNS scripting&lt;br /&gt;
   [[DNS Zone updaten]]                   - een zone updaten&lt;br /&gt;
   [[Dane]]                               - Dane records in dns (wat moet je doen bij nieuw ssl cert)&lt;br /&gt;
&lt;br /&gt;
=== Joomla ===&lt;br /&gt;
&lt;br /&gt;
 [[Nieuwe joomla site maken]]             - Nieuwe Joomla site maken&lt;br /&gt;
 [[Joomla_xml_server]]                    - De XML-RPC-server t.b.v. de Joomla template sites&lt;br /&gt;
 [[Joomla modules]]                       - Beschrijving van Joomla modules en processen er om heen&lt;br /&gt;
 [[Joomla Events RSVP Pro]]               - RSVP Pro configureren (beperk bijeenkomst tot x personen)&lt;br /&gt;
&lt;br /&gt;
===Uitleg IP space===&lt;br /&gt;
 [[netwerk]]                              - Netwerk tekening van Hobbynet&lt;br /&gt;
 [[IPv4_space|IPv4]]                                 - IPv4 Hobbynet&lt;br /&gt;
 [[Ipv6_space|IPv6]]                                 - IPv6 Hobbynet&lt;br /&gt;
&lt;br /&gt;
===Kast indeling===&lt;br /&gt;
 [[kasten]]                               - Indeling kasten bij BIT &#039;&#039;(pagina heeft onderhoud nodig)&#039;&#039;&lt;br /&gt;
 [[systems]]                              - Alle systemen van Hobbynet (hardware &amp;amp; netwerk)&lt;br /&gt;
 [[Powerboot]]                            - Indeling APC PDU&#039;s (feb. 2013)&lt;br /&gt;
&lt;br /&gt;
===Tuning webservers===&lt;br /&gt;
 [[Hobby-firewall]]                       - de Hobbynet firewall&lt;br /&gt;
 [[PHP via fcgi]]                         - PHP via fcgi en suexec&lt;br /&gt;
 [[upg_web]]                              - Door middel van script server upgraden&lt;br /&gt;
&lt;br /&gt;
 [[NFS_settings]]                         - NFS poort instellingen t.b.v. iptables firewall&lt;br /&gt;
 [[sync Loadbalanced webservers]]         - dit script zorgt dat webserver configs worden gesynct&lt;br /&gt;
 [[Entropy]]                              - Hoe zorg ik voor meer Entropy op vmware machine&lt;br /&gt;
&lt;br /&gt;
===VPS voor derden===&lt;br /&gt;
 [[Ubuntu-nl]]                            - De Ubuntu-nl virtuele server&lt;br /&gt;
&lt;br /&gt;
=== Hobbynet informatie ===&lt;br /&gt;
 [[Scripting]]                            - Een poging om de scripting te beschrijven. WIP!&lt;br /&gt;
 [[agreements]]                           - Alle Hobbynet contracten met contract beheerder e.d.&lt;br /&gt;
 [[ToDo]]                                 - Een wensenlijstje van dingen die we kunnen veranderen/verbeteren&lt;br /&gt;
&lt;br /&gt;
===Updaten===&lt;br /&gt;
 [[Joomlasites]]                          - Joomla sites die wij bijhouden&lt;br /&gt;
 [[MediaWikiSites]]                       - MediaWiki sites die wij bijhouden&lt;br /&gt;
&lt;br /&gt;
===Nood gegevens===&lt;br /&gt;
 [[Medische protocol Bas|Medisch protocol bas]]                 - Medisch protocol bas&lt;br /&gt;
&lt;br /&gt;
Dit is een &amp;quot;mediawiki&amp;quot; (http://www.mediawiki.org/).&amp;lt;br&amp;gt;&lt;br /&gt;
Uitleg over het editen is te vinden op:&amp;lt;br&amp;gt;&lt;br /&gt;
http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/Wikipedia:How_does_one_edit_a_page&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=LDAP&amp;diff=79047</id>
		<title>LDAP</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=LDAP&amp;diff=79047"/>
		<updated>2020-12-09T16:35:49Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introductie==&lt;br /&gt;
Om een centrale plaats te hebben om authenticatie te doen voor www.hcc.nl en sub-sites zoals een forum, is gekozen voor het gebruik van een LDAP database/directory. Hierin wordt alles opgeslagen wat nodig is voor het functioneren van de site, inclusief NAW gegevens &amp;lt;strike&amp;gt;die op dit moment alleen opgeslagen worden t.b.v. het PC30 beheerscherm&amp;lt;/strike&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==LDAP server keuze==&lt;br /&gt;
De voor de hand liggende keuze is OpenLDAP. Echter zijn er geluiden gehoord dat OpenLDAP niet zou schalen. Alternatieven zijn b.v. 389server maar die is erg slecht gesupport onder Ubuntu. Voorlopig starten we met OpenLDAP. &lt;br /&gt;
&lt;br /&gt;
==Loadbalanced==&lt;br /&gt;
Er zijn twee servers (ldap-lb1 en ldap-lb2) die achter een loadbalancer in preferred server mode staan zodat het verkeer altijd naar server1 gestuurd wordt. Beide servers houden elkaar up-to-date. In de gewone situatie zullen alle reads en writes naar server1 gaan en server2 wordt door server1 bijgewerkt. Valt server1 weg, dan zal de loadbalancer overschakelen naar server2 waar vanaf dan de read en writes plaatsvinden. Zodra server1 weer beschikbaar is, wordt die bijgewerkt en zal weer master worden.&lt;br /&gt;
&lt;br /&gt;
==Installatie==&lt;br /&gt;
Installatie van OpenLDAP is simpel:&lt;br /&gt;
 aptitude install slapd ldap-utils&lt;br /&gt;
Omdat er gebruikgemaakt wordt van php scripts, is het ook nodig &#039;&#039;&#039;php-cli&#039;&#039;&#039; en &#039;&#039;&#039;php-ldap&#039;&#039;&#039; te installeren. De configuratie van OpenLDAP is sinds Karmic Koala iets gecompliceerder geworden. &#039;cn=config&#039; wordt nog steeds gebruikt maar tijdens installatie wordt alleen een skeleton configuratie geïnstalleerd. Er wordt niet meer gevraagd om een password tijdens de installatie en &amp;quot;dpkg-reconfigure slapd&amp;quot; zet alleen de skeleton configuratie terug. Je moet zelf de database, root dn en acl&#039;s opzetten (als root of met sudo). Run  &#039;&#039;&#039;dpkg-reconfigure slapd&#039;&#039;&#039; om terug te gaan naar een lege directory. &lt;br /&gt;
&lt;br /&gt;
UPDATE: in Oneiric Ocelot (11.10) is weer wel de mogelijkheid gegeven bij installatie een database aan te maken. Default wordt echter de fqdn hostname gebruikt. Bij dpkg-reconfigure kan het gewenste domein wel opnieuw gegeven worden. De initiële configuratie staat in /usr/share/slapd/slapd.init.ldif. &lt;br /&gt;
&lt;br /&gt;
UPDATE: bij de upgrade naar 16.04.1 zijn proefondervindelijk nog wat extra handelingen nodig gebleken.&amp;lt;br&amp;gt;&lt;br /&gt;
XML-RPC server updaten naar Ubuntu 16.04. WIP!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- apt-get install phpmyadmin&lt;br /&gt;
- apt-get install aptitude &lt;br /&gt;
- apt-get install php-xmlrpc&lt;br /&gt;
- apt-get install php-ldap&lt;br /&gt;
- phpenmod xml&lt;br /&gt;
- phpenmod mysqli&lt;br /&gt;
  (&#039;php -m&#039; toont de geactiveerde modules)&lt;br /&gt;
- apache2ctl restart&lt;br /&gt;
&lt;br /&gt;
phpmyadmin werkt niet:&lt;br /&gt;
- apt-get install php-mbstring&lt;br /&gt;
- apt-get install php-gettext&lt;br /&gt;
&lt;br /&gt;
ontbrekende pakketten volgens hjv:&lt;br /&gt;
&lt;br /&gt;
apt-get install aptitude &lt;br /&gt;
apt-get install phpmyadmin&lt;br /&gt;
apt-get install php-mbstring&lt;br /&gt;
apt-get install php-gettext&lt;br /&gt;
apt-get install php-xmlrpc&lt;br /&gt;
apt-get install php-ldap&lt;br /&gt;
apt-get install mysql-server&lt;br /&gt;
apt-get install ldapscripts&lt;br /&gt;
apt-get install php-xml&lt;br /&gt;
apt-get install slapd&lt;br /&gt;
apt-get install ldap-utils&lt;br /&gt;
a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
* Voer de laatste stappen uit, zoals beschreven in de Hobbynet wiki: *&lt;br /&gt;
&lt;br /&gt;
- openldap moet lid zijn van de groep ssl-cert!&lt;br /&gt;
apt-get install ssl-cert&lt;br /&gt;
adduser openldap ssl-cert&lt;br /&gt;
(of vi /etc/group&lt;br /&gt;
    ssl-cert:x:116:openldap)&lt;br /&gt;
&lt;br /&gt;
- Zorg dat de LDAP daemon bij de certificaten kan komen. &lt;br /&gt;
LET OP: op alle hobbynet servers staan de certificaten in /disk/site/etc/ssl/hobby.nl/&lt;br /&gt;
 chgrp ssl-cert /disk/site/etc/ssl/hobby.nl/hobby.nl.*&lt;br /&gt;
 chmod 440      /disk/site/etc/ssl/hobby.nl/hobby.nl.key&lt;br /&gt;
en dus niet langer&lt;br /&gt;
 chgrp ssl-cert /etc/ssl/private/hobby.nl.*&lt;br /&gt;
 chmod 440      /etc/ssl/private/hobby.nl.key&lt;br /&gt;
&lt;br /&gt;
- Vertel LDAP (en PHP) clients welke certificaten toegestaan zijn&lt;br /&gt;
(2017-09-23: verouderde info, niet langer in gebruik)&lt;br /&gt;
 vi /etc/ldap/ldap.conf&lt;br /&gt;
 TLS_CERT        /etc/ssl/private/hobby.nl.crt&lt;br /&gt;
 TLS_KEY         /etc/ssl/private/hobby.nl.key&lt;br /&gt;
 TLS_REQCERT     allow&lt;br /&gt;
&lt;br /&gt;
- mysql laat het bestand ibdata1 ongelimiteerd groeien (InnoDB bestanden)&lt;br /&gt;
 /etc/mysql/mysql.conf.d/innodb_file_per_table.cnf&lt;br /&gt;
 [mysql]&lt;br /&gt;
 innodb_file_per_table&lt;br /&gt;
&lt;br /&gt;
=============&lt;br /&gt;
Hobbynet aanpassingen&lt;br /&gt;
/etc/bash.bashrc&lt;br /&gt;
export http_proxy=http://squid-int.hobby.nl:3128&lt;br /&gt;
export https_proxy=http://squid-int.hobby.nl:3128&lt;br /&gt;
export ftp_proxy=http://squid-int.hobby.nl:3128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Locatie bestanden===&lt;br /&gt;
Om de benodigde bestanden op de server te krijgen zal scp gebruikt moet worden. Upload alles in een privé subdirectory. Copiëer daarna alles naar de juiste plaats en verander de owner in root.&lt;br /&gt;
&lt;br /&gt;
* Alle ldif em tmpl bestanden gaan naar /usr/local/hobbynet/lib&lt;br /&gt;
* init_ldap en andere scripts gaan naar /usr/local/hobbynet/bin&lt;br /&gt;
* alle data bestanden (dumps) en update ldifs gaan naar /usr/local/hobbynet/data&lt;br /&gt;
* etc/ldap/schema/hcc_schema.* gaan naar /etc/ldap/schema&lt;br /&gt;
* etc/ldap/schema/ppolicy.ldif gaat naar /etc/ldap/schema&lt;br /&gt;
&lt;br /&gt;
==Initiële database==&lt;br /&gt;
Direct na installatie (of na dpkg-reconfigure slapd) staat er een werkende doch lege directory in OpenLDAP. Access is alleen geregeld voor root. Dit heeft te maken met het feit dat vanaf Karmic Koala OpenLDAP alleen het minst noodzakelijke bevat om slapd te starten. Wordt echter init_ldap gebruikt dan wordt een werkende directory gemaakt met alle statische data (in diverse ou&#039;s) erin. Alleen zijn er geen leden geladen in de ou=leden en ou=inactieve_leden.&lt;br /&gt;
===slapd.init.ldif ===&lt;br /&gt;
Bij installatie/reconfiguratie wordt /usr/share/slapd/slapd.init.ldif ingelezen. Zie aldaar indien nodig.&lt;br /&gt;
&lt;br /&gt;
==init_ldap script==&lt;br /&gt;
Het lokale script init-ldap doet een reset van de initiële Openldap configuratie. Dit heeft tot gevolg dat de DIT dc=hcc,dc=nl met een rootDN &#039;&#039;&#039;cn=admin,dc=hcc,dc=nl&#039;&#039;&#039; steeds opnieuw aangemaakt wordt. Alles wat we toegevoegd/gewijzigd willen hebben in de cn=config volgt daarna. Dit wordt afgesloten met een restart van de slapd server. Het script &#039;&#039;&#039;restore_ldap&#039;&#039;&#039; laadt vervolgens de laatste dump terug. Bij wijzigingen aan het schema is het raadzaam altijd een &#039;&#039;&#039;dump_ldap&#039;&#039;&#039; te doen zodat een later een actuele dump kan worden teruggeladen.&lt;br /&gt;
&lt;br /&gt;
Het (plain text) password van cn=admin,dc=hcc,dc=nl moet bij het aanroepen van &#039;&#039;&#039;init_ldap&#039;&#039;&#039; op de commandline worden meegegeven. Tijdens de dpkg-reconfigure moet het password nog 2x gegeven worden. Lees eventueel ook de [http://www.openldap.org/doc/admin/ OpenLDAP Admin Guide].&lt;br /&gt;
&lt;br /&gt;
Het init_ldap script bevat allerlei logica om op meerdere ldap servers gedraaid te kunnen worden. In grote lijnen valt het script in een aantal blokken uiteen:&lt;br /&gt;
* voorbereidingen om &amp;quot;dpkg-reconfigure slapd&amp;quot; te draaien&lt;br /&gt;
* definities van input files&lt;br /&gt;
* check host&lt;br /&gt;
* bouwen van het skelet van de nieuwe directory&lt;br /&gt;
Zie voor details van de scripts &#039;&#039;&#039;init_ldap&#039;&#039;&#039;, &#039;&#039;&#039;dump_ldap&#039;&#039;&#039; en &#039;&#039;&#039;restore_ldap&#039;&#039;&#039; op een van de servers (in /usr/local/hobbynet/bin).&lt;br /&gt;
&lt;br /&gt;
==onderdelen van init_ldap==&lt;br /&gt;
Init_ldap is opgezet om stap voor stap de database op te bouwen. Hieronder een beschrijving van de losse ldif bestanden die ingelezen worden. Incidenteel wordt een ldif gewijzigd; kijk altijd in de actuele bestanden!&lt;br /&gt;
&lt;br /&gt;
===add-schema.ldif===&lt;br /&gt;
Omdat wij een aantal eigen attributes en Objectclasses hebben toegevoegd aam het schema, moeten deze aan OpenLDAP worden toegevoegd. Het schema moet nog worden omgezet naar ldif format. &lt;br /&gt;
* Hiertoe wordt het onderstaande schema in /etc/ldap/schema geplaatst als hcc_schema.schema. &lt;br /&gt;
* Vervolgens worden de stappen uitgevoerd zoals beschreven in de [https://help.ubuntu.com/11.10/serverguide/C/openldap-server.html Ubuntu Server guide], onder &#039;&#039;&#039;Modifying the slapd Configuration Database&#039;&#039;&#039;. &lt;br /&gt;
* De resulterende output file &#039;&#039;&#039;cn=hcc_schema.ldif&#039;&#039;&#039; moet dan nog naar /etc/ldap/schema/hcc_schema.ldif gecopieerd worden. &lt;br /&gt;
Als dit proces herhaald moet worden, start dan met een lege output directory en verwijder een eventueel achtergebleven cn=hcc_schema.ldif bestand. &lt;br /&gt;
&lt;br /&gt;
De extra schema&#039;s worden middels een &#039;&#039;&#039;include&#039;&#039;&#039; toegevoegd. &#039;&#039;&#039;Ppolicy&#039;&#039;&#039; is op gelijke wijze als &#039;&#039;&#039;hcc_schema&#039;&#039;&#039; tot .ldif geconverteerd. Alle stappen om een nieuwe &#039;&#039;&#039;hcc-schema.ldif&#039;&#039;&#039; te maken zijn gescript in &#039;&#039;&#039;upd_schema&#039;&#039;&#039;. In &#039;&#039;&#039;init_ldap&#039;&#039;&#039; wordt het eigen schema en de password policy geladen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## add-schema.ldif                   ##&lt;br /&gt;
#######################################&lt;br /&gt;
include: file:///etc/ldap/schema/hcc_schema.ldif&lt;br /&gt;
include: file:///etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
include: file:///etc/ldap/schema/ldapns.ldif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====schema updates====&lt;br /&gt;
Soms wordt een attribute toegevoegd of gewijzigd. Hiertoe dient het bestand hcc_schema.schema in /usr/local/hobbynet/etc/ldap/schema, gewijzigd te worden. Daarna dient er een ldif versie van gemaakt te worden. Gebruik hiervoor &#039;&#039;&#039;upd_schema.sh&#039;&#039;&#039; in dezelfde directory. De resulterende hcc_schema.ldif wordt in dit script naar /etc/ldap/schema gecopieërd. Bij grote wijzigingen is het aan te bevelen door de hele rebuild cycle te gaan (dump, init, restore). Bij triviale aanpassingen zou hcc_schema.ldif ook &#039;&#039;&#039;direct&#039;&#039;&#039; in de actieve directory geplaatst kunnen worden, gevolgd door slechts een &#039;&#039;&#039;service slapd restart&#039;&#039;&#039;. Gebruik hiervoor (blijf in de lokale schema directory):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;ldif_output/cn=config/cn=schema/cn={14}hcc_schema.ldif&amp;quot; &amp;quot;/etc/ldap/slapd.d/cn=config/cn=schema/cn={4}hcc_schema.ldif&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
LET OP: De nummers tussen accolades zijn bepaald door de volgorde van andere scripts! Zolang geen andere schema&#039;s worden toegevoegd zullen ze niet veranderen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ook kan met de ldap-tools gewerkt worden. Gebruik ldapsearch en ldapmodify, eventueel met de -f optie om een voorbereide serie opdrachten uit te voeren. Gebruik ldapsearch om eerst de structuur te vinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn={4}hcc_schema,cn=schema,cn=config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier een voorbeeld om een objectClass aan te passen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat pas_aan.ldif&lt;br /&gt;
dn: cn={4}hcc_schema,cn=schema,cn=config&lt;br /&gt;
changetype: modify&lt;br /&gt;
delete: olcObjectClasses&lt;br /&gt;
olcObjectClasses: {7}( 1.3.6.1.4.1.12795.2.8 NAME &#039;hccRelatieNaam&#039; \&lt;br /&gt;
   DESC &#039;Naam van een klant of partner&#039; SUP top STRUCTURAL MUST ( cn $userPassword )&lt;br /&gt;
MAY ( hccXmlIp4 $ hccXmlIp6 $ hccXmlAllow $ description ) )&lt;br /&gt;
-&lt;br /&gt;
add: olcObjectClasses&lt;br /&gt;
olcObjectClasses: {7}( 1.3.6.1.4.1.12795.2.8 NAME &#039;hccRelatieNaam&#039; \&lt;br /&gt;
   DESC &#039;Naam van een klant of partner&#039; SUP top STRUCTURAL MUST ( cn $userPassword )&lt;br /&gt;
MAY ( hccXmlIp4 $ hccXmlIp6 $ hccXmlAllow $ description $ hccIg ) )&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
$sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f pas_aan.ldif &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===modify_config.ldif===&lt;br /&gt;
Dit template dient om de SSL/TLS instelling toe te voegen in de ldap configuratie. Toegevoegd worden de certificaat gegevens om met TLS te kunnen werken. Het loglevel wordt op &#039;&#039;&#039;STATS&#039;&#039;&#039; gezet. Dit geeft niet teveel logging maar is toch goed bruikbaar. Om extra logging te krijgen op b.v. ACL&#039;s, verander olcLogLevel dan in &amp;quot;stats ACL&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Dit template wordt tijdens het draaien van het init_ldap script gecopieerd naar modify-config.ldif. Eventueel kan met place holders gewerkt worden (@...@), dit om op alle servers (ook test servers) één en hetzelfde script te kunnen gebruiken. Er zijn nog enkele van deze templates. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## modify-config.hobbynet            ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: cn=config&lt;br /&gt;
replace: olcLogLevel&lt;br /&gt;
olcLogLevel: stats&lt;br /&gt;
-&lt;br /&gt;
replace: olcTLSCACertificateFile&lt;br /&gt;
olcTLSCACertificateFile: /disk/site/etc/ssl/hobby.nl/CA-bundel.crt&lt;br /&gt;
-&lt;br /&gt;
replace: olcTLSCertificateFile&lt;br /&gt;
olcTLSCertificateFile: /disk/site/etc/ssl/hobby.nl/hobby.nl.crt&lt;br /&gt;
-&lt;br /&gt;
replace: olcTLSCertificateKeyFile&lt;br /&gt;
olcTLSCertificateKeyFile: /disk/site/etc/ssl/hobby.nl/hobby.nl.key&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Om de logging in een apart bestand te krijgen moet in /etc/rsyslog.d een extra bestand &#039;&#039;&#039;openldap.conf&#039;&#039;&#039; geplaatst worden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
local4.*   -/var/log/openldap.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tevens willen we logrotate op dit bestand. Plaats in /etc/logrotate.d het bestand &#039;&#039;&#039;openldap&#039;&#039;&#039; met de volgende inhoud&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/var/log/openldap.log&lt;br /&gt;
{&lt;br /&gt;
        rotate 4&lt;br /&gt;
        weekly&lt;br /&gt;
        missingok&lt;br /&gt;
        notifempty&lt;br /&gt;
        compress&lt;br /&gt;
        delaycompress&lt;br /&gt;
        sharedscripts&lt;br /&gt;
        postrotate&lt;br /&gt;
                reload rsyslog &amp;gt;/dev/null 2&amp;gt;&amp;amp;1 || true&lt;br /&gt;
        endscript&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===modify-hdb.ldif===&lt;br /&gt;
Hier worden de wijzigingen op de backend db gemaakt. Er worden een aantal attributes ge-indexeerd en de search SizeLimit wordt op &#039;&#039;&#039;unlimited&#039;&#039;&#039; gezet. De waarden die in DB_CONFIG moeten komen (Berkely DB parameters) staan ook in dit bestand. Deze versie is outdated. De ACL regels zijn drastisch gewijzigd. Raadpleeg altijd de laatste versie op de server zelf.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## modify-hdb.ldif                   ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: olcDatabase={1}hdb,cn=config&lt;br /&gt;
replace: olcAccess&lt;br /&gt;
#&lt;br /&gt;
# hobbynetlogin heeft lees rechten op ou=users&lt;br /&gt;
olcAccess: to attrs=@posixAccount,@posixGroup,@shadowAccount,@hostObject&lt;br /&gt;
  by dn=&amp;quot;cn=hobbynetlogin,ou=applicaties,dc=hcc,dc=nl&amp;quot; read&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# drupal/test moet hccOptIn kunnen schrijven vanaf de&lt;br /&gt;
# profiel pagina. Overige klanten kunnen hccOptin&lt;br /&gt;
# alleen lezen. self mag schrijven&lt;br /&gt;
olcAccess: to attrs=hccOptIn&lt;br /&gt;
  by self write&lt;br /&gt;
  by dn=&amp;quot;cn=drupal-hcc-nl,ou=klanten,dc=hcc,dc=nl&amp;quot; write&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# anonieme klanten moeten kunnen inloggen&lt;br /&gt;
# en mogen hun eigen password wijzigen&lt;br /&gt;
olcAccess: to attrs=userPassword,shadowLastChange&lt;br /&gt;
  by self write&lt;br /&gt;
  by anonymous auth&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# user mag enkele eigen attr wijzigen&lt;br /&gt;
olcAccess: to attrs=hccLogin,hccPseudoniem,hccKaderPassword&lt;br /&gt;
  by self write&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# beheerders hebben schrijfrechten op alles (updateDN)&lt;br /&gt;
# klanten hebben alleen lees rechten op alles (readDN)&lt;br /&gt;
# self mag  lezen&lt;br /&gt;
olcAccess: to *&lt;br /&gt;
  by self read&lt;br /&gt;
  by dn=&amp;quot;cn=xml-hoge-rechten,ou=applicaties,dc=hcc,dc=nl&amp;quot; write&lt;br /&gt;
  by dn=&amp;quot;cn=xml-lage-rechten,ou=applicaties,dc=hcc,dc=nl&amp;quot; read&lt;br /&gt;
  by dn.one=&amp;quot;ou=beheer,dc=hcc,dc=nl&amp;quot; write&lt;br /&gt;
  by dn.one=&amp;quot;ou=klanten,dc=hcc,dc=nl&amp;quot; read&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# helpdesk heeft leesrechten op ou=leden&lt;br /&gt;
olcAccess: to attrs=@hccOrgPerson,@hccKaderFunctie&lt;br /&gt;
  by dn.one=&amp;quot;ou=helpdesk,dc=hcc,dc=nl&amp;quot; read&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# partners mogen een paar attrs lezen&lt;br /&gt;
olcAccess: to attrs=hccLidNummer,hccPostcode,hccPostcodeZoekveld&lt;br /&gt;
  by dn.one=&amp;quot;ou=partners,dc=hcc,dc=nl&amp;quot; read&lt;br /&gt;
#&lt;br /&gt;
# iedereen moet (pseudo attr) entry en objectClass kunnen lezen&lt;br /&gt;
olcAccess: to attrs=entry,objectClass&lt;br /&gt;
  by * read&lt;br /&gt;
#&lt;br /&gt;
# vangnet: blokkeer alle toegang tot de overige attrs.&lt;br /&gt;
olcAccess: to *&lt;br /&gt;
  by * none&lt;br /&gt;
-&lt;br /&gt;
replace: olcDbDirectory&lt;br /&gt;
olcDbDirectory: /var/lib/ldap&lt;br /&gt;
-&lt;br /&gt;
replace: olcSizeLimit&lt;br /&gt;
olcSizeLimit: 100000&lt;br /&gt;
-&lt;br /&gt;
replace: olcDbCachesize&lt;br /&gt;
olcDbCachesize: 200000&lt;br /&gt;
-&lt;br /&gt;
replace: olcDbCheckpoint&lt;br /&gt;
olcDbCheckpoint: 1024 5&lt;br /&gt;
-&lt;br /&gt;
replace: olcDbConfig&lt;br /&gt;
olcDbConfig: set_cachesize 0 536870912 0&lt;br /&gt;
olcDbConfig: set_lk_max_objects 1000&lt;br /&gt;
olcDbConfig: set_lk_max_locks 1000&lt;br /&gt;
olcDbConfig: set_lk_max_lockers 1000&lt;br /&gt;
olcDbConfig: set_flags DB_LOG_AUTOREMOVE&lt;br /&gt;
olcDbConfig: set_flags DB_TXN_NOSYNC&lt;br /&gt;
-&lt;br /&gt;
replace: olcDbIDLcacheSize&lt;br /&gt;
olcDbIDLcacheSize: 600000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===modify_index.ldif===&lt;br /&gt;
Een kale configuratie is heel snel voor wat betreft het opnieuw vullen met gegevens. Bij het aanmaken van een verse LDAP database worden er dan ook zo min mogelijk indexen aangemaakt.&amp;lt;br&amp;gt;&lt;br /&gt;
Zodra de inhoud is ingelezen kunnen de &#039;echte&#039; indexen aangemaakt worden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## modify-index.ldif                 ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: olcDatabase={1}hdb,cn=config&lt;br /&gt;
replace: olcDbIndex&lt;br /&gt;
olcDbIndex: default pres,eq&lt;br /&gt;
olcDbIndex: objectClass,entryUUID,entryCSN eq&lt;br /&gt;
olcDbIndex: hccLidNummer,hccLogin,hccForumLogin eq&lt;br /&gt;
olcDbIndex: uid,uidNumber,gidNumber,memberUid,member eq&lt;br /&gt;
olcDbIndex: cn,host,hccPseudoniem,hccOptin,hccLocatie eq&lt;br /&gt;
olcDbIndex: sn,hccPostcodeZoekveld,hccIg,hccRegio eq,subfinal&lt;br /&gt;
olcDbIndex: hccRol,hccBezoek eq,pres,subfinal&lt;br /&gt;
olcDbIndex: hccBulletins pres&lt;br /&gt;
olcDbIndex: aboNummer eq&lt;br /&gt;
olcDbIndex: aboPostcodeZoekveld eq,subfinal&lt;br /&gt;
olcDbIndex: mail,mailHccnet,hccKaderMail pres,eq&lt;br /&gt;
olcDbIndex: hccProfiel pres&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ppolicy overlay===&lt;br /&gt;
* vanuit LDAP de minimale lengte van een wachtwoord afdwingen&lt;br /&gt;
* in LDAP SSHA versleuteling activeren&amp;lt;br&amp;gt;&lt;br /&gt;
(olcPPolicyHashCleartext: TRUE)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## add-ppolicy.ldif                  ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: cn=module, cn=config&lt;br /&gt;
cn: module&lt;br /&gt;
objectClass: olcModuleList&lt;br /&gt;
objectClass: top&lt;br /&gt;
olcModuleLoad: ppolicy&lt;br /&gt;
olcmodulepath: /usr/lib/ldap&lt;br /&gt;
&lt;br /&gt;
dn: olcOverlay=ppolicy,olcDatabase={1}hdb,cn=config&lt;br /&gt;
objectClass: olcOverlayConfig&lt;br /&gt;
objectClass: olcPPolicyConfig&lt;br /&gt;
olcOverlay: ppolicy&lt;br /&gt;
olcPPolicyDefault: cn=default,ou=policies,dc=hcc,dc=nl&lt;br /&gt;
olcPPolicyUseLockout: TRUE&lt;br /&gt;
olcPPolicyHashCleartext: TRUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The default ppolicy looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dn: cn=default,ou=policies,dc=hcc,dc=nl&lt;br /&gt;
objectClass: pwdPolicy&lt;br /&gt;
objectClass: device&lt;br /&gt;
cn: default&lt;br /&gt;
pwdCheckQuality: 1&lt;br /&gt;
pwdMinLength: 8&lt;br /&gt;
pwdAttribute: 2.5.4.35&lt;br /&gt;
pwdAllowUserChange: TRUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Syncrepl overlay===&lt;br /&gt;
Om twee servers met elkaar in sync te houden is nog wat aanvullende configuratie nodig. In onze situatie zal altijd maar één server bevraagd worden; bij een failover van de loadbancer zal dus de andere server gebruikt worden. Bij het teruggaan naar server 1 zal de directory bijgewerkt worden. Wij gebruiken de z.g. Mirror Mode. Zie de [http://www.openldap.org/doc/admin/ LDAP Admin Guide]. &#039;&#039;&#039;Mirror configuratie is specifiek per server!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## add-syncrepl.tmpl                 ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: cn=config&lt;br /&gt;
changetype: modify&lt;br /&gt;
replace: olcServerID&lt;br /&gt;
olcServerID: @SID@&lt;br /&gt;
&lt;br /&gt;
dn: cn=module{0},cn=config&lt;br /&gt;
changetype: modify&lt;br /&gt;
add: olcModuleLoad&lt;br /&gt;
olcModuleLoad: syncprov&lt;br /&gt;
&lt;br /&gt;
dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config&lt;br /&gt;
changetype: add&lt;br /&gt;
objectClass: olcOverlayConfig&lt;br /&gt;
objectClass: olcSyncProvConfig&lt;br /&gt;
olcOverlay: syncprov&lt;br /&gt;
olcSpCheckpoint: 100 5&lt;br /&gt;
olcSpSessionlog: 100&lt;br /&gt;
&lt;br /&gt;
dn: olcDatabase={1}hdb,cn=config&lt;br /&gt;
changetype: modify&lt;br /&gt;
add: olcSyncRepl&lt;br /&gt;
olcSyncRepl: rid=@RID@&lt;br /&gt;
  provider=ldap://@PROVIDER@&lt;br /&gt;
  binddn=&amp;quot;cn=admin,dc=hcc,dc=nl&amp;quot; bindmethod=simple credentials=&amp;quot;@PASSWORD@&amp;quot;&lt;br /&gt;
  searchbase=&amp;quot;dc=hcc,dc=nl&amp;quot;&lt;br /&gt;
  type=refreshAndPersist&lt;br /&gt;
  interval=00:00:00:10&lt;br /&gt;
  retry=&amp;quot;5 5 300 5&amp;quot;&lt;br /&gt;
  timeout=1&lt;br /&gt;
  starttls=yes&lt;br /&gt;
-&lt;br /&gt;
add: olcMirrorMode&lt;br /&gt;
olcMirrorMode: TRUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
De andere server krijgt ServerID 2 en de provider is het IP adres van de andere server.&lt;br /&gt;
&lt;br /&gt;
===Unique overlay===&lt;br /&gt;
Deze overlay dient er voor te zorgen dat o.a het attribuut hccLogin een unieke waarde bevat.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## add-unique.ldif                   ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: cn=module,cn=config&lt;br /&gt;
cn: module&lt;br /&gt;
objectclass: olcModuleList&lt;br /&gt;
objectclass: top&lt;br /&gt;
olcmoduleload: unique&lt;br /&gt;
olcmodulepath: /usr/lib/ldap&lt;br /&gt;
&lt;br /&gt;
dn: olcOverlay=unique,olcDatabase={1}hdb,cn=config&lt;br /&gt;
objectClass: olcOverlayConfig&lt;br /&gt;
objectClass: olcUniqueConfig&lt;br /&gt;
olcOverlay: unique&lt;br /&gt;
olcUniqueAttribute: uid uidNumber hccLogin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==SSL/TLS beveiliging==&lt;br /&gt;
Gebruik de juiste .pem bestanden in /etc/ssl/certs en /etc/ssl/private.&lt;br /&gt;
&lt;br /&gt;
We maken gebruik van een RapidSSL certificaat. Als dit niet standaard in Ubuntu bekend is, zet dan eerst GeoTrust_RapidSSL_-_ca-bundle.pem in de map /etc/ssl/certs neer. Voer nu een &#039;&#039;&#039;c_rehash .&#039;&#039;&#039; uit in /etc/ssl/certs om de cache te updaten (omdat GeoTrust_RapidSSL_-_ca-bundle.pem nieuw werd toegevoegd). &lt;br /&gt;
&lt;br /&gt;
De ownership is belangrijk. Hiertoe wordt de groep &amp;quot;openldap&amp;quot; toegevoegd aan de groep ssl-cert.&lt;br /&gt;
 adduser openldap ssl-cert&lt;br /&gt;
&lt;br /&gt;
Als dit fout gaat, doe dan eerst:&lt;br /&gt;
 apt-get install ssl-cert&lt;br /&gt;
&lt;br /&gt;
Zet het certificaat en de private key in de juiste groep:&lt;br /&gt;
 chgrp ssl-cert /etc/ssl/private/hobby.nl.*&lt;br /&gt;
 chmod 440      /etc/ssl/private/hobby.nl.key&lt;br /&gt;
&lt;br /&gt;
Het resultaat is dan als volgt:&lt;br /&gt;
 root@hcc-ldap-lb1:~# ls -l /etc/ssl/private/hcc* &lt;br /&gt;
 -rw-r--r-- 1 root     ssl-cert 1724 Nov 22 20:47 hobby.nl.crt&lt;br /&gt;
 -r--r----- 1 root     ssl-cert 1679 Nov 22 20:25 hobby.nl.key&lt;br /&gt;
&lt;br /&gt;
 root@hcc-ldap-lb1:~# grep openldap /etc/group&lt;br /&gt;
 ssl-cert:x:114:openldap&lt;br /&gt;
 openldap:x:118:&lt;br /&gt;
&lt;br /&gt;
2020.12.09: Op een nieuwe Ubuntu installatie staat apparmor standaard aan. Weg ermee!&lt;br /&gt;
 apt remove --assume-yes --purge apparmor&lt;br /&gt;
&amp;lt;strike&amp;gt;Per september 2017 staan de certificaten in /disk/site/etc/ssl/hobby.nl, net als op alle andere servers. Omdat apparmor actief is moet deze directory worden toegevoegd aan /etc/apparmor.d/local/usr.sbin.slapd. Die file ziet er dan als volgt uit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Site-specific additions and overrides for usr.sbin.slapd.&lt;br /&gt;
# For more details, please see /etc/apparmor.d/local/README.&lt;br /&gt;
#include &amp;lt;abstractions/ssl_certs&amp;gt;&lt;br /&gt;
/disk/site/etc/ssl/hobby.nl/ r,&lt;br /&gt;
/disk/site/etc/ssl/hobby.nl/* r,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als Openldap ook op poort 636 benaderd wordt (naast TLS op 389), moet in /etc/default/slapd ldaps:/// opgenomen worden bij de SLAPD_SERVICES.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;netstat -an&#039; dient dan 636 te laten zien voor zowel IPv4 als IPv6.&lt;br /&gt;
&lt;br /&gt;
Om de cn=config te zien kan je het volgende commando gebruiken:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config&lt;br /&gt;
&lt;br /&gt;
of, wat botter maar korter:&lt;br /&gt;
cat /etc/ldap/slapd.d/cn\=config.ldif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Backup, initialize, restore==&lt;br /&gt;
Om het hele skelet van ldap in één keer te herstellen dient &#039;&#039;&#039;init_ldap&#039;&#039;&#039; gebruikt te worden. Als argument &#039;&#039;&#039;moet&#039;&#039;&#039; het admin beheer wachtwoord mee gegeven worden.&lt;br /&gt;
&lt;br /&gt;
===lokaal===&lt;br /&gt;
Backups kunnen gemaakt worden terwijl slapd draait maar geadviseerd wordt slapd te stoppen. Voor dumpen moet &#039;&#039;&#039;slapcat&#039;&#039;&#039; gebruikt worden. Backups kunnen gemaakt worden per database of een filter daarop, naar een ldif bestand.&lt;br /&gt;
 slapcat -l hcc-dump.ldif -b &amp;quot;dc=hcc,dc=nl&amp;quot;&lt;br /&gt;
Dit maakt een dump van alles onder &#039;&#039;&#039;dc=hcc,dc=nl&#039;&#039;&#039; naar het bestand hcc-dump.ldif. Ook is het mogelijk het database nummer te gebruiken, config is altijd nummer 0, hdb is gewoonlijk 1.&lt;br /&gt;
&lt;br /&gt;
Het &#039;&#039;&#039;dump_ldap&#039;&#039;&#039; script dumpt alle ou&#039;s in aparte .ldif bestanden; het omgekeerde doet &#039;&#039;&#039;restore_ldap&#039;&#039;&#039;.  &lt;br /&gt;
Terug inlezen kan alleen in een lege directory, dus direct nadat &#039;&#039;&#039;init_ldap&#039;&#039;&#039; is gedaan. Gebruik voor het terugplaatsen &#039;&#039;&#039;slapadd&#039;&#039;&#039;. Aan te bevelen is &#039;&#039;&#039;-c&#039;&#039;&#039; mee te geven zodat ondanks fouten doorgegaan wordt. &lt;br /&gt;
&lt;br /&gt;
Voor slapadd &#039;&#039;&#039;moet&#039;&#039;&#039; slapd gestopt zijn. Denk er om alvorens te slapd starten het ownership van de bestanden in /var/lib/ldap recht te zetten! (dit lijkt niet meer nodig te zijn vbs20130526)&lt;br /&gt;
 /etc/init.d/slapd stop&lt;br /&gt;
 slapadd -l hcc-dump.ldif -w -c &amp;gt;errors.txt&lt;br /&gt;
 chown openldap:openldap /var/lib/ldap/*&lt;br /&gt;
 /etc/init.d/slapd start&lt;br /&gt;
&lt;br /&gt;
===remote===&lt;br /&gt;
Er wordt dagelijks een encrypted remote backup gemaakt naar backup2bit. Zie voor meer info [[Encrypted_backup]]. Dit script maakt gebruik van unieke gpg keys. Op elke server is dus een eigen versie nodig van &#039;&#039;&#039;backup-encrypted&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Recente lokale backups zijn te vinden in &#039;&#039;&#039;/usr/local/hobbynet/tmp&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Verse ldap maken===&lt;br /&gt;
Transactie log bij het toevoegen van b.v. een nieuwe ou:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Op beide servers:&lt;br /&gt;
schema van test server gecopieerd en geactiveerd&lt;br /&gt;
dump-ldap gedraaid&lt;br /&gt;
systemctl stop slapd.service &lt;br /&gt;
&lt;br /&gt;
Er is nu géén ldap service! Werk dus snel...&lt;br /&gt;
&lt;br /&gt;
op ldap-lb1:&lt;br /&gt;
init-ldap.sh &amp;lt;adminpw&amp;gt;&lt;br /&gt;
restore-ldap.sh&lt;br /&gt;
wacht op indexering (tot slapd uit top verdwijnt)&lt;br /&gt;
Slapd service is nu in de lucht op ldap-lb1&lt;br /&gt;
systemctl stop slapd.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
op ldap-lb2:&lt;br /&gt;
init-ldap.sh &amp;lt;adminpw&amp;gt;&lt;br /&gt;
restore-ldap.sh&lt;br /&gt;
wacht op indexering (tot slapd uit top verdwijnt)&lt;br /&gt;
Slapd service is nu in de lucht op ldap-lb2&lt;br /&gt;
&lt;br /&gt;
op ldap-lb1:&lt;br /&gt;
systemctl start slapd.service&lt;br /&gt;
Beide slapd servers zijn in de lucht en moeten synchroniseren.&lt;br /&gt;
&lt;br /&gt;
op beide servers:&lt;br /&gt;
check replicatie (netstat en functioneel)&lt;br /&gt;
&lt;br /&gt;
root@ldap-lb1:/usr/local/hobbynet/bin# netstat -n | grep 389&lt;br /&gt;
tcp        0      0 172.31.8.4:36838        172.31.8.5:389          ESTABLISHED&lt;br /&gt;
tcp        0      0 172.31.8.4:36836        172.31.8.5:389          ESTABLISHED&lt;br /&gt;
tcp        0      0 172.31.8.4:389          172.31.8.5:58112        ESTABLISHED&lt;br /&gt;
tcp        0      0 172.31.8.4:389          172.31.8.5:58114        ESTABLISHED&lt;br /&gt;
&lt;br /&gt;
Functioneel door met ADS op beide servers in te loggen en een willekeurig veld in je eigen entry te wijzigen op lb1. Kijk of het gebeurd is op lb2 en wijzig het daar terug. Check op de andere server of het gebeurd is. Er kan een zekere vertraging in optreden.&lt;br /&gt;
&lt;br /&gt;
Stel er is een nieuwe ou gemaakt: denk aan het bij werken van de dump en restore scripts.&lt;br /&gt;
&lt;br /&gt;
update dump-ldap.sh en restore-ldap.sh met de nieuwe ou&lt;br /&gt;
&lt;br /&gt;
op ldap-lb1:&lt;br /&gt;
export tarieven.ldif op test server en import op ldap-lb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==crontab==&lt;br /&gt;
 # script dat updates ophaalt (maar niet installeert), zodat nagios ze ook detecteert&lt;br /&gt;
 0 9 * * * /usr/local/hobbynet/bin/upd_srv &amp;gt;/dev/null&lt;br /&gt;
 0 18 * * * /usr/local/hobbynet/bin/upd_srv &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
==LDAP Clients==&lt;br /&gt;
Er zijn meerdere LDAP clients. De meest populaire zijn Apache Directory Studio (&amp;quot;ADS&amp;quot;) en phpLdapAdmin (&amp;quot;PLA&amp;quot;).&amp;lt;br&amp;gt;&lt;br /&gt;
De eerste is veel uitgbreider maar vereist een Java Runtime Environment (&amp;quot;JRE&amp;quot;). Onder Windows is dat JRE(13) of (open)JDK-(13).&amp;lt;br&amp;gt;&lt;br /&gt;
PhpLdapAdmin draait onder apache. Beide clients hebben wat configuratie nodig; Bij ADS gaat alles stapsgewijs in de GUI. Voor PLA moet /etc/phpldapadmin/config.php aangepast worden. &lt;br /&gt;
&lt;br /&gt;
Binnen Hobbynet wordt uitsluitend gebruik gemaakt van ADS.&lt;br /&gt;
&lt;br /&gt;
===StartTLS===&lt;br /&gt;
Aanbevolen wordt StartTLS op poort 389 te gebruiken. Alternatief is LDAPS op poort 636 maar dat is deprecated. &lt;br /&gt;
&lt;br /&gt;
Voor beide clients is het belangrijk dat de root certificaten gevonden kunnen worden. Als Apache al een server cert kent zou PLA geen probleem mogen zijn. ADS maakt deel uit van de JRE. JRE moet dus de root certificaten kunnen vinden.&lt;br /&gt;
&lt;br /&gt;
===ADS onder Windows===&lt;br /&gt;
&amp;lt;i&amp;gt;2019-10-31 HJV: Oude info, als referentie leuk, maar niet meer relevant&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Onder Windows moet met &#039;&#039;&#039;keytool.exe&#039;&#039;&#039; gewerkt worden. De uitleg heb ik van  [http://www.talkingtree.com/blog/index.cfm?mode=entry&amp;amp;entry=25AA75A4-45A6-2844-7CA3EECD842DB576 hier]. Het komt erop neer dat de .pem of .der certificaten van CAcert in de keystore gezet worden. Kopieer deze certificaat bestanden in C:\Program Files\Java\jre6\lib\security (jre6 kan ondertussen jre7 zijn in Vista of W7). Doe dan in een terminal window:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Haal de benodigde bestanden op (op een Linux systeem):&lt;br /&gt;
wget http://www.cacert.org/certs/root.der -O root.der&lt;br /&gt;
wget http://www.cacert.org/certs/class3.der -O class3.der&lt;br /&gt;
copieer de bestanden naar de Windows omgeving in C:\Program Files (x86)\Java\jre6\lib\security.&lt;br /&gt;
&lt;br /&gt;
Open een commandwindow:&lt;br /&gt;
cd C:\Program Files (x86)\Java\jre6\lib\security&lt;br /&gt;
..\..\bin\keytool -import -trustcacerts -keystore cacerts -storepass changeit -noprompt -alias cacertclass1 -file root.der&lt;br /&gt;
..\..\bin\keytool -import -trustcacerts -keystore cacerts -storepass changeit -noprompt -alias cacertclass3 -file class3.der&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
De Windows JRE is ook te managen via het Java applet in het configuratiescherm. Toevoegen van root certificaten lijkt niet mogelijk voor system; wel voor user. Niet verder naar gezocht.&lt;br /&gt;
&lt;br /&gt;
===ADS onder Linux===&lt;br /&gt;
Apache Directory Studio laat zich uit een tarball installeren. Dit kan geheel in userspace; er is geen make install o.i.d. nodig. ADS loopt vanuit de lokatie waar het uitgepakt is.&lt;br /&gt;
&lt;br /&gt;
===ADS gebruik===&lt;br /&gt;
ADS kan erg handig zijn voor het snel dumpen van hele ou&#039;s in .ldif formaat. Zo&#039;n dump kan direct op een andere server worden ingelezen.&lt;br /&gt;
&lt;br /&gt;
===PhpLdapAdmin onder Linux===&lt;br /&gt;
Voor ldap clients (phpldapadmin) dient de client configuratie goed te zijn. Deze bevindt zich in /etc/ldap/ldap.conf. Het is voldoende als de directory met de root certificaten bekend is. Deze client configuratie is meer php-ldap gebonden dan alleen voor PLA. Ook de Drupal LDAPauth module werkt met ditzelfde beatand. Zie ook de [http://phpldapadmin.sourceforge.net/wiki/index.php/Server:server:tls phpldapadmin wiki].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# LDAP Defaults&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# See ldap.conf(5) for details&lt;br /&gt;
# This file should be world readable but not world writable.&lt;br /&gt;
&lt;br /&gt;
#BASE   dc=example,dc=com&lt;br /&gt;
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666&lt;br /&gt;
&lt;br /&gt;
#SIZELIMIT      12&lt;br /&gt;
#TIMELIMIT      15&lt;br /&gt;
#DEREF          never&lt;br /&gt;
TLS_CACERT      /etc/ssl/certs/CAcert_org.pem&lt;br /&gt;
TLS_CERT        /etc/ssl/private/hobby.nl.crt&lt;br /&gt;
TLS_KEY         /etc/ssl/private/hobby.nl.key&lt;br /&gt;
TLS_REQCERT     allow&lt;br /&gt;
#TLS_REQCERT never&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Denk er wel aan na wijzigingen Apache te herstarten.&lt;br /&gt;
===PAM en NSS via LDAP===&lt;br /&gt;
Het inloggen van gebruikers kan ook via een LDAP server en client geschieden. Hiervoor dienen enkele pakketten geïnstalleerd en geconfigureerd te worden. Er zijn wijzigingen nodig in /etc/nsswitch.conf en de /etc/pam.d/common-* bestanden. Beide zijn via dedicated tools aan te passen.&lt;br /&gt;
&lt;br /&gt;
Installeer &#039;&#039;&#039;libnss-ldapd&#039;&#039;&#039; om de benodigde libraries te verkrijgen. Apt-get zal tevens &#039;&#039;&#039;libpam-ldapd&#039;&#039;&#039;, &#039;&#039;&#039;nslcd&#039;&#039;&#039; en &#039;&#039;&#039;nscd&#039;&#039;&#039; binnen brengen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install libnss-ldapd auth-client-config ldap-utils&lt;br /&gt;
The following extra packages will be installed:&lt;br /&gt;
    libpam-ldapd nscd nslcd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Libnss-ldapd is een doorontwikkeling van libnss-ldap en bevat meerdere verbeteringen. Zie: [http://arthurdejong.org/nss-pam-ldapd/ deze site] van de ontwikkelaar. Bij de installatie wordt een user &#039;&#039;&#039;nslcd&#039;&#039;&#039; aangemaakt; denk erom die in de .tmpl bestanden te zetten!&lt;br /&gt;
  &lt;br /&gt;
nsswitch.conf laat zich configureren via &#039;&#039;&#039;auth-client-config&#039;&#039;&#039; maar lac_ldap is alleen aanwezig als &#039;&#039;&#039;ldap-auth-config&#039;&#039;&#039; ook is geinstalleerd. Zo niet gebruik dan de tweede regel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth-client-config -t nss -p lac_ldap&lt;br /&gt;
auth-client-config -t nss -p ldap_example&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Het resultaat is dat nsswitch.conf zowel in files (/etc/passwd etc.) zoekt als in ldap.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /etc/nsswitch.conf&lt;br /&gt;
#&lt;br /&gt;
# Example configuration of GNU Name Service Switch functionality.&lt;br /&gt;
# If you have the `glibc-doc-reference&#039; and `info&#039; packages installed, try:&lt;br /&gt;
# `info libc &amp;quot;Name Service Switch&amp;quot;&#039; for information about this file.&lt;br /&gt;
&lt;br /&gt;
# pre_auth-client-config # passwd:         compat&lt;br /&gt;
passwd: files ldap&lt;br /&gt;
# pre_auth-client-config # group:          compat&lt;br /&gt;
group: files ldap&lt;br /&gt;
# pre_auth-client-config # shadow:         compat&lt;br /&gt;
shadow: files ldap&lt;br /&gt;
&lt;br /&gt;
hosts:          files dns&lt;br /&gt;
networks:       files&lt;br /&gt;
&lt;br /&gt;
protocols:      db files&lt;br /&gt;
services:       db files&lt;br /&gt;
ethers:         db files&lt;br /&gt;
rpc:            db files&lt;br /&gt;
&lt;br /&gt;
# pre_auth-client-config # netgroup:       nis&lt;br /&gt;
netgroup: nis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Het aanpassen van de PAM bestanden gaat sinds enige releases met &#039;&#039;&#039;pam-auth-update&#039;&#039;&#039;. Kies in het menu voor zowel unix als ldap. Default wordt nu ldap authenticatie gebruikt voor uid &amp;gt;= 1000. Bij Hobbynet willen we vanaf 300 ldap gebruiken. Door een licht gemodificeerde versie van /usr/share/pam-configs/ldap te maken (ldap-hobbynet), kan ook voor de hobbynet instelling gekozen worden. Dit is de ldap-hobbynet versie:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: LDAP Authentication (uid&amp;gt;300)&lt;br /&gt;
Default: yes&lt;br /&gt;
Priority: 128&lt;br /&gt;
Auth-Type: Primary&lt;br /&gt;
Auth-Initial:&lt;br /&gt;
        [success=end default=ignore]    pam_ldap.so minimum_uid=300&lt;br /&gt;
Auth:&lt;br /&gt;
        [success=end default=ignore]    pam_ldap.so minimum_uid=300 use_first_pass&lt;br /&gt;
Account-Type: Additional&lt;br /&gt;
Account:&lt;br /&gt;
        [success=ok new_authtok_reqd=done ignore=ignore user_unknown=ignore authinfo_unavail=ignore default=bad]        pam_ldap.so minimum_uid=300&lt;br /&gt;
Password-Type: Primary&lt;br /&gt;
Password-Initial:&lt;br /&gt;
        [success=end default=ignore]    pam_ldap.so minimum_uid=300&lt;br /&gt;
Password:&lt;br /&gt;
        [success=end default=ignore]    pam_ldap.so minimum_uid=300 try_first_pass&lt;br /&gt;
Session-Type: Additional&lt;br /&gt;
Session:&lt;br /&gt;
        [success=ok default=ignore]     pam_ldap.so minimum_uid=300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dit is in een standaard opzet van LDAP voldoende om zowel lokale gebruikers als gebruikers opgeslagen in LDAP, te laten inloggen en hun password te laten wijzigen. In de Hobbynet setup moet er echter nog meer gebeuren in de ACL&#039;s van de LDAP server configuratie. Omdat Hobbynet de laatste ACL regel heeft gewijzigd in een &#039;&#039;&#039;deny-all&#039;&#039;&#039;, is er een helper of proxy account nodig dat read access heeft of een aantal cruciale velden in de posixAccount objectClass. Zie verder de lsiting van nslcd.conf.&lt;br /&gt;
&lt;br /&gt;
Libnss-ldapd en libpam-ldapd hebben een gezamelijke daemon &#039;&#039;&#039;nslcd&#039;&#039;&#039; die z&#039;n configuratie uit &#039;&#039;&#039;/etc/nslcd.conf&#039;&#039;&#039; haalt. Hierin is ook een voorziening voor het helper account. Aan het eind vande &#039;&#039;&#039;nslcd.conf&#039;&#039;&#039; staat de voorziening voor host-based login. Als het attribute &#039;&#039;&#039;host&#039;&#039;&#039; de fqdn of alleen de host naam bevat, bepaald dat of inloggen op die host mogelijk is. &#039;&#039;&#039;*&#039;&#039;&#039; staat inloggen op alle hosts toe.&lt;br /&gt;
&lt;br /&gt;
Eventueel kan het daemon proces voor debugging doeleinden ook als command (&#039;&#039;&#039;nslcd -d&#039;&#039;&#039;) gestart worden. Om de bevragingen van de LDAP server wat te verminderen, kan &#039;&#039;&#039;nscd&#039;&#039;&#039; voor caching zorgen. Deze cache daemon heeft zijn eigen configuratie bestand: &#039;&#039;&#039;/etc/nslcd.conf&#039;&#039;&#039;. De default instellingen zijn goed; eventueel kan de logging naar een bestand gestuurd worden.&lt;br /&gt;
&lt;br /&gt;
Verbinding met de LDAP server kan met StartTLS beveiligd worden. Hier de inhoud van nslcd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /etc/nslcd.conf&lt;br /&gt;
# nslcd configuration file. See nslcd.conf(5)&lt;br /&gt;
# for details.&lt;br /&gt;
&lt;br /&gt;
# The user and group nslcd should run as.&lt;br /&gt;
uid nslcd&lt;br /&gt;
gid nslcd&lt;br /&gt;
&lt;br /&gt;
# log location and level&lt;br /&gt;
#log /var/log/nslcd.log debug&lt;br /&gt;
&lt;br /&gt;
# The location at which the LDAP server(s) should be reachable.&lt;br /&gt;
uri ldap://ldap2-int.hobby.nl/&lt;br /&gt;
&lt;br /&gt;
# The search base that will be used for all queries.&lt;br /&gt;
base dc=hcc,dc=nl&lt;br /&gt;
&lt;br /&gt;
# Other base mappings&lt;br /&gt;
base   group  ou=groups,dc=hcc,dc=nl&lt;br /&gt;
base   passwd ou=users,dc=hcc,dc=nl&lt;br /&gt;
base   shadow ou=users,dc=hcc,dc=nl&lt;br /&gt;
&lt;br /&gt;
# The search scope.&lt;br /&gt;
#scope sub&lt;br /&gt;
&lt;br /&gt;
# The LDAP protocol version to use.&lt;br /&gt;
ldap_version 3&lt;br /&gt;
&lt;br /&gt;
# The DN to bind with for normal lookups.&lt;br /&gt;
#binddn cn=annonymous,dc=example,dc=net&lt;br /&gt;
#bindpw secret&lt;br /&gt;
binddn cn=hobbynetlogin,ou=applicaties,dc=hcc,dc=nl&lt;br /&gt;
bindpw xxxxxxxxxxxxxxxxx&lt;br /&gt;
&lt;br /&gt;
# The DN used for password modifications by root.&lt;br /&gt;
#rootpwmoddn cn=admin,dc=example,dc=com&lt;br /&gt;
&lt;br /&gt;
# SSL options&lt;br /&gt;
ssl off&lt;br /&gt;
ssl start_tls&lt;br /&gt;
#tls_reqcert never&lt;br /&gt;
tls_cacertfile /etc/ssl/certs/cacert.org.pem&lt;br /&gt;
#tls_cert /etc/ssl/private/server.crt&lt;br /&gt;
#tls_key /etc/ssl/private/server.key&lt;br /&gt;
&lt;br /&gt;
# The minimum uid&lt;br /&gt;
nss_min_uid 300&lt;br /&gt;
&lt;br /&gt;
pam_authz_search (&amp;amp;(objectClass=posixAccount)(uid=$username)(|(host=$hostname)(host=$fqdn)(host=\\*)))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===users en groepen toevoegen===&lt;br /&gt;
Hiervoor moet &#039;&#039;&#039;ldapscripts&#039;&#039;&#039; zijn geïnstalleerd. Dit is het geval op de ldap-lb1 server. Dat levert de volgende extra commando&#039;s op:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldaprenamemachine&lt;br /&gt;
ldapadduser&lt;br /&gt;
ldapdeleteuserfromgroup&lt;br /&gt;
ldapfinger&lt;br /&gt;
ldapid&lt;br /&gt;
ldapgid&lt;br /&gt;
ldapmodifyuser&lt;br /&gt;
ldaprenameuser&lt;br /&gt;
lsldap&lt;br /&gt;
ldapaddusertogroup&lt;br /&gt;
ldapsetpasswd&lt;br /&gt;
ldapinit&lt;br /&gt;
ldapaddgroup&lt;br /&gt;
ldapdeletegroup&lt;br /&gt;
ldapmodifygroup&lt;br /&gt;
ldapdeletemachine&lt;br /&gt;
ldaprenamegroup&lt;br /&gt;
ldapaddmachine&lt;br /&gt;
ldapmodifymachine&lt;br /&gt;
ldapsetprimarygroup&lt;br /&gt;
ldapdeleteuser&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Meest gebruikt zijn &#039;&#039;&#039;ldapaddgroup, ldapadduser, ldapsetpasswd&#039;&#039;&#039;.  &lt;br /&gt;
Er zijn manpages maar er is ook uitgebreide uitleg in de [https://help.ubuntu.com/14.04/serverguide/openldap-server.html Ubuntu server guide]. Omdat wij het automatisch maken van de home dir uit hebben staan, moet die met de hand aangemaakt worden en moet de owner goed gezet worden.&lt;br /&gt;
&lt;br /&gt;
===host-based login===&lt;br /&gt;
Met een kleine uitbreiding in het schema van de LDAP server, kan host-based login gerealiseerd worden. Ook in de &#039;&#039;&#039;nslcd.conf&#039;&#039;&#039; is een uitbreiding nodig.&lt;br /&gt;
&lt;br /&gt;
In de LDAP server dient de objectClass &#039;&#039;&#039;hostObject&#039;&#039;&#039; aan de entries in de ou=users toegevoegd te worden. Deze (auxilary) objectClass brengt slechts één attribute met zich mee: &#039;&#039;&#039;host&#039;&#039;&#039;. De regel in nslcd.conf checkt of één van de waarden van &#039;&#039;&#039;host&#039;&#039;&#039; gelijk is aan de naam van de server waarop ingelogd wordt. De waarde &#039;&#039;&#039;*&#039;&#039;&#039; geldt als wildcard. Zie de regel &#039;&#039;&lt;br /&gt;
&#039;pam_authz_search&#039;&#039;&#039;&#039; in &#039;&#039;&#039;nslcd.conf&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Password aanpassen===&lt;br /&gt;
Via LDAP ingelogde gebruikers kunnen net als lokale gebruikers hun wachtwoord met &#039;&#039;&#039;passwd&#039;&#039;&#039; wijzigen. Wel moet aan de eisen in de LDAP ppolicy module voldaan worden.&lt;br /&gt;
&lt;br /&gt;
==PHP scripting==&lt;br /&gt;
Initieel worden alle leden op basis van hun hcc lidnummer ingelezen. Zodra de profielwizard doorlopen is, zal het lidnummer vervangen moeten worden door de gebruikersnaam. Er zijn verschillende php-scripts gemaakt, o.a. om snel alle kaderrollen te verwijderen. Php-scripts staan in de &#039;&#039;&#039;/usr/local/hobbynet/bin&#039;&#039;&#039; directory.&lt;br /&gt;
Voor de php-scripting zijn enkele php7.x pakketten nodig. Installeer deze met apt-get. Het gaat om:&lt;br /&gt;
* php-cli&lt;br /&gt;
* php-ldap&lt;br /&gt;
&lt;br /&gt;
== Apache authenticatie via LDAP ==&lt;br /&gt;
In plaats van .htpassword authenticatie, kan ook LDAP gebruikt worden. Activeer daartoe de Apache module&lt;br /&gt;
&#039;authnz_ldap&#039;.&lt;br /&gt;
 a2enmod authnz_ldap&lt;br /&gt;
Denk er om dat dit in een loadbalanced situatie op beide servers gedaan dient te worden!&lt;br /&gt;
&lt;br /&gt;
=== Voorbeeld van een LDAP configuratie in de Apache config ===&lt;br /&gt;
(alleen als voorbeeld, niet zo gebruiken!)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# // 1) Hobbynet webmaster&lt;br /&gt;
# // 2) Vraagbaak medewerker van een willekeurige groepering&lt;br /&gt;
# (|(hccRol=*#VRBK)(hccRol=HN#WM))&lt;br /&gt;
  &amp;lt;Location &amp;quot;/apps/vraagbaak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;RequireAll&amp;gt;&lt;br /&gt;
      Authname &amp;quot;HCC!vraagbaak (gebruik uw hcc.nl gebruikersnaam/wachtwoord)&amp;quot;&lt;br /&gt;
      AuthType Basic&lt;br /&gt;
      AuthBasicProvider ldap&lt;br /&gt;
      AuthLDAPUrl ldap://hcc-ldap-int.hobby.nl/ou=leden,dc=hcc,dc=nl?hccLogin??(|(hccRol=*#VRBK)(hccRol=HN#WM))(hccProfiel=TRUE) TLS&lt;br /&gt;
      require valid-user&lt;br /&gt;
    &amp;lt;/RequireAll&amp;gt;&lt;br /&gt;
  &amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hoe kan LDAP veilig gebruikt worden vanuit Apache===&lt;br /&gt;
Zet een script neer in de gebruikersomgeving, en gebruik mod_authz_external. Doe de controle vervolgens via de XML-RPC server.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zie [[Kadernet]] voor een voorbeeld.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== TODO lijst ==&lt;br /&gt;
&#039;&#039;Dit is een lijst in wording, graag aanvullen&#039;&#039; &lt;br /&gt;
* &#039;dun&#039; loadbalancer script maken om te controleren dat LDAP echt luistert&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=LDAP&amp;diff=79045</id>
		<title>LDAP</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=LDAP&amp;diff=79045"/>
		<updated>2020-12-09T16:30:23Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introductie==&lt;br /&gt;
Om een centrale plaats te hebben om authenticatie te doen voor www.hcc.nl en sub-sites zoals een forum, is gekozen voor het gebruik van een LDAP database/directory. Hierin wordt alles opgeslagen wat nodig is voor het functioneren van de site, inclusief NAW gegevens &amp;lt;strike&amp;gt;die op dit moment alleen opgeslagen worden t.b.v. het PC30 beheerscherm&amp;lt;/strike&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==LDAP server keuze==&lt;br /&gt;
De voor de hand liggende keuze is OpenLDAP. Echter zijn er geluiden gehoord dat OpenLDAP niet zou schalen. Alternatieven zijn b.v. 389server maar die is erg slecht gesupport onder Ubuntu. Voorlopig starten we met OpenLDAP. &lt;br /&gt;
&lt;br /&gt;
==Loadbalanced==&lt;br /&gt;
Er zijn twee servers (ldap-lb1 en ldap-lb2) die achter een loadbalancer in preferred server mode staan zodat het verkeer altijd naar server1 gestuurd wordt. Beide servers houden elkaar up-to-date. In de gewone situatie zullen alle reads en writes naar server1 gaan en server2 wordt door server1 bijgewerkt. Valt server1 weg, dan zal de loadbalancer overschakelen naar server2 waar vanaf dan de read en writes plaatsvinden. Zodra server1 weer beschikbaar is, wordt die bijgewerkt en zal weer master worden.&lt;br /&gt;
&lt;br /&gt;
==Installatie==&lt;br /&gt;
Installatie van OpenLDAP is simpel:&lt;br /&gt;
 aptitude install slapd ldap-utils&lt;br /&gt;
Omdat er gebruikgemaakt wordt van php scripts, is het ook nodig &#039;&#039;&#039;php-cli&#039;&#039;&#039; en &#039;&#039;&#039;php-ldap&#039;&#039;&#039; te installeren. De configuratie van OpenLDAP is sinds Karmic Koala iets gecompliceerder geworden. &#039;cn=config&#039; wordt nog steeds gebruikt maar tijdens installatie wordt alleen een skeleton configuratie geïnstalleerd. Er wordt niet meer gevraagd om een password tijdens de installatie en &amp;quot;dpkg-reconfigure slapd&amp;quot; zet alleen de skeleton configuratie terug. Je moet zelf de database, root dn en acl&#039;s opzetten (als root of met sudo). Run  &#039;&#039;&#039;dpkg-reconfigure slapd&#039;&#039;&#039; om terug te gaan naar een lege directory. &lt;br /&gt;
&lt;br /&gt;
UPDATE: in Oneiric Ocelot (11.10) is weer wel de mogelijkheid gegeven bij installatie een database aan te maken. Default wordt echter de fqdn hostname gebruikt. Bij dpkg-reconfigure kan het gewenste domein wel opnieuw gegeven worden. De initiële configuratie staat in /usr/share/slapd/slapd.init.ldif. &lt;br /&gt;
&lt;br /&gt;
UPDATE: bij de upgrade naar 16.04.1 zijn proefondervindelijk nog wat extra handelingen nodig gebleken.&amp;lt;br&amp;gt;&lt;br /&gt;
XML-RPC server updaten naar Ubuntu 16.04. WIP!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- apt-get install phpmyadmin&lt;br /&gt;
- apt-get install aptitude &lt;br /&gt;
- apt-get install php-xmlrpc&lt;br /&gt;
- apt-get install php-ldap&lt;br /&gt;
- phpenmod xml&lt;br /&gt;
- phpenmod mysqli&lt;br /&gt;
  (&#039;php -m&#039; toont de geactiveerde modules)&lt;br /&gt;
- apache2ctl restart&lt;br /&gt;
&lt;br /&gt;
phpmyadmin werkt niet:&lt;br /&gt;
- apt-get install php-mbstring&lt;br /&gt;
- apt-get install php-gettext&lt;br /&gt;
&lt;br /&gt;
ontbrekende pakketten volgens hjv:&lt;br /&gt;
&lt;br /&gt;
apt-get install aptitude &lt;br /&gt;
apt-get install phpmyadmin&lt;br /&gt;
apt-get install php-mbstring&lt;br /&gt;
apt-get install php-gettext&lt;br /&gt;
apt-get install php-xmlrpc&lt;br /&gt;
apt-get install php-ldap&lt;br /&gt;
apt-get install mysql-server&lt;br /&gt;
apt-get install ldapscripts&lt;br /&gt;
apt-get install php-xml&lt;br /&gt;
apt-get install slapd&lt;br /&gt;
apt-get install ldap-utils&lt;br /&gt;
a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
* Voer de laatste stappen uit, zoals beschreven in de Hobbynet wiki: *&lt;br /&gt;
&lt;br /&gt;
- openldap moet lid zijn van de groep ssl-cert!&lt;br /&gt;
apt-get install ssl-cert&lt;br /&gt;
adduser openldap ssl-cert&lt;br /&gt;
(of vi /etc/group&lt;br /&gt;
    ssl-cert:x:116:openldap)&lt;br /&gt;
&lt;br /&gt;
- Zorg dat de LDAP daemon bij de certificaten kan komen. &lt;br /&gt;
LET OP: op alle hobbynet servers staan de certificaten in /disk/site/etc/ssl/hobby.nl/&lt;br /&gt;
 chgrp ssl-cert /disk/site/etc/ssl/hobby.nl/hobby.nl.*&lt;br /&gt;
 chmod 440      /disk/site/etc/ssl/hobby.nl/hobby.nl.key&lt;br /&gt;
en dus niet langer&lt;br /&gt;
 chgrp ssl-cert /etc/ssl/private/hobby.nl.*&lt;br /&gt;
 chmod 440      /etc/ssl/private/hobby.nl.key&lt;br /&gt;
&lt;br /&gt;
- Vertel LDAP (en PHP) clients welke certificaten toegestaan zijn&lt;br /&gt;
(2017-09-23: verouderde info, niet langer in gebruik)&lt;br /&gt;
 vi /etc/ldap/ldap.conf&lt;br /&gt;
 TLS_CERT        /etc/ssl/private/hobby.nl.crt&lt;br /&gt;
 TLS_KEY         /etc/ssl/private/hobby.nl.key&lt;br /&gt;
 TLS_REQCERT     allow&lt;br /&gt;
&lt;br /&gt;
- mysql laat het bestand ibdata1 ongelimiteerd groeien (InnoDB bestanden)&lt;br /&gt;
 /etc/mysql/mysql.conf.d/innodb_file_per_table.cnf&lt;br /&gt;
 [mysql]&lt;br /&gt;
 innodb_file_per_table&lt;br /&gt;
&lt;br /&gt;
=============&lt;br /&gt;
Hobbynet aanpassingen&lt;br /&gt;
/etc/bash.bashrc&lt;br /&gt;
export http_proxy=http://squid-int.hobby.nl:3128&lt;br /&gt;
export https_proxy=http://squid-int.hobby.nl:3128&lt;br /&gt;
export ftp_proxy=http://squid-int.hobby.nl:3128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Locatie bestanden===&lt;br /&gt;
Om de benodigde bestanden op de server te krijgen zal scp gebruikt moet worden. Upload alles in een privé subdirectory. Copiëer daarna alles naar de juiste plaats en verander de owner in root.&lt;br /&gt;
&lt;br /&gt;
* Alle ldif em tmpl bestanden gaan naar /usr/local/hobbynet/lib&lt;br /&gt;
* init_ldap en andere scripts gaan naar /usr/local/hobbynet/bin&lt;br /&gt;
* alle data bestanden (dumps) en update ldifs gaan naar /usr/local/hobbynet/data&lt;br /&gt;
* etc/ldap/schema/hcc_schema.* gaan naar /etc/ldap/schema&lt;br /&gt;
* etc/ldap/schema/ppolicy.ldif gaat naar /etc/ldap/schema&lt;br /&gt;
&lt;br /&gt;
==Initiële database==&lt;br /&gt;
Direct na installatie (of na dpkg-reconfigure slapd) staat er een werkende doch lege directory in OpenLDAP. Access is alleen geregeld voor root. Dit heeft te maken met het feit dat vanaf Karmic Koala OpenLDAP alleen het minst noodzakelijke bevat om slapd te starten. Wordt echter init_ldap gebruikt dan wordt een werkende directory gemaakt met alle statische data (in diverse ou&#039;s) erin. Alleen zijn er geen leden geladen in de ou=leden en ou=inactieve_leden.&lt;br /&gt;
===slapd.init.ldif ===&lt;br /&gt;
Bij installatie/reconfiguratie wordt /usr/share/slapd/slapd.init.ldif ingelezen. Zie aldaar indien nodig.&lt;br /&gt;
&lt;br /&gt;
==init_ldap script==&lt;br /&gt;
Het lokale script init-ldap doet een reset van de initiële Openldap configuratie. Dit heeft tot gevolg dat de DIT dc=hcc,dc=nl met een rootDN &#039;&#039;&#039;cn=admin,dc=hcc,dc=nl&#039;&#039;&#039; steeds opnieuw aangemaakt wordt. Alles wat we toegevoegd/gewijzigd willen hebben in de cn=config volgt daarna. Dit wordt afgesloten met een restart van de slapd server. Het script &#039;&#039;&#039;restore_ldap&#039;&#039;&#039; laadt vervolgens de laatste dump terug. Bij wijzigingen aan het schema is het raadzaam altijd een &#039;&#039;&#039;dump_ldap&#039;&#039;&#039; te doen zodat een later een actuele dump kan worden teruggeladen.&lt;br /&gt;
&lt;br /&gt;
Het (plain text) password van cn=admin,dc=hcc,dc=nl moet bij het aanroepen van &#039;&#039;&#039;init_ldap&#039;&#039;&#039; op de commandline worden meegegeven. Tijdens de dpkg-reconfigure moet het password nog 2x gegeven worden. Lees eventueel ook de [http://www.openldap.org/doc/admin/ OpenLDAP Admin Guide].&lt;br /&gt;
&lt;br /&gt;
Het init_ldap script bevat allerlei logica om op meerdere ldap servers gedraaid te kunnen worden. In grote lijnen valt het script in een aantal blokken uiteen:&lt;br /&gt;
* voorbereidingen om &amp;quot;dpkg-reconfigure slapd&amp;quot; te draaien&lt;br /&gt;
* definities van input files&lt;br /&gt;
* check host&lt;br /&gt;
* bouwen van het skelet van de nieuwe directory&lt;br /&gt;
Zie voor details van de scripts &#039;&#039;&#039;init_ldap&#039;&#039;&#039;, &#039;&#039;&#039;dump_ldap&#039;&#039;&#039; en &#039;&#039;&#039;restore_ldap&#039;&#039;&#039; op een van de servers (in /usr/local/hobbynet/bin).&lt;br /&gt;
&lt;br /&gt;
==onderdelen van init_ldap==&lt;br /&gt;
Init_ldap is opgezet om stap voor stap de database op te bouwen. Hieronder een beschrijving van de losse ldif bestanden die ingelezen worden. Incidenteel wordt een ldif gewijzigd; kijk altijd in de actuele bestanden!&lt;br /&gt;
&lt;br /&gt;
===add-schema.ldif===&lt;br /&gt;
Omdat wij een aantal eigen attributes en Objectclasses hebben toegevoegd aam het schema, moeten deze aan OpenLDAP worden toegevoegd. Het schema moet nog worden omgezet naar ldif format. &lt;br /&gt;
* Hiertoe wordt het onderstaande schema in /etc/ldap/schema geplaatst als hcc_schema.schema. &lt;br /&gt;
* Vervolgens worden de stappen uitgevoerd zoals beschreven in de [https://help.ubuntu.com/11.10/serverguide/C/openldap-server.html Ubuntu Server guide], onder &#039;&#039;&#039;Modifying the slapd Configuration Database&#039;&#039;&#039;. &lt;br /&gt;
* De resulterende output file &#039;&#039;&#039;cn=hcc_schema.ldif&#039;&#039;&#039; moet dan nog naar /etc/ldap/schema/hcc_schema.ldif gecopieerd worden. &lt;br /&gt;
Als dit proces herhaald moet worden, start dan met een lege output directory en verwijder een eventueel achtergebleven cn=hcc_schema.ldif bestand. &lt;br /&gt;
&lt;br /&gt;
De extra schema&#039;s worden middels een &#039;&#039;&#039;include&#039;&#039;&#039; toegevoegd. &#039;&#039;&#039;Ppolicy&#039;&#039;&#039; is op gelijke wijze als &#039;&#039;&#039;hcc_schema&#039;&#039;&#039; tot .ldif geconverteerd. Alle stappen om een nieuwe &#039;&#039;&#039;hcc-schema.ldif&#039;&#039;&#039; te maken zijn gescript in &#039;&#039;&#039;upd_schema&#039;&#039;&#039;. In &#039;&#039;&#039;init_ldap&#039;&#039;&#039; wordt het eigen schema en de password policy geladen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## add-schema.ldif                   ##&lt;br /&gt;
#######################################&lt;br /&gt;
include: file:///etc/ldap/schema/hcc_schema.ldif&lt;br /&gt;
include: file:///etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
include: file:///etc/ldap/schema/ldapns.ldif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====schema updates====&lt;br /&gt;
Soms wordt een attribute toegevoegd of gewijzigd. Hiertoe dient het bestand hcc_schema.schema in /usr/local/hobbynet/etc/ldap/schema, gewijzigd te worden. Daarna dient er een ldif versie van gemaakt te worden. Gebruik hiervoor &#039;&#039;&#039;upd_schema.sh&#039;&#039;&#039; in dezelfde directory. De resulterende hcc_schema.ldif wordt in dit script naar /etc/ldap/schema gecopieërd. Bij grote wijzigingen is het aan te bevelen door de hele rebuild cycle te gaan (dump, init, restore). Bij triviale aanpassingen zou hcc_schema.ldif ook &#039;&#039;&#039;direct&#039;&#039;&#039; in de actieve directory geplaatst kunnen worden, gevolgd door slechts een &#039;&#039;&#039;service slapd restart&#039;&#039;&#039;. Gebruik hiervoor (blijf in de lokale schema directory):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;ldif_output/cn=config/cn=schema/cn={14}hcc_schema.ldif&amp;quot; &amp;quot;/etc/ldap/slapd.d/cn=config/cn=schema/cn={4}hcc_schema.ldif&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
LET OP: De nummers tussen accolades zijn bepaald door de volgorde van andere scripts! Zolang geen andere schema&#039;s worden toegevoegd zullen ze niet veranderen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ook kan met de ldap-tools gewerkt worden. Gebruik ldapsearch en ldapmodify, eventueel met de -f optie om een voorbereide serie opdrachten uit te voeren. Gebruik ldapsearch om eerst de structuur te vinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn={4}hcc_schema,cn=schema,cn=config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier een voorbeeld om een objectClass aan te passen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat pas_aan.ldif&lt;br /&gt;
dn: cn={4}hcc_schema,cn=schema,cn=config&lt;br /&gt;
changetype: modify&lt;br /&gt;
delete: olcObjectClasses&lt;br /&gt;
olcObjectClasses: {7}( 1.3.6.1.4.1.12795.2.8 NAME &#039;hccRelatieNaam&#039; \&lt;br /&gt;
   DESC &#039;Naam van een klant of partner&#039; SUP top STRUCTURAL MUST ( cn $userPassword )&lt;br /&gt;
MAY ( hccXmlIp4 $ hccXmlIp6 $ hccXmlAllow $ description ) )&lt;br /&gt;
-&lt;br /&gt;
add: olcObjectClasses&lt;br /&gt;
olcObjectClasses: {7}( 1.3.6.1.4.1.12795.2.8 NAME &#039;hccRelatieNaam&#039; \&lt;br /&gt;
   DESC &#039;Naam van een klant of partner&#039; SUP top STRUCTURAL MUST ( cn $userPassword )&lt;br /&gt;
MAY ( hccXmlIp4 $ hccXmlIp6 $ hccXmlAllow $ description $ hccIg ) )&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
$sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f pas_aan.ldif &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===modify_config.ldif===&lt;br /&gt;
Dit template dient om de SSL/TLS instelling toe te voegen in de ldap configuratie. Toegevoegd worden de certificaat gegevens om met TLS te kunnen werken. Het loglevel wordt op &#039;&#039;&#039;STATS&#039;&#039;&#039; gezet. Dit geeft niet teveel logging maar is toch goed bruikbaar. Om extra logging te krijgen op b.v. ACL&#039;s, verander olcLogLevel dan in &amp;quot;stats ACL&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Dit template wordt tijdens het draaien van het init_ldap script gecopieerd naar modify-config.ldif. Eventueel kan met place holders gewerkt worden (@...@), dit om op alle servers (ook test servers) één en hetzelfde script te kunnen gebruiken. Er zijn nog enkele van deze templates. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## modify-config.hobbynet            ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: cn=config&lt;br /&gt;
replace: olcLogLevel&lt;br /&gt;
olcLogLevel: stats&lt;br /&gt;
-&lt;br /&gt;
replace: olcTLSCACertificateFile&lt;br /&gt;
olcTLSCACertificateFile: /disk/site/etc/ssl/hobby.nl/CA-bundel.crt&lt;br /&gt;
-&lt;br /&gt;
replace: olcTLSCertificateFile&lt;br /&gt;
olcTLSCertificateFile: /disk/site/etc/ssl/hobby.nl/hobby.nl.crt&lt;br /&gt;
-&lt;br /&gt;
replace: olcTLSCertificateKeyFile&lt;br /&gt;
olcTLSCertificateKeyFile: /disk/site/etc/ssl/hobby.nl/hobby.nl.key&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Om de logging in een apart bestand te krijgen moet in /etc/rsyslog.d een extra bestand &#039;&#039;&#039;openldap.conf&#039;&#039;&#039; geplaatst worden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
local4.*   -/var/log/openldap.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tevens willen we logrotate op dit bestand. Plaats in /etc/logrotate.d het bestand &#039;&#039;&#039;openldap&#039;&#039;&#039; met de volgende inhoud&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/var/log/openldap.log&lt;br /&gt;
{&lt;br /&gt;
        rotate 4&lt;br /&gt;
        weekly&lt;br /&gt;
        missingok&lt;br /&gt;
        notifempty&lt;br /&gt;
        compress&lt;br /&gt;
        delaycompress&lt;br /&gt;
        sharedscripts&lt;br /&gt;
        postrotate&lt;br /&gt;
                reload rsyslog &amp;gt;/dev/null 2&amp;gt;&amp;amp;1 || true&lt;br /&gt;
        endscript&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===modify-hdb.ldif===&lt;br /&gt;
Hier worden de wijzigingen op de backend db gemaakt. Er worden een aantal attributes ge-indexeerd en de search SizeLimit wordt op &#039;&#039;&#039;unlimited&#039;&#039;&#039; gezet. De waarden die in DB_CONFIG moeten komen (Berkely DB parameters) staan ook in dit bestand. Deze versie is outdated. De ACL regels zijn drastisch gewijzigd. Raadpleeg altijd de laatste versie op de server zelf.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## modify-hdb.ldif                   ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: olcDatabase={1}hdb,cn=config&lt;br /&gt;
replace: olcAccess&lt;br /&gt;
#&lt;br /&gt;
# hobbynetlogin heeft lees rechten op ou=users&lt;br /&gt;
olcAccess: to attrs=@posixAccount,@posixGroup,@shadowAccount,@hostObject&lt;br /&gt;
  by dn=&amp;quot;cn=hobbynetlogin,ou=applicaties,dc=hcc,dc=nl&amp;quot; read&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# drupal/test moet hccOptIn kunnen schrijven vanaf de&lt;br /&gt;
# profiel pagina. Overige klanten kunnen hccOptin&lt;br /&gt;
# alleen lezen. self mag schrijven&lt;br /&gt;
olcAccess: to attrs=hccOptIn&lt;br /&gt;
  by self write&lt;br /&gt;
  by dn=&amp;quot;cn=drupal-hcc-nl,ou=klanten,dc=hcc,dc=nl&amp;quot; write&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# anonieme klanten moeten kunnen inloggen&lt;br /&gt;
# en mogen hun eigen password wijzigen&lt;br /&gt;
olcAccess: to attrs=userPassword,shadowLastChange&lt;br /&gt;
  by self write&lt;br /&gt;
  by anonymous auth&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# user mag enkele eigen attr wijzigen&lt;br /&gt;
olcAccess: to attrs=hccLogin,hccPseudoniem,hccKaderPassword&lt;br /&gt;
  by self write&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# beheerders hebben schrijfrechten op alles (updateDN)&lt;br /&gt;
# klanten hebben alleen lees rechten op alles (readDN)&lt;br /&gt;
# self mag  lezen&lt;br /&gt;
olcAccess: to *&lt;br /&gt;
  by self read&lt;br /&gt;
  by dn=&amp;quot;cn=xml-hoge-rechten,ou=applicaties,dc=hcc,dc=nl&amp;quot; write&lt;br /&gt;
  by dn=&amp;quot;cn=xml-lage-rechten,ou=applicaties,dc=hcc,dc=nl&amp;quot; read&lt;br /&gt;
  by dn.one=&amp;quot;ou=beheer,dc=hcc,dc=nl&amp;quot; write&lt;br /&gt;
  by dn.one=&amp;quot;ou=klanten,dc=hcc,dc=nl&amp;quot; read&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# helpdesk heeft leesrechten op ou=leden&lt;br /&gt;
olcAccess: to attrs=@hccOrgPerson,@hccKaderFunctie&lt;br /&gt;
  by dn.one=&amp;quot;ou=helpdesk,dc=hcc,dc=nl&amp;quot; read&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# partners mogen een paar attrs lezen&lt;br /&gt;
olcAccess: to attrs=hccLidNummer,hccPostcode,hccPostcodeZoekveld&lt;br /&gt;
  by dn.one=&amp;quot;ou=partners,dc=hcc,dc=nl&amp;quot; read&lt;br /&gt;
#&lt;br /&gt;
# iedereen moet (pseudo attr) entry en objectClass kunnen lezen&lt;br /&gt;
olcAccess: to attrs=entry,objectClass&lt;br /&gt;
  by * read&lt;br /&gt;
#&lt;br /&gt;
# vangnet: blokkeer alle toegang tot de overige attrs.&lt;br /&gt;
olcAccess: to *&lt;br /&gt;
  by * none&lt;br /&gt;
-&lt;br /&gt;
replace: olcDbDirectory&lt;br /&gt;
olcDbDirectory: /var/lib/ldap&lt;br /&gt;
-&lt;br /&gt;
replace: olcSizeLimit&lt;br /&gt;
olcSizeLimit: 100000&lt;br /&gt;
-&lt;br /&gt;
replace: olcDbCachesize&lt;br /&gt;
olcDbCachesize: 200000&lt;br /&gt;
-&lt;br /&gt;
replace: olcDbCheckpoint&lt;br /&gt;
olcDbCheckpoint: 1024 5&lt;br /&gt;
-&lt;br /&gt;
replace: olcDbConfig&lt;br /&gt;
olcDbConfig: set_cachesize 0 536870912 0&lt;br /&gt;
olcDbConfig: set_lk_max_objects 1000&lt;br /&gt;
olcDbConfig: set_lk_max_locks 1000&lt;br /&gt;
olcDbConfig: set_lk_max_lockers 1000&lt;br /&gt;
olcDbConfig: set_flags DB_LOG_AUTOREMOVE&lt;br /&gt;
olcDbConfig: set_flags DB_TXN_NOSYNC&lt;br /&gt;
-&lt;br /&gt;
replace: olcDbIDLcacheSize&lt;br /&gt;
olcDbIDLcacheSize: 600000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===modify_index.ldif===&lt;br /&gt;
Een kale configuratie is heel snel voor wat betreft het opnieuw vullen met gegevens. Bij het aanmaken van een verse LDAP database worden er dan ook zo min mogelijk indexen aangemaakt.&amp;lt;br&amp;gt;&lt;br /&gt;
Zodra de inhoud is ingelezen kunnen de &#039;echte&#039; indexen aangemaakt worden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## modify-index.ldif                 ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: olcDatabase={1}hdb,cn=config&lt;br /&gt;
replace: olcDbIndex&lt;br /&gt;
olcDbIndex: default pres,eq&lt;br /&gt;
olcDbIndex: objectClass,entryUUID,entryCSN eq&lt;br /&gt;
olcDbIndex: hccLidNummer,hccLogin,hccForumLogin eq&lt;br /&gt;
olcDbIndex: uid,uidNumber,gidNumber,memberUid,member eq&lt;br /&gt;
olcDbIndex: cn,host,hccPseudoniem,hccOptin,hccLocatie eq&lt;br /&gt;
olcDbIndex: sn,hccPostcodeZoekveld,hccIg,hccRegio eq,subfinal&lt;br /&gt;
olcDbIndex: hccRol,hccBezoek eq,pres,subfinal&lt;br /&gt;
olcDbIndex: hccBulletins pres&lt;br /&gt;
olcDbIndex: aboNummer eq&lt;br /&gt;
olcDbIndex: aboPostcodeZoekveld eq,subfinal&lt;br /&gt;
olcDbIndex: mail,mailHccnet,hccKaderMail pres,eq&lt;br /&gt;
olcDbIndex: hccProfiel pres&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ppolicy overlay===&lt;br /&gt;
* vanuit LDAP de minimale lengte van een wachtwoord afdwingen&lt;br /&gt;
* in LDAP SSHA versleuteling activeren&amp;lt;br&amp;gt;&lt;br /&gt;
(olcPPolicyHashCleartext: TRUE)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## add-ppolicy.ldif                  ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: cn=module, cn=config&lt;br /&gt;
cn: module&lt;br /&gt;
objectClass: olcModuleList&lt;br /&gt;
objectClass: top&lt;br /&gt;
olcModuleLoad: ppolicy&lt;br /&gt;
olcmodulepath: /usr/lib/ldap&lt;br /&gt;
&lt;br /&gt;
dn: olcOverlay=ppolicy,olcDatabase={1}hdb,cn=config&lt;br /&gt;
objectClass: olcOverlayConfig&lt;br /&gt;
objectClass: olcPPolicyConfig&lt;br /&gt;
olcOverlay: ppolicy&lt;br /&gt;
olcPPolicyDefault: cn=default,ou=policies,dc=hcc,dc=nl&lt;br /&gt;
olcPPolicyUseLockout: TRUE&lt;br /&gt;
olcPPolicyHashCleartext: TRUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The default ppolicy looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dn: cn=default,ou=policies,dc=hcc,dc=nl&lt;br /&gt;
objectClass: pwdPolicy&lt;br /&gt;
objectClass: device&lt;br /&gt;
cn: default&lt;br /&gt;
pwdCheckQuality: 1&lt;br /&gt;
pwdMinLength: 8&lt;br /&gt;
pwdAttribute: 2.5.4.35&lt;br /&gt;
pwdAllowUserChange: TRUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Syncrepl overlay===&lt;br /&gt;
Om twee servers met elkaar in sync te houden is nog wat aanvullende configuratie nodig. In onze situatie zal altijd maar één server bevraagd worden; bij een failover van de loadbancer zal dus de andere server gebruikt worden. Bij het teruggaan naar server 1 zal de directory bijgewerkt worden. Wij gebruiken de z.g. Mirror Mode. Zie de [http://www.openldap.org/doc/admin/ LDAP Admin Guide]. &#039;&#039;&#039;Mirror configuratie is specifiek per server!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## add-syncrepl.tmpl                 ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: cn=config&lt;br /&gt;
changetype: modify&lt;br /&gt;
replace: olcServerID&lt;br /&gt;
olcServerID: @SID@&lt;br /&gt;
&lt;br /&gt;
dn: cn=module{0},cn=config&lt;br /&gt;
changetype: modify&lt;br /&gt;
add: olcModuleLoad&lt;br /&gt;
olcModuleLoad: syncprov&lt;br /&gt;
&lt;br /&gt;
dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config&lt;br /&gt;
changetype: add&lt;br /&gt;
objectClass: olcOverlayConfig&lt;br /&gt;
objectClass: olcSyncProvConfig&lt;br /&gt;
olcOverlay: syncprov&lt;br /&gt;
olcSpCheckpoint: 100 5&lt;br /&gt;
olcSpSessionlog: 100&lt;br /&gt;
&lt;br /&gt;
dn: olcDatabase={1}hdb,cn=config&lt;br /&gt;
changetype: modify&lt;br /&gt;
add: olcSyncRepl&lt;br /&gt;
olcSyncRepl: rid=@RID@&lt;br /&gt;
  provider=ldap://@PROVIDER@&lt;br /&gt;
  binddn=&amp;quot;cn=admin,dc=hcc,dc=nl&amp;quot; bindmethod=simple credentials=&amp;quot;@PASSWORD@&amp;quot;&lt;br /&gt;
  searchbase=&amp;quot;dc=hcc,dc=nl&amp;quot;&lt;br /&gt;
  type=refreshAndPersist&lt;br /&gt;
  interval=00:00:00:10&lt;br /&gt;
  retry=&amp;quot;5 5 300 5&amp;quot;&lt;br /&gt;
  timeout=1&lt;br /&gt;
  starttls=yes&lt;br /&gt;
-&lt;br /&gt;
add: olcMirrorMode&lt;br /&gt;
olcMirrorMode: TRUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
De andere server krijgt ServerID 2 en de provider is het IP adres van de andere server.&lt;br /&gt;
&lt;br /&gt;
===Unique overlay===&lt;br /&gt;
Deze overlay dient er voor te zorgen dat o.a het attribuut hccLogin een unieke waarde bevat.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## add-unique.ldif                   ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: cn=module,cn=config&lt;br /&gt;
cn: module&lt;br /&gt;
objectclass: olcModuleList&lt;br /&gt;
objectclass: top&lt;br /&gt;
olcmoduleload: unique&lt;br /&gt;
olcmodulepath: /usr/lib/ldap&lt;br /&gt;
&lt;br /&gt;
dn: olcOverlay=unique,olcDatabase={1}hdb,cn=config&lt;br /&gt;
objectClass: olcOverlayConfig&lt;br /&gt;
objectClass: olcUniqueConfig&lt;br /&gt;
olcOverlay: unique&lt;br /&gt;
olcUniqueAttribute: uid uidNumber hccLogin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==SSL/TLS beveiliging==&lt;br /&gt;
Gebruik de juiste .pem bestanden in /etc/ssl/certs en /etc/ssl/private.&lt;br /&gt;
&lt;br /&gt;
We maken gebruik van een RapidSSL certificaat. Als dit niet standaard in Ubuntu bekend is, zet dan eerst GeoTrust_RapidSSL_-_ca-bundle.pem in de map /etc/ssl/certs neer. Voer nu een &#039;&#039;&#039;c_rehash .&#039;&#039;&#039; uit in /etc/ssl/certs om de cache te updaten (omdat GeoTrust_RapidSSL_-_ca-bundle.pem nieuw werd toegevoegd). &lt;br /&gt;
&lt;br /&gt;
De ownership is belangrijk. Hiertoe wordt de groep &amp;quot;openldap&amp;quot; toegevoegd aan de groep ssl-cert.&lt;br /&gt;
 adduser openldap ssl-cert&lt;br /&gt;
&lt;br /&gt;
Als dit fout gaat, doe dan eerst:&lt;br /&gt;
 apt-get install ssl-cert&lt;br /&gt;
&lt;br /&gt;
Zet het certificaat en de private key in de juiste groep:&lt;br /&gt;
 chgrp ssl-cert /etc/ssl/private/hobby.nl.*&lt;br /&gt;
 chmod 440      /etc/ssl/private/hobby.nl.key&lt;br /&gt;
&lt;br /&gt;
Het resultaat is dan als volgt:&lt;br /&gt;
 root@hcc-ldap-lb1:~# ls -l /etc/ssl/private/hcc* &lt;br /&gt;
 -rw-r--r-- 1 root     ssl-cert 1724 Nov 22 20:47 hobby.nl.crt&lt;br /&gt;
 -r--r----- 1 root     ssl-cert 1679 Nov 22 20:25 hobby.nl.key&lt;br /&gt;
&lt;br /&gt;
 root@hcc-ldap-lb1:~# grep openldap /etc/group&lt;br /&gt;
 ssl-cert:x:114:openldap&lt;br /&gt;
 openldap:x:118:&lt;br /&gt;
&lt;br /&gt;
2020.12.09: Op een nieuwe Ubuntu installatie staat apparmor standaard aan. Weg ermee!&lt;br /&gt;
 apt remove --assume-yes --purge apparmor&lt;br /&gt;
&amp;lt;strike&amp;gt;Per september 2017 staan de certificaten in /disk/site/etc/ssl/hobby.nl, net als op alle andere servers. Omdat apparmor actief is moet deze directory worden toegevoegd aan /etc/apparmor.d/local/usr.sbin.slapd. Die file ziet er dan als volgt uit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Site-specific additions and overrides for usr.sbin.slapd.&lt;br /&gt;
# For more details, please see /etc/apparmor.d/local/README.&lt;br /&gt;
#include &amp;lt;abstractions/ssl_certs&amp;gt;&lt;br /&gt;
/disk/site/etc/ssl/hobby.nl/ r,&lt;br /&gt;
/disk/site/etc/ssl/hobby.nl/* r,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Als Openldap ook op poort 636 benaderd wordt (naast TLS op 389), moet in /etc/default/slapd ldaps:/// opgenomen worden bij de SLAPD_SERVICES. Netstat -a dient dan 636 te laten zien voor zowel IPv4 als IPv6.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Om de cn=config te zien kan je het volgende commando gebruiken:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config&lt;br /&gt;
&lt;br /&gt;
of, wat botter maar korter:&lt;br /&gt;
cat /etc/ldap/slapd.d/cn\=config.ldif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Backup, initialize, restore==&lt;br /&gt;
Om het hele skelet van ldap in één keer te herstellen dient &#039;&#039;&#039;init_ldap&#039;&#039;&#039; gebruikt te worden. Als argument &#039;&#039;&#039;moet&#039;&#039;&#039; het admin beheer wachtwoord mee gegeven worden.&lt;br /&gt;
&lt;br /&gt;
===lokaal===&lt;br /&gt;
Backups kunnen gemaakt worden terwijl slapd draait maar geadviseerd wordt slapd te stoppen. Voor dumpen moet &#039;&#039;&#039;slapcat&#039;&#039;&#039; gebruikt worden. Backups kunnen gemaakt worden per database of een filter daarop, naar een ldif bestand.&lt;br /&gt;
 slapcat -l hcc-dump.ldif -b &amp;quot;dc=hcc,dc=nl&amp;quot;&lt;br /&gt;
Dit maakt een dump van alles onder &#039;&#039;&#039;dc=hcc,dc=nl&#039;&#039;&#039; naar het bestand hcc-dump.ldif. Ook is het mogelijk het database nummer te gebruiken, config is altijd nummer 0, hdb is gewoonlijk 1.&lt;br /&gt;
&lt;br /&gt;
Het &#039;&#039;&#039;dump_ldap&#039;&#039;&#039; script dumpt alle ou&#039;s in aparte .ldif bestanden; het omgekeerde doet &#039;&#039;&#039;restore_ldap&#039;&#039;&#039;.  &lt;br /&gt;
Terug inlezen kan alleen in een lege directory, dus direct nadat &#039;&#039;&#039;init_ldap&#039;&#039;&#039; is gedaan. Gebruik voor het terugplaatsen &#039;&#039;&#039;slapadd&#039;&#039;&#039;. Aan te bevelen is &#039;&#039;&#039;-c&#039;&#039;&#039; mee te geven zodat ondanks fouten doorgegaan wordt. &lt;br /&gt;
&lt;br /&gt;
Voor slapadd &#039;&#039;&#039;moet&#039;&#039;&#039; slapd gestopt zijn. Denk er om alvorens te slapd starten het ownership van de bestanden in /var/lib/ldap recht te zetten! (dit lijkt niet meer nodig te zijn vbs20130526)&lt;br /&gt;
 /etc/init.d/slapd stop&lt;br /&gt;
 slapadd -l hcc-dump.ldif -w -c &amp;gt;errors.txt&lt;br /&gt;
 chown openldap:openldap /var/lib/ldap/*&lt;br /&gt;
 /etc/init.d/slapd start&lt;br /&gt;
&lt;br /&gt;
===remote===&lt;br /&gt;
Er wordt dagelijks een encrypted remote backup gemaakt naar backup2bit. Zie voor meer info [[Encrypted_backup]]. Dit script maakt gebruik van unieke gpg keys. Op elke server is dus een eigen versie nodig van &#039;&#039;&#039;backup-encrypted&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Recente lokale backups zijn te vinden in &#039;&#039;&#039;/usr/local/hobbynet/tmp&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Verse ldap maken===&lt;br /&gt;
Transactie log bij het toevoegen van b.v. een nieuwe ou:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Op beide servers:&lt;br /&gt;
schema van test server gecopieerd en geactiveerd&lt;br /&gt;
dump-ldap gedraaid&lt;br /&gt;
systemctl stop slapd.service &lt;br /&gt;
&lt;br /&gt;
Er is nu géén ldap service! Werk dus snel...&lt;br /&gt;
&lt;br /&gt;
op ldap-lb1:&lt;br /&gt;
init-ldap.sh &amp;lt;adminpw&amp;gt;&lt;br /&gt;
restore-ldap.sh&lt;br /&gt;
wacht op indexering (tot slapd uit top verdwijnt)&lt;br /&gt;
Slapd service is nu in de lucht op ldap-lb1&lt;br /&gt;
systemctl stop slapd.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
op ldap-lb2:&lt;br /&gt;
init-ldap.sh &amp;lt;adminpw&amp;gt;&lt;br /&gt;
restore-ldap.sh&lt;br /&gt;
wacht op indexering (tot slapd uit top verdwijnt)&lt;br /&gt;
Slapd service is nu in de lucht op ldap-lb2&lt;br /&gt;
&lt;br /&gt;
op ldap-lb1:&lt;br /&gt;
systemctl start slapd.service&lt;br /&gt;
Beide slapd servers zijn in de lucht en moeten synchroniseren.&lt;br /&gt;
&lt;br /&gt;
op beide servers:&lt;br /&gt;
check replicatie (netstat en functioneel)&lt;br /&gt;
&lt;br /&gt;
root@ldap-lb1:/usr/local/hobbynet/bin# netstat -n | grep 389&lt;br /&gt;
tcp        0      0 172.31.8.4:36838        172.31.8.5:389          ESTABLISHED&lt;br /&gt;
tcp        0      0 172.31.8.4:36836        172.31.8.5:389          ESTABLISHED&lt;br /&gt;
tcp        0      0 172.31.8.4:389          172.31.8.5:58112        ESTABLISHED&lt;br /&gt;
tcp        0      0 172.31.8.4:389          172.31.8.5:58114        ESTABLISHED&lt;br /&gt;
&lt;br /&gt;
Functioneel door met ADS op beide servers in te loggen en een willekeurig veld in je eigen entry te wijzigen op lb1. Kijk of het gebeurd is op lb2 en wijzig het daar terug. Check op de andere server of het gebeurd is. Er kan een zekere vertraging in optreden.&lt;br /&gt;
&lt;br /&gt;
Stel er is een nieuwe ou gemaakt: denk aan het bij werken van de dump en restore scripts.&lt;br /&gt;
&lt;br /&gt;
update dump-ldap.sh en restore-ldap.sh met de nieuwe ou&lt;br /&gt;
&lt;br /&gt;
op ldap-lb1:&lt;br /&gt;
export tarieven.ldif op test server en import op ldap-lb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==crontab==&lt;br /&gt;
 # script dat updates ophaalt (maar niet installeert), zodat nagios ze ook detecteert&lt;br /&gt;
 0 9 * * * /usr/local/hobbynet/bin/upd_srv &amp;gt;/dev/null&lt;br /&gt;
 0 18 * * * /usr/local/hobbynet/bin/upd_srv &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
==LDAP Clients==&lt;br /&gt;
Er zijn meerdere LDAP clients. De meest populaire zijn Apache Directory Studio (&amp;quot;ADS&amp;quot;) en phpLdapAdmin (&amp;quot;PLA&amp;quot;).&amp;lt;br&amp;gt;&lt;br /&gt;
De eerste is veel uitgbreider maar vereist een Java Runtime Environment (&amp;quot;JRE&amp;quot;). Onder Windows is dat JRE(13) of (open)JDK-(13).&amp;lt;br&amp;gt;&lt;br /&gt;
PhpLdapAdmin draait onder apache. Beide clients hebben wat configuratie nodig; Bij ADS gaat alles stapsgewijs in de GUI. Voor PLA moet /etc/phpldapadmin/config.php aangepast worden. &lt;br /&gt;
&lt;br /&gt;
Binnen Hobbynet wordt uitsluitend gebruik gemaakt van ADS.&lt;br /&gt;
&lt;br /&gt;
===StartTLS===&lt;br /&gt;
Aanbevolen wordt StartTLS op poort 389 te gebruiken. Alternatief is LDAPS op poort 636 maar dat is deprecated. &lt;br /&gt;
&lt;br /&gt;
Voor beide clients is het belangrijk dat de root certificaten gevonden kunnen worden. Als Apache al een server cert kent zou PLA geen probleem mogen zijn. ADS maakt deel uit van de JRE. JRE moet dus de root certificaten kunnen vinden.&lt;br /&gt;
&lt;br /&gt;
===ADS onder Windows===&lt;br /&gt;
&amp;lt;i&amp;gt;2019-10-31 HJV: Oude info, als referentie leuk, maar niet meer relevant&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Onder Windows moet met &#039;&#039;&#039;keytool.exe&#039;&#039;&#039; gewerkt worden. De uitleg heb ik van  [http://www.talkingtree.com/blog/index.cfm?mode=entry&amp;amp;entry=25AA75A4-45A6-2844-7CA3EECD842DB576 hier]. Het komt erop neer dat de .pem of .der certificaten van CAcert in de keystore gezet worden. Kopieer deze certificaat bestanden in C:\Program Files\Java\jre6\lib\security (jre6 kan ondertussen jre7 zijn in Vista of W7). Doe dan in een terminal window:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Haal de benodigde bestanden op (op een Linux systeem):&lt;br /&gt;
wget http://www.cacert.org/certs/root.der -O root.der&lt;br /&gt;
wget http://www.cacert.org/certs/class3.der -O class3.der&lt;br /&gt;
copieer de bestanden naar de Windows omgeving in C:\Program Files (x86)\Java\jre6\lib\security.&lt;br /&gt;
&lt;br /&gt;
Open een commandwindow:&lt;br /&gt;
cd C:\Program Files (x86)\Java\jre6\lib\security&lt;br /&gt;
..\..\bin\keytool -import -trustcacerts -keystore cacerts -storepass changeit -noprompt -alias cacertclass1 -file root.der&lt;br /&gt;
..\..\bin\keytool -import -trustcacerts -keystore cacerts -storepass changeit -noprompt -alias cacertclass3 -file class3.der&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
De Windows JRE is ook te managen via het Java applet in het configuratiescherm. Toevoegen van root certificaten lijkt niet mogelijk voor system; wel voor user. Niet verder naar gezocht.&lt;br /&gt;
&lt;br /&gt;
===ADS onder Linux===&lt;br /&gt;
Apache Directory Studio laat zich uit een tarball installeren. Dit kan geheel in userspace; er is geen make install o.i.d. nodig. ADS loopt vanuit de lokatie waar het uitgepakt is.&lt;br /&gt;
&lt;br /&gt;
===ADS gebruik===&lt;br /&gt;
ADS kan erg handig zijn voor het snel dumpen van hele ou&#039;s in .ldif formaat. Zo&#039;n dump kan direct op een andere server worden ingelezen.&lt;br /&gt;
&lt;br /&gt;
===PhpLdapAdmin onder Linux===&lt;br /&gt;
Voor ldap clients (phpldapadmin) dient de client configuratie goed te zijn. Deze bevindt zich in /etc/ldap/ldap.conf. Het is voldoende als de directory met de root certificaten bekend is. Deze client configuratie is meer php-ldap gebonden dan alleen voor PLA. Ook de Drupal LDAPauth module werkt met ditzelfde beatand. Zie ook de [http://phpldapadmin.sourceforge.net/wiki/index.php/Server:server:tls phpldapadmin wiki].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# LDAP Defaults&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# See ldap.conf(5) for details&lt;br /&gt;
# This file should be world readable but not world writable.&lt;br /&gt;
&lt;br /&gt;
#BASE   dc=example,dc=com&lt;br /&gt;
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666&lt;br /&gt;
&lt;br /&gt;
#SIZELIMIT      12&lt;br /&gt;
#TIMELIMIT      15&lt;br /&gt;
#DEREF          never&lt;br /&gt;
TLS_CACERT      /etc/ssl/certs/CAcert_org.pem&lt;br /&gt;
TLS_CERT        /etc/ssl/private/hobby.nl.crt&lt;br /&gt;
TLS_KEY         /etc/ssl/private/hobby.nl.key&lt;br /&gt;
TLS_REQCERT     allow&lt;br /&gt;
#TLS_REQCERT never&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Denk er wel aan na wijzigingen Apache te herstarten.&lt;br /&gt;
===PAM en NSS via LDAP===&lt;br /&gt;
Het inloggen van gebruikers kan ook via een LDAP server en client geschieden. Hiervoor dienen enkele pakketten geïnstalleerd en geconfigureerd te worden. Er zijn wijzigingen nodig in /etc/nsswitch.conf en de /etc/pam.d/common-* bestanden. Beide zijn via dedicated tools aan te passen.&lt;br /&gt;
&lt;br /&gt;
Installeer &#039;&#039;&#039;libnss-ldapd&#039;&#039;&#039; om de benodigde libraries te verkrijgen. Apt-get zal tevens &#039;&#039;&#039;libpam-ldapd&#039;&#039;&#039;, &#039;&#039;&#039;nslcd&#039;&#039;&#039; en &#039;&#039;&#039;nscd&#039;&#039;&#039; binnen brengen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install libnss-ldapd auth-client-config ldap-utils&lt;br /&gt;
The following extra packages will be installed:&lt;br /&gt;
    libpam-ldapd nscd nslcd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Libnss-ldapd is een doorontwikkeling van libnss-ldap en bevat meerdere verbeteringen. Zie: [http://arthurdejong.org/nss-pam-ldapd/ deze site] van de ontwikkelaar. Bij de installatie wordt een user &#039;&#039;&#039;nslcd&#039;&#039;&#039; aangemaakt; denk erom die in de .tmpl bestanden te zetten!&lt;br /&gt;
  &lt;br /&gt;
nsswitch.conf laat zich configureren via &#039;&#039;&#039;auth-client-config&#039;&#039;&#039; maar lac_ldap is alleen aanwezig als &#039;&#039;&#039;ldap-auth-config&#039;&#039;&#039; ook is geinstalleerd. Zo niet gebruik dan de tweede regel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth-client-config -t nss -p lac_ldap&lt;br /&gt;
auth-client-config -t nss -p ldap_example&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Het resultaat is dat nsswitch.conf zowel in files (/etc/passwd etc.) zoekt als in ldap.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /etc/nsswitch.conf&lt;br /&gt;
#&lt;br /&gt;
# Example configuration of GNU Name Service Switch functionality.&lt;br /&gt;
# If you have the `glibc-doc-reference&#039; and `info&#039; packages installed, try:&lt;br /&gt;
# `info libc &amp;quot;Name Service Switch&amp;quot;&#039; for information about this file.&lt;br /&gt;
&lt;br /&gt;
# pre_auth-client-config # passwd:         compat&lt;br /&gt;
passwd: files ldap&lt;br /&gt;
# pre_auth-client-config # group:          compat&lt;br /&gt;
group: files ldap&lt;br /&gt;
# pre_auth-client-config # shadow:         compat&lt;br /&gt;
shadow: files ldap&lt;br /&gt;
&lt;br /&gt;
hosts:          files dns&lt;br /&gt;
networks:       files&lt;br /&gt;
&lt;br /&gt;
protocols:      db files&lt;br /&gt;
services:       db files&lt;br /&gt;
ethers:         db files&lt;br /&gt;
rpc:            db files&lt;br /&gt;
&lt;br /&gt;
# pre_auth-client-config # netgroup:       nis&lt;br /&gt;
netgroup: nis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Het aanpassen van de PAM bestanden gaat sinds enige releases met &#039;&#039;&#039;pam-auth-update&#039;&#039;&#039;. Kies in het menu voor zowel unix als ldap. Default wordt nu ldap authenticatie gebruikt voor uid &amp;gt;= 1000. Bij Hobbynet willen we vanaf 300 ldap gebruiken. Door een licht gemodificeerde versie van /usr/share/pam-configs/ldap te maken (ldap-hobbynet), kan ook voor de hobbynet instelling gekozen worden. Dit is de ldap-hobbynet versie:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: LDAP Authentication (uid&amp;gt;300)&lt;br /&gt;
Default: yes&lt;br /&gt;
Priority: 128&lt;br /&gt;
Auth-Type: Primary&lt;br /&gt;
Auth-Initial:&lt;br /&gt;
        [success=end default=ignore]    pam_ldap.so minimum_uid=300&lt;br /&gt;
Auth:&lt;br /&gt;
        [success=end default=ignore]    pam_ldap.so minimum_uid=300 use_first_pass&lt;br /&gt;
Account-Type: Additional&lt;br /&gt;
Account:&lt;br /&gt;
        [success=ok new_authtok_reqd=done ignore=ignore user_unknown=ignore authinfo_unavail=ignore default=bad]        pam_ldap.so minimum_uid=300&lt;br /&gt;
Password-Type: Primary&lt;br /&gt;
Password-Initial:&lt;br /&gt;
        [success=end default=ignore]    pam_ldap.so minimum_uid=300&lt;br /&gt;
Password:&lt;br /&gt;
        [success=end default=ignore]    pam_ldap.so minimum_uid=300 try_first_pass&lt;br /&gt;
Session-Type: Additional&lt;br /&gt;
Session:&lt;br /&gt;
        [success=ok default=ignore]     pam_ldap.so minimum_uid=300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dit is in een standaard opzet van LDAP voldoende om zowel lokale gebruikers als gebruikers opgeslagen in LDAP, te laten inloggen en hun password te laten wijzigen. In de Hobbynet setup moet er echter nog meer gebeuren in de ACL&#039;s van de LDAP server configuratie. Omdat Hobbynet de laatste ACL regel heeft gewijzigd in een &#039;&#039;&#039;deny-all&#039;&#039;&#039;, is er een helper of proxy account nodig dat read access heeft of een aantal cruciale velden in de posixAccount objectClass. Zie verder de lsiting van nslcd.conf.&lt;br /&gt;
&lt;br /&gt;
Libnss-ldapd en libpam-ldapd hebben een gezamelijke daemon &#039;&#039;&#039;nslcd&#039;&#039;&#039; die z&#039;n configuratie uit &#039;&#039;&#039;/etc/nslcd.conf&#039;&#039;&#039; haalt. Hierin is ook een voorziening voor het helper account. Aan het eind vande &#039;&#039;&#039;nslcd.conf&#039;&#039;&#039; staat de voorziening voor host-based login. Als het attribute &#039;&#039;&#039;host&#039;&#039;&#039; de fqdn of alleen de host naam bevat, bepaald dat of inloggen op die host mogelijk is. &#039;&#039;&#039;*&#039;&#039;&#039; staat inloggen op alle hosts toe.&lt;br /&gt;
&lt;br /&gt;
Eventueel kan het daemon proces voor debugging doeleinden ook als command (&#039;&#039;&#039;nslcd -d&#039;&#039;&#039;) gestart worden. Om de bevragingen van de LDAP server wat te verminderen, kan &#039;&#039;&#039;nscd&#039;&#039;&#039; voor caching zorgen. Deze cache daemon heeft zijn eigen configuratie bestand: &#039;&#039;&#039;/etc/nslcd.conf&#039;&#039;&#039;. De default instellingen zijn goed; eventueel kan de logging naar een bestand gestuurd worden.&lt;br /&gt;
&lt;br /&gt;
Verbinding met de LDAP server kan met StartTLS beveiligd worden. Hier de inhoud van nslcd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /etc/nslcd.conf&lt;br /&gt;
# nslcd configuration file. See nslcd.conf(5)&lt;br /&gt;
# for details.&lt;br /&gt;
&lt;br /&gt;
# The user and group nslcd should run as.&lt;br /&gt;
uid nslcd&lt;br /&gt;
gid nslcd&lt;br /&gt;
&lt;br /&gt;
# log location and level&lt;br /&gt;
#log /var/log/nslcd.log debug&lt;br /&gt;
&lt;br /&gt;
# The location at which the LDAP server(s) should be reachable.&lt;br /&gt;
uri ldap://ldap2-int.hobby.nl/&lt;br /&gt;
&lt;br /&gt;
# The search base that will be used for all queries.&lt;br /&gt;
base dc=hcc,dc=nl&lt;br /&gt;
&lt;br /&gt;
# Other base mappings&lt;br /&gt;
base   group  ou=groups,dc=hcc,dc=nl&lt;br /&gt;
base   passwd ou=users,dc=hcc,dc=nl&lt;br /&gt;
base   shadow ou=users,dc=hcc,dc=nl&lt;br /&gt;
&lt;br /&gt;
# The search scope.&lt;br /&gt;
#scope sub&lt;br /&gt;
&lt;br /&gt;
# The LDAP protocol version to use.&lt;br /&gt;
ldap_version 3&lt;br /&gt;
&lt;br /&gt;
# The DN to bind with for normal lookups.&lt;br /&gt;
#binddn cn=annonymous,dc=example,dc=net&lt;br /&gt;
#bindpw secret&lt;br /&gt;
binddn cn=hobbynetlogin,ou=applicaties,dc=hcc,dc=nl&lt;br /&gt;
bindpw xxxxxxxxxxxxxxxxx&lt;br /&gt;
&lt;br /&gt;
# The DN used for password modifications by root.&lt;br /&gt;
#rootpwmoddn cn=admin,dc=example,dc=com&lt;br /&gt;
&lt;br /&gt;
# SSL options&lt;br /&gt;
ssl off&lt;br /&gt;
ssl start_tls&lt;br /&gt;
#tls_reqcert never&lt;br /&gt;
tls_cacertfile /etc/ssl/certs/cacert.org.pem&lt;br /&gt;
#tls_cert /etc/ssl/private/server.crt&lt;br /&gt;
#tls_key /etc/ssl/private/server.key&lt;br /&gt;
&lt;br /&gt;
# The minimum uid&lt;br /&gt;
nss_min_uid 300&lt;br /&gt;
&lt;br /&gt;
pam_authz_search (&amp;amp;(objectClass=posixAccount)(uid=$username)(|(host=$hostname)(host=$fqdn)(host=\\*)))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===users en groepen toevoegen===&lt;br /&gt;
Hiervoor moet &#039;&#039;&#039;ldapscripts&#039;&#039;&#039; zijn geïnstalleerd. Dit is het geval op de ldap-lb1 server. Dat levert de volgende extra commando&#039;s op:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldaprenamemachine&lt;br /&gt;
ldapadduser&lt;br /&gt;
ldapdeleteuserfromgroup&lt;br /&gt;
ldapfinger&lt;br /&gt;
ldapid&lt;br /&gt;
ldapgid&lt;br /&gt;
ldapmodifyuser&lt;br /&gt;
ldaprenameuser&lt;br /&gt;
lsldap&lt;br /&gt;
ldapaddusertogroup&lt;br /&gt;
ldapsetpasswd&lt;br /&gt;
ldapinit&lt;br /&gt;
ldapaddgroup&lt;br /&gt;
ldapdeletegroup&lt;br /&gt;
ldapmodifygroup&lt;br /&gt;
ldapdeletemachine&lt;br /&gt;
ldaprenamegroup&lt;br /&gt;
ldapaddmachine&lt;br /&gt;
ldapmodifymachine&lt;br /&gt;
ldapsetprimarygroup&lt;br /&gt;
ldapdeleteuser&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Meest gebruikt zijn &#039;&#039;&#039;ldapaddgroup, ldapadduser, ldapsetpasswd&#039;&#039;&#039;.  &lt;br /&gt;
Er zijn manpages maar er is ook uitgebreide uitleg in de [https://help.ubuntu.com/14.04/serverguide/openldap-server.html Ubuntu server guide]. Omdat wij het automatisch maken van de home dir uit hebben staan, moet die met de hand aangemaakt worden en moet de owner goed gezet worden.&lt;br /&gt;
&lt;br /&gt;
===host-based login===&lt;br /&gt;
Met een kleine uitbreiding in het schema van de LDAP server, kan host-based login gerealiseerd worden. Ook in de &#039;&#039;&#039;nslcd.conf&#039;&#039;&#039; is een uitbreiding nodig.&lt;br /&gt;
&lt;br /&gt;
In de LDAP server dient de objectClass &#039;&#039;&#039;hostObject&#039;&#039;&#039; aan de entries in de ou=users toegevoegd te worden. Deze (auxilary) objectClass brengt slechts één attribute met zich mee: &#039;&#039;&#039;host&#039;&#039;&#039;. De regel in nslcd.conf checkt of één van de waarden van &#039;&#039;&#039;host&#039;&#039;&#039; gelijk is aan de naam van de server waarop ingelogd wordt. De waarde &#039;&#039;&#039;*&#039;&#039;&#039; geldt als wildcard. Zie de regel &#039;&#039;&lt;br /&gt;
&#039;pam_authz_search&#039;&#039;&#039;&#039; in &#039;&#039;&#039;nslcd.conf&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Password aanpassen===&lt;br /&gt;
Via LDAP ingelogde gebruikers kunnen net als lokale gebruikers hun wachtwoord met &#039;&#039;&#039;passwd&#039;&#039;&#039; wijzigen. Wel moet aan de eisen in de LDAP ppolicy module voldaan worden.&lt;br /&gt;
&lt;br /&gt;
==PHP scripting==&lt;br /&gt;
Initieel worden alle leden op basis van hun hcc lidnummer ingelezen. Zodra de profielwizard doorlopen is, zal het lidnummer vervangen moeten worden door de gebruikersnaam. Er zijn verschillende php-scripts gemaakt, o.a. om snel alle kaderrollen te verwijderen. Php-scripts staan in de &#039;&#039;&#039;/usr/local/hobbynet/bin&#039;&#039;&#039; directory.&lt;br /&gt;
Voor de php-scripting zijn enkele php7.x pakketten nodig. Installeer deze met apt-get. Het gaat om:&lt;br /&gt;
* php-cli&lt;br /&gt;
* php-ldap&lt;br /&gt;
&lt;br /&gt;
== Apache authenticatie via LDAP ==&lt;br /&gt;
In plaats van .htpassword authenticatie, kan ook LDAP gebruikt worden. Activeer daartoe de Apache module&lt;br /&gt;
&#039;authnz_ldap&#039;.&lt;br /&gt;
 a2enmod authnz_ldap&lt;br /&gt;
Denk er om dat dit in een loadbalanced situatie op beide servers gedaan dient te worden!&lt;br /&gt;
&lt;br /&gt;
=== Voorbeeld van een LDAP configuratie in de Apache config ===&lt;br /&gt;
(alleen als voorbeeld, niet zo gebruiken!)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# // 1) Hobbynet webmaster&lt;br /&gt;
# // 2) Vraagbaak medewerker van een willekeurige groepering&lt;br /&gt;
# (|(hccRol=*#VRBK)(hccRol=HN#WM))&lt;br /&gt;
  &amp;lt;Location &amp;quot;/apps/vraagbaak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;RequireAll&amp;gt;&lt;br /&gt;
      Authname &amp;quot;HCC!vraagbaak (gebruik uw hcc.nl gebruikersnaam/wachtwoord)&amp;quot;&lt;br /&gt;
      AuthType Basic&lt;br /&gt;
      AuthBasicProvider ldap&lt;br /&gt;
      AuthLDAPUrl ldap://hcc-ldap-int.hobby.nl/ou=leden,dc=hcc,dc=nl?hccLogin??(|(hccRol=*#VRBK)(hccRol=HN#WM))(hccProfiel=TRUE) TLS&lt;br /&gt;
      require valid-user&lt;br /&gt;
    &amp;lt;/RequireAll&amp;gt;&lt;br /&gt;
  &amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hoe kan LDAP veilig gebruikt worden vanuit Apache===&lt;br /&gt;
Zet een script neer in de gebruikersomgeving, en gebruik mod_authz_external. Doe de controle vervolgens via de XML-RPC server.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zie [[Kadernet]] voor een voorbeeld.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== TODO lijst ==&lt;br /&gt;
&#039;&#039;Dit is een lijst in wording, graag aanvullen&#039;&#039; &lt;br /&gt;
* &#039;dun&#039; loadbalancer script maken om te controleren dat LDAP echt luistert&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Cron_jobs&amp;diff=79043</id>
		<title>Cron jobs</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Cron_jobs&amp;diff=79043"/>
		<updated>2020-12-08T16:21:54Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Beschrijving =&lt;br /&gt;
Op deze pagina staan de door hobbynet aangemaakte cronjobs, met een korte omschrijving en wanneer het draait zodat je in 1 overzicht kan zien waar wat en wanneer draait.&lt;br /&gt;
&lt;br /&gt;
= servers specifiek=&lt;br /&gt;
&lt;br /&gt;
== scripting ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| scripting&lt;br /&gt;
| /usr/local/hobbynet/bin/upd_servers&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze, en herstart de firewalls en memcache&lt;br /&gt;
| 06:45&amp;lt;br&amp;gt;18:45&lt;br /&gt;
| 2x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| scripting&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y &amp;gt;/dev/null&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:01&amp;lt;br&amp;gt;18:01&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| scripting&lt;br /&gt;
| /usr/local/hobbynet/bin/sync_all&lt;br /&gt;
| root&lt;br /&gt;
| Update de gecentraliseerde webserver config op loadbalanced servers&lt;br /&gt;
| 06:30&lt;br /&gt;
| 1x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| scripting&lt;br /&gt;
| /usr/local/hobbynet/bin/sync_fw&lt;br /&gt;
| root&lt;br /&gt;
| Update en herstart firewall op machines die geen nfs mount hebben&lt;br /&gt;
| 00:42&lt;br /&gt;
| 1x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== domein ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| domein&lt;br /&gt;
| /usr/sbin/nsd-control write&lt;br /&gt;
| root&lt;br /&gt;
| Schrijf alle slave zones uit geheugen naar file&lt;br /&gt;
| ieder uur &lt;br /&gt;
| 24x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| domein&lt;br /&gt;
| /usr/local/hobbynet/opendnssec/ods-dsseen --all&lt;br /&gt;
| root&lt;br /&gt;
| Activeer nog niet geactiveerde dnssec sleutels&lt;br /&gt;
| *:30&lt;br /&gt;
| 24x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| domein&lt;br /&gt;
| /usr/local/hobbynet/opendnssec/ods-dsseen --really-all&lt;br /&gt;
| root&lt;br /&gt;
| Activeer nog niet geactiveerde dnssec sleutels voor eerste keer en loop echt alle zones na&lt;br /&gt;
| 01:20&lt;br /&gt;
| 1x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| domein&lt;br /&gt;
| /usr/local/hobbynet/opendnssec/sidn/update-prod-from-live.php&lt;br /&gt;
| root&lt;br /&gt;
| Update alle DNS zones op basis gegevens van SIDN&lt;br /&gt;
| 22:15&lt;br /&gt;
| 1x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| domein&lt;br /&gt;
| /usr/local/hobbynet/opendnssec/transip/update-prod-from-transip.php&lt;br /&gt;
| root&lt;br /&gt;
| Update alle DNS zones op basis gegevens van Transip&lt;br /&gt;
| 22:15&lt;br /&gt;
| 1x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ldap-lb1 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/sync_hobbynetfw_2.sh&lt;br /&gt;
| root&lt;br /&gt;
| Synchroniseer firewall regels van ldap-lb1 naar ldap-lb2 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039; moet draaien voor de firewall restart &#039;&#039;&#039;&lt;br /&gt;
| 05:55&amp;lt;br&amp;gt;11:55&amp;lt;br&amp;gt;17:55&amp;lt;br&amp;gt;23:55&lt;br /&gt;
| 4 x per dag &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /etc/init.d/hobby-firewall restart&lt;br /&gt;
| root&lt;br /&gt;
| Herstart Firewall &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039; moet draaien na de firewall synchronisatie job &#039;&#039;&#039;&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;12:00&amp;lt;br&amp;gt;18:00&amp;lt;br&amp;gt;00:00&lt;br /&gt;
| 4 x per dag &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y &amp;gt;/dev/null&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/local/backup-encrypted.bash &amp;gt;&amp;gt;/var/log/backup_encrypted.log&lt;br /&gt;
| root&lt;br /&gt;
| Encrypted backup naar Backup2bit&lt;br /&gt;
| 23:45&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/sync_hobbynetbin_2.sh&lt;br /&gt;
| root&lt;br /&gt;
| Sync bin dir naar ldap-lb2&lt;br /&gt;
| 23:50&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/sync_hobbynetetc_2.sh&lt;br /&gt;
| root&lt;br /&gt;
| Sync etc dir naar ldap-lb2&lt;br /&gt;
| 23:51&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/sync_hobbynetlib_2.sh&lt;br /&gt;
| root&lt;br /&gt;
| Sync lib dir naar ldap-lb2&lt;br /&gt;
| 23:52&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== extra op ldap-lb1 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/cron_joomla.sh&lt;br /&gt;
| root&lt;br /&gt;
| Draai joomla cron job voor joomla sites met login module zodat er zo min mogelijk lid gegevens in backup zitten&lt;br /&gt;
| 00:15&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/LDAP_export_passwords.sh&lt;br /&gt;
| root&lt;br /&gt;
| Zet de (door LA/de gebruiker) aangepaste wachtwoorden over naar het CRM&lt;br /&gt;
| 23:20&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/gen_iplist_partners.sh&lt;br /&gt;
| root&lt;br /&gt;
| Maak /usr/local/hobbynet/apache2conf/iplists/iplist-partners-24 aan&lt;br /&gt;
| 03:07&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/LDAP_cronjob.sh&lt;br /&gt;
| root&lt;br /&gt;
| Doe alle processing CRM-&amp;gt;LDAP&lt;br /&gt;
| 03:10&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/run_tripolis_import.sh &amp;gt;/var/log/run_tripolis_import.log&lt;br /&gt;
| root&lt;br /&gt;
| Haal de opt-outs op van Tripolis&lt;br /&gt;
| 03:15&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/mail_tripolis_import_report.sh&lt;br /&gt;
| root&lt;br /&gt;
| Haal de handmatige tripolis opt-outs op, en mail die naar de ledenadministratie&lt;br /&gt;
| 03:31&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/upd_mailserver.sh &amp;gt;/var/log/upd_mailserver.log&lt;br /&gt;
| root&lt;br /&gt;
| Ververs postfixadmin op mail-lb1 en mail-lb2&lt;br /&gt;
| 03:26&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/mail_upd_mail_report.sh&lt;br /&gt;
| root&lt;br /&gt;
| Mail resultaat van upd_mailserver naar Egbert&lt;br /&gt;
| 03:30&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/upload_leden_csv.sh&lt;br /&gt;
| root&lt;br /&gt;
| Maak en plaats de ledenlijst voor Kantoor&lt;br /&gt;
| 03:35&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/upload_kader_csv.sh&lt;br /&gt;
| root&lt;br /&gt;
| Maak en plaats de kaderlijst voor Kantoor&lt;br /&gt;
| 03:40&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/unblock_joomla.sh&lt;br /&gt;
| root&lt;br /&gt;
| De-blokkeer actieve users&lt;br /&gt;
| 03:45&lt;br /&gt;
| 1x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/upload_bezoekersstatistiek.sh&lt;br /&gt;
| root&lt;br /&gt;
| Haal de aantallen bezoekers, en zet die over naar de Joomla kadersite (en de beta-site)&lt;br /&gt;
| 03:47&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/run_tripolis_export.sh &amp;gt;/var/log/run_tripolis_export.log&lt;br /&gt;
| root&lt;br /&gt;
| Maak overzicht van alle opt-ins voor Tripolis&lt;br /&gt;
| 03:50&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/mail_tripolis_export_report.sh&lt;br /&gt;
| root&lt;br /&gt;
| Mail de resultaten van de Tripolis export run naar Egbert&lt;br /&gt;
| 03:52&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/renameusers_joomla.sh&lt;br /&gt;
| root&lt;br /&gt;
| Hernoem de users die hernoemd zijn in ldap in de joomla sites&lt;br /&gt;
| 03:50&lt;br /&gt;
| 1x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/statistiek_xml.sh&lt;br /&gt;
| root&lt;br /&gt;
| Maak en plaats statistiek overzicht van alle HCC groeperingen&lt;br /&gt;
| 03:55&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/cron_joomla.sh&lt;br /&gt;
| root&lt;br /&gt;
| Draai voordat update_joomla.php draait nogmaals de cron job, zodat ook in de user backup zo min mogelijk lid gegevens zitten, en dat alle sites zijn bijgewerkt aan de hand van de laatste ldap import&lt;br /&gt;
| 03:55&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| php /usr/local/hobbynet/bin/update_joomla.php&lt;br /&gt;
| root&lt;br /&gt;
| Voer dagelijkse Joomla onderhoud uit op alle Joomla template sites&lt;br /&gt;
| 04:00&lt;br /&gt;
| 1x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/run_maand_rapport.sh&lt;br /&gt;
| root&lt;br /&gt;
| Doe de Hobbynet maand rapportage&lt;br /&gt;
| 04:00&lt;br /&gt;
| 1e van de maand&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/tel_unieke_bezoekers-volgens-LDAP.sh&lt;br /&gt;
| root&lt;br /&gt;
| Bepaal het aantal unieke bezoekers volgens LDAP, mail dat aan VB&lt;br /&gt;
| 04:05&lt;br /&gt;
| 1e van de maand&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/huisgenoot_lidmaatschappen.sh&lt;br /&gt;
| root&lt;br /&gt;
| Maak een lijst van onjuiste huisgenoot-lidmaatschappen&lt;br /&gt;
| 04:10&lt;br /&gt;
| 1e van de maand&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/schoon_alles_op.sh&lt;br /&gt;
| root&lt;br /&gt;
| Schoon mySQL en LDAP op&lt;br /&gt;
| 04:05&lt;br /&gt;
| 2e van de maand&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ldap-lb2 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb2&lt;br /&gt;
| /etc/init.d/hobby-firewall restart&lt;br /&gt;
| root&lt;br /&gt;
| Herstart Firewall&lt;br /&gt;
| 06:15&amp;lt;br&amp;gt;12:15&amp;lt;br&amp;gt;18:15&amp;lt;br&amp;gt;00:15&lt;br /&gt;
| 4 x per dag &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb2&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb2&lt;br /&gt;
| /usr/local/hobbynet/local/backup-encrypted.bash&lt;br /&gt;
| root&lt;br /&gt;
| Encrypted backup naar Backup2bit&lt;br /&gt;
| 23:30&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ldap-test ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-test&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== xml-lb1, xml-lb2 en xml-test ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| xml-lb1&lt;br /&gt;
| /etc/init.d/hobby-firewall restart&lt;br /&gt;
| root&lt;br /&gt;
| Herstart Firewall&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;12:00&amp;lt;br&amp;gt;18:00&amp;lt;br&amp;gt;00:00&lt;br /&gt;
| 4 x per dag &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| xml-lb1&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| xml-lb1&lt;br /&gt;
| /usr/local/hobbynet/local/backup-encrypted.bash &amp;gt;&amp;gt;/var/log/backup_encrypted.log&lt;br /&gt;
| root&lt;br /&gt;
| Encrypted backup naar Backup2bit&lt;br /&gt;
| 23:45&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| xml-lb2&lt;br /&gt;
| /usr/local/hobbynet/local/backup-encrypted.bash &amp;gt;&amp;gt;/var/log/backup_encrypted.log&lt;br /&gt;
| root&lt;br /&gt;
| Encrypted backup naar Backup2bit&lt;br /&gt;
| 23:30&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| xml-lb2&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| xml-test&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== opslag 1,2 en 3 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| opslag 1 t/m 3&lt;br /&gt;
| test -x /usr/local/hobbynet/bin/defragdisk &amp;amp;&amp;amp; /usr/local/hobbynet/bin/defragdisk &amp;gt;/dev/null&lt;br /&gt;
| root&lt;br /&gt;
| Defragmenteer de /disk partitie op de actieve storage server&lt;br /&gt;
| 03:42&lt;br /&gt;
| Elke 13e en 28e van de maand&lt;br /&gt;
|  &#039;&#039;&#039;mits hij de actieve storage server is&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| opslag 1 t/m 3&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| opslag 1 t/m 3&lt;br /&gt;
| test -x /usr/local/hobbynet/bin/backup2bas &amp;amp;&amp;amp; /usr/local/hobbynet/bin/backup2bas &amp;gt;/dev/null&lt;br /&gt;
| root&lt;br /&gt;
| Backup van /disk naar nas bij Bas&amp;lt;br&amp;gt;&lt;br /&gt;
| 01:42&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &#039;&#039;&#039;mits hij de actieve storage server is&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| opslag 1 t/m 3&lt;br /&gt;
| test -x /usr/local/hobbynet/bin/backup2nas &amp;amp;&amp;amp; /usr/local/hobbynet/bin/backup2nas &amp;gt;/dev/null&lt;br /&gt;
| root&lt;br /&gt;
| Backup van /disk naar nas in het rack &amp;lt;br&amp;gt;&lt;br /&gt;
| 06:42&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &#039;&#039;&#039;mits hij de actieve storage server is&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== nagios-lb1 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| nagios-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/sync_nagios&lt;br /&gt;
| root&lt;br /&gt;
| Synchroniseer nagios-lb1 naar nagios-lb2&lt;br /&gt;
| 00:00&amp;lt;br&amp;gt;06:00&amp;lt;br&amp;gt;12:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 6 x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== nagios-lb2 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== db01 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| db01&lt;br /&gt;
| /usr/local/hobbynet/bin/database-onderhoud &amp;gt;/dev/null&lt;br /&gt;
| root&lt;br /&gt;
| Database onderhoud&lt;br /&gt;
| 02:36&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== db02 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| db02&lt;br /&gt;
| /usr/local/hobbynet/bin/database-onderhoud &amp;gt;/dev/null&lt;br /&gt;
| root&lt;br /&gt;
| Database onderhoud&lt;br /&gt;
| 00:36&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== hcc-db03 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| hcc-db03&lt;br /&gt;
| /usr/local/hobbynet/bin/database-onderhoud &amp;gt;/dev/null&lt;br /&gt;
| root&lt;br /&gt;
| Database onderhoud&lt;br /&gt;
| 02:36&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== hcc-db04 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| hcc-db04&lt;br /&gt;
| /usr/local/hobbynet/bin/database-onderhoud &amp;gt;/dev/null&lt;br /&gt;
| root&lt;br /&gt;
| Database onderhoud&lt;br /&gt;
| 00:36&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== backup2bit ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_mysql01&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 00:05&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_mysql02&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 12:10&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_mysql03&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 00:40&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_mysql04&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 12:10&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_mysql05&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 00:15&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_mysql06&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 12:14&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_domein&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 12:15&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_otrs&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 00:35&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_mail-lb1&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 00:40&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_mail-lb2&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 12:40&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_server_configs&lt;br /&gt;
| root&lt;br /&gt;
| Backup server configs van alle servers&lt;br /&gt;
| 23:01&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_usrlocalhobbynet&lt;br /&gt;
| root&lt;br /&gt;
| Backup /usr/local/hobbynet naar /disk/backup/hobbynet&lt;br /&gt;
| 00:01&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_pxe&lt;br /&gt;
| root&lt;br /&gt;
| Backup /var/lib/tftpboot (van de PXE server) naar /disk/backup/pxe-int/pxe&lt;br /&gt;
| 23:55&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/sync_ns3&lt;br /&gt;
| root&lt;br /&gt;
| Zet hcc.nl, hobby.nl en pc-active.nl over naar de backup-omgeving op ns3&lt;br /&gt;
| 06:42&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== sftp ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| sftp&lt;br /&gt;
| /usr/local/hobbynet/local/backup &amp;gt;&amp;gt;/var/log/backup.log&lt;br /&gt;
| root&lt;br /&gt;
| Backup server config naar backup2bit-int&lt;br /&gt;
| 23:45&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| sftp&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==logging==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| logging&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| logging&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_etc&lt;br /&gt;
| root&lt;br /&gt;
| Trek een backup van de etc map, en zet die over naar backup2bit&lt;br /&gt;
| 22:00&amp;lt;br&amp;gt;&lt;br /&gt;
| Elke dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= alle servers =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| alle servers&lt;br /&gt;
| /home/bas/baskeys&lt;br /&gt;
| bas&lt;br /&gt;
| Update ssh keys voor bas&lt;br /&gt;
| &lt;br /&gt;
| Elk uur&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=79036</id>
		<title>XML-RPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=79036"/>
		<updated>2020-11-28T13:42:10Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XML-RPC interface =&lt;br /&gt;
&lt;br /&gt;
De LDAP server kan direct gemuteerd worden via een LDAP koppeling. Zie&lt;br /&gt;
de standaard LDAP pagina voor de uitleg welke poorten daarvoor gebruikt&lt;br /&gt;
kunnen worden.&lt;br /&gt;
&lt;br /&gt;
Daarnaast is er de wens ontstaan om via een standaard protocol met de&lt;br /&gt;
LDAP omgeving te kunnen communiceren. Er is hiertoe een XML-RPC&lt;br /&gt;
koppeling ontwikkeld. XML-RPC is een standaard interface, waarmee het&lt;br /&gt;
mogelijk is om vanuit diverse omgevingen op een gestandaardiseerde&lt;br /&gt;
manier te communiceren.&lt;br /&gt;
&lt;br /&gt;
== Globale functie omschrijving ==&lt;br /&gt;
* Algemene aanroepen&lt;br /&gt;
** Controleer of een gebruiker bestaat&lt;br /&gt;
** Wijzig het wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
** Zoek een gebruiker (t.b.v. kantoor en/of LA-akties groeperingssecretaris)&lt;br /&gt;
** Maak een gebruiker aan (geef gebruiker een andere hccLogin waarde, maak ook bij HCCnet deze gebruiker aan)&lt;br /&gt;
** Controleer of een gebruiker zijn profiel al doorlopen heeft&lt;br /&gt;
** Haal de lijst met opgeheven accounts op&lt;br /&gt;
** Haal de lijst met bulletins van een hcc lid (OptIn)&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. hcc partners&lt;br /&gt;
** Controleer of lidnummer/postcode correct is&lt;br /&gt;
** Controleer of lidnummer/postcode correct is, en tevens ingeschreven staat bij een specifieke IG&lt;br /&gt;
&lt;br /&gt;
* Joomla template site functies (op basis van JoomlaToken)&lt;br /&gt;
** Maak een JoomlaToken&lt;br /&gt;
** Ruim een JoomlaToken op&lt;br /&gt;
** Pas mijn OptIn (bulletin inschrijving) aan&lt;br /&gt;
** Regel alles rondom Onderwerpen en de autorisatie hiervan&lt;br /&gt;
** Pas mijn wachtwoord aan&lt;br /&gt;
&lt;br /&gt;
* Joomla kadernet site functies (op basis van JoomlaToken)&lt;br /&gt;
** Zoek een hcc kaderlid (t.b.v. de kaderleden zoekpagina)&lt;br /&gt;
** Pas mijn kadermail forwarding aan en toon ja/nee mijn GSM nummer&lt;br /&gt;
** Pas het kadernet e-mail wachtwoord aan&lt;br /&gt;
** Haal de lijst met alle groeperingen op&lt;br /&gt;
** Haal de lijst met alle kaderrollen op&lt;br /&gt;
&lt;br /&gt;
* Joomla hcc.nl site (op basis van JoomlaToken)(mijn.hcc.nl vervanging)&lt;br /&gt;
** Pas mijn adresgegevens aan&lt;br /&gt;
** Pas mijn voorletters, voornaam, pseudoniem, telefoonnummer, GSM nummer etcetera aan&lt;br /&gt;
** Schrijf me in of uit op een bulletin&lt;br /&gt;
** Toon info over de kosten van een IG lidmaatschap&lt;br /&gt;
** Voer een wachtwoord reset uit op basis van een PWResetToken (een variant op JoomlaToken)&lt;br /&gt;
** Vraag een nieuwe HCC code aan, en stuur die per SMS&lt;br /&gt;
&lt;br /&gt;
* Joomla hobby.nl site (op basis van JoomlaToken)(t.b.v. IDEAL betaling)&lt;br /&gt;
** Haal het aantal hobbyDomains op&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. CRM (Microsoft Dynamics Cloud) koppeling&lt;br /&gt;
** Haal de dagelijkse synchronisatie bestanden op&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de NAW gegevens bij&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de IG gegevens van een lid bij&lt;br /&gt;
&lt;br /&gt;
* HenZ&lt;br /&gt;
** Haal de lijst met opzeggers op&lt;br /&gt;
** Valideer de opzegdatum van een opgegeven gebruiker&lt;br /&gt;
&lt;br /&gt;
=== Authenticatie ===&lt;br /&gt;
&lt;br /&gt;
Alle aanroepen gebeuren op basis van authenticatie vanuit de aanroeper.&lt;br /&gt;
Dit valt uiteen in de volgende categorieën:&lt;br /&gt;
* gebruikersnaam (&#039;hccLogin&#039;) en wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;), Joomla token (&#039;JoomlaToken&#039;) en website (&#039;siteID&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;) en hcc code (&#039;hccCode&#039;)&lt;br /&gt;
* beheerders-DN (&#039;beheerLogin&#039;) en beheerders wachtwoord (&#039;beheerPassword&#039;)&lt;br /&gt;
* partner-DN (&#039;partnerLogin&#039;) en partner wachtwoord (&#039;partnerPassword&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Aanroepen, gedaan via de bezoekersregistratie-proxy ===&lt;br /&gt;
(de bezoekersregistratie proxy is een mislukt project tbv de Android app van René Prins)&lt;br /&gt;
(deze proxy bestaat niet meer)&amp;lt;br&amp;gt;&lt;br /&gt;
Diverse aanroepen kunnen ook via de bezoekersregistratie-proxy aangeroepen worden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
* GeefAlleGroeperingen&lt;br /&gt;
* GeefAlleKaderRollen&lt;br /&gt;
* GeefLocaties&lt;br /&gt;
* GeefLocatieNamen&lt;br /&gt;
De bezoekersregistratie aanroepen hebben &#039;JoomlaToken&#039; als extra parameter nodig:&lt;br /&gt;
* LidBezoektBijeenkomst&lt;br /&gt;
* GeefBezoekersOverzicht&lt;br /&gt;
* GeefBezoekersAantallen&lt;br /&gt;
De aanroepen die over de proxy uitgevoerd worden dienen voorafgegaan te worden door een aanroep naar&lt;br /&gt;
* GeefMijnGegevens (dit geeft na validatie immers &#039;JoomlaToken&#039; terug)&lt;br /&gt;
&lt;br /&gt;
=== Resultaten ===&lt;br /&gt;
&lt;br /&gt;
Alle aanroepen geven de volgende elementen terug:&lt;br /&gt;
* Naam van de uitgevoerde procedure (&#039;Action&#039;)&lt;br /&gt;
* Resultaat van de uitgevoerde procedure (&#039;Status&#039;)&lt;br /&gt;
* Een tekstuele vertaling van het resultaat dan wel de foutmelding (&#039;Message&#039;)&lt;br /&gt;
* Tijdens de ontwikkelfase kan er debug-info teruggeleverd worden (&#039;ExtraInfo&#039;)&lt;br /&gt;
Daarnaast geven specifieke aanroepen extra resultaten terug&lt;br /&gt;
&lt;br /&gt;
== Technische omschrijving ==&lt;br /&gt;
XML-RPC beschrijving van acties in hcc.nl LDAP database&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2020.11.28 HaVe&lt;br /&gt;
XML-RPC Hobbynet versie 65.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kort overzicht ===&lt;br /&gt;
Dit is een lijst met alle XML-RPC aanroepen. In het volgende hoofdstuk worden ze in detail besproken.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo				(partners)&lt;br /&gt;
ExpandeerPostcode               (Joomla module Bas, tbv verhuizingen)&lt;br /&gt;
GebruikerBestaatControle	(Joomla sites)&lt;br /&gt;
GeefAantalDomeinen              (Joomla module Bas)&lt;br /&gt;
GeefAlleBulletins               (Joomla module Bas)&lt;br /&gt;
GeefAlleGroeperingen		(kadersite, forum, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefAlleKaderRollen		(forum, secr. portal, kantoor portal, hobbynet portal, Joomla module Bas)&lt;br /&gt;
GeefBezoekersOverzicht		(bezoekersregistratie)&lt;br /&gt;
GeefBezoekersAantallen		(bezoekersregistratie)&lt;br /&gt;
GeefFactuurOverzicht		(Joomla module Bas)&lt;br /&gt;
GeefhccEindDatum		(HenZ)&lt;br /&gt;
GeefKadermailGegevens		(kantoor portal)&lt;br /&gt;
GeefLocatieNamen		(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefLocaties			(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefMijnGegevens		(Joomla inlog module Bas)&lt;br /&gt;
GeefMijnLidnummer		(beheer.hcc.nl secretaris portal)&lt;br /&gt;
GeefOnderwerpen                 (Joomla template sites)&lt;br /&gt;
GeefSSOUrls			(Joomla module Bas)&lt;br /&gt;
GeefUitgeschrevenLeden		(Joomla sites, HenZ)&lt;br /&gt;
HaalAanmeldingsformulier	(Joomla module Bas)&lt;br /&gt;
HaalFactuur			(Joomla module Bas)&lt;br /&gt;
HaalIGBedragenOp                (Joomla module Bas)&lt;br /&gt;
HaalOptInKeuzen			(kantoor portal)&lt;br /&gt;
HaalTariefGroepenOp		(kantoor portal)&lt;br /&gt;
HCCpartner			(Partner aanroep)&lt;br /&gt;
HCCpartners			(Partner aanroep)&lt;br /&gt;
IsDezeNaamNogBeschikbaar	(aangeroepen vanuit de CRM omgeving)&lt;br /&gt;
IsDezePseudoniemNogBeschikbaar	(kantoor portal)&lt;br /&gt;
IsHCCLid			(vraagbaak aanroep)&lt;br /&gt;
IsKaderLid			(in veel apps gebruikt)&lt;br /&gt;
LidBezoektBijeenkomst		(bezoekersregistratie)&lt;br /&gt;
MaakGebruikerAan		(mijnhcc.nl, maak hccnet account aan en ldap gebruikersnaam)&lt;br /&gt;
MaakOnderwerp                   (Joomla template sites)&lt;br /&gt;
MaakPWResetToken                (Joomla module Bas)&lt;br /&gt;
MaakTestLogin                   (Joomla module Bas)&lt;br /&gt;
MuteerAanmeldingsformulier	(Joomla module Bas)&lt;br /&gt;
MuteerGroeperingSamenstelling   (Joomla kadernet module Bas)&lt;br /&gt;
MuteerOnderwerp                 (Joomla template sites)&lt;br /&gt;
MuteerOnderwerpAutorisatie      (Joomla template sites)&lt;br /&gt;
NormaliseerTelefoon             (Joomla module Bas)&lt;br /&gt;
PasHccLoginAan			(Joomla module Bas)(enkel Hobbynet)&lt;br /&gt;
PasInteressegroepAan            (Joomla module Bas)&lt;br /&gt;
PasKaderGegevensAan		(kadersite, Joomla module Bas)&lt;br /&gt;
PasOptInKeuzeAan		(Joomla module Bas)&lt;br /&gt;
PasPseudoniemAan		(Joomla module Bas)&lt;br /&gt;
PasUserWachtwoordAan		(beheer.hcc.nl Hobbynet gebruikers portal)&lt;br /&gt;
PasWachtwoordAan		(Joomla module Bas)&lt;br /&gt;
RegistreerGast			(bezoekersregistratie)&lt;br /&gt;
ResetHCCCode                    (Joomla module Bas)&lt;br /&gt;
RuimJoomlaTokenOp               (Joomla module Bas)&lt;br /&gt;
SchrijfNietlidInOpBulletin      (Joomla site bulletin module Bas)&lt;br /&gt;
SchrijfNieuwLidIn               (Joomla CRM module Bas)&lt;br /&gt;
ToonOnderwerpAutorisatie        (Joomla template sites)&lt;br /&gt;
UpdateContactEmail		(Joomla module Bas)&lt;br /&gt;
UpdateContactGegevens		(Joomla module Bas)&lt;br /&gt;
UpdateMobiel                    (Joomla module Bas)&lt;br /&gt;
UpdateNAW                       (Joomla module Bas)&lt;br /&gt;
UpdateTelefoon			(Joomla module Bas)&lt;br /&gt;
UpdateVoorletters		(Joomla module Bas)&lt;br /&gt;
UpdateVoornaam			(Joomla module Bas)&lt;br /&gt;
Upload_CSV_bestand              (CRM webproxy)&lt;br /&gt;
ValideerPWResetToken            (Joomla module Bas)&lt;br /&gt;
ValideerWachtwoordEisen		(Joomla module Bas)&lt;br /&gt;
Verwerk_JSON_mutatie            (CRM webproxy)&lt;br /&gt;
VerwijderNietLid		(Joomla beheer module Bas)&lt;br /&gt;
VerwijderOnderwerp              (Joomla template sites)&lt;br /&gt;
VraagLidgegevensTokenAan	(bezoekersregistratie)&lt;br /&gt;
WijzigGebruikersGegevens	(kantoor en Joomla template sites, ww aanpassen van gebruiker)&lt;br /&gt;
ZoekGroeperingsLid		(secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
ZoekHCCLid			(VZ portal)&lt;br /&gt;
ZoekKaderLeden			(Joomla kadernet module Bas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-ldap en/of HCC-net aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** Joomla sites, www.hcc.nl **&lt;br /&gt;
// 1.1 controleer of een gebruiker bestaat - optie 1&lt;br /&gt;
// (authenticatie op basis van hccLidnr en hccCode)&lt;br /&gt;
// Alleen bedoeld om gebruikers op www.hcc.nl op basis van het lidnr het ww te laten wijzigen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GebruikerBestaatControle&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039; =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;  =&amp;gt; $hccCode,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $method,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;);&lt;br /&gt;
    if ($hccLidnr      != &#039;&#039;) { $reply[&#039;hccLidnr&#039;]      = $hccLidnr;      }&lt;br /&gt;
    if ($hccLogin      != &#039;&#039;) { $reply[&#039;hccLogin&#039;]      = $hccLogin;      }&lt;br /&gt;
    if ($hccPseudoniem != &#039;&#039;) { $reply[&#039;hccPseudoniem&#039;] = $hccPseudoniem; }&lt;br /&gt;
    if ($cn            != &#039;&#039;) { $reply[&#039;cn&#039;]            = $cn;            }&lt;br /&gt;
    if ($sn            != &#039;&#039;) { $reply[&#039;sn&#039;]            = $sn;            }&lt;br /&gt;
    if ($mail          != &#039;&#039;) { $reply[&#039;mail&#039;]          = $mail;          }&lt;br /&gt;
    if ($mailHccnet    != &#039;&#039;) { $reply[&#039;mailHccnet&#039;]    = $mailHccnet;    }&lt;br /&gt;
    if ($hccRegio      != &#039;&#039;) { $reply[&#039;hccRegio&#039;]      = $hccRegio;      }&lt;br /&gt;
    if ($hccIG         != &#039;&#039;) { $reply[&#039;hccIG&#039;]         = $hccIG;         }&lt;br /&gt;
    if ($hccRol        != &#039;&#039;) { $reply[&#039;hccRol&#039;]        = $hccRol;        }&lt;br /&gt;
    if ($ProfielBekend != &#039;&#039;) { $reply[&#039;ProfielBekend&#039;] = $ProfielBekend; }&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
// op basis van hccLidnummer en hccCode &lt;br /&gt;
// Essentiele aanroep, gebruikt vanuit mijnhcc.nl (lidnr + hccCode)&lt;br /&gt;
// Ook gebruikt t.b.v. wachtwoord-vergeten procedure op de Joomla template sites&lt;br /&gt;
// Als de profielpagina nog niet is doorlopen wordt deze aanroep afgekeurd.&lt;br /&gt;
//&lt;br /&gt;
// Ook gebruikt om gebruiker rechtstreeks vanaf Joomla template sites wachtwoord te&lt;br /&gt;
// laten aanpassen (op basis van lidnummer en hcc code)&lt;br /&gt;
//&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;            =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Gebruikersgegevens gewijzigd&#039;,&lt;br /&gt;
    &#039;hccLogin&#039; =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;cn&#039;       =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;       =&amp;gt; $sn);&lt;br /&gt;
&lt;br /&gt;
// 2.3 wijzig wachtwoord - optie 3&lt;br /&gt;
// (t.b.v. VZ-portal)&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
// * Als hccLidnr gevuld is, dan wordt hccLidnr gebruikt om het juiste record te zoeken&lt;br /&gt;
//   Als hccLidnr leeg   is, dan wordt hccLogin gebruikt om het juiste record te zoeken&lt;br /&gt;
//   1 van beide velden MOET aanwezig zijn&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;        =&amp;gt; $beheerLogin,    // beheerder lidnummer&lt;br /&gt;
      &#039;beheerPassword&#039;     =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
     [&#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,]&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. ophalen van de opt-in keuzes op de beheer pagina **&lt;br /&gt;
// 2.6 Geef de complete lijst met opt-ins van dit lid&lt;br /&gt;
// (LET OP: authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
     [&#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;       =&amp;gt; $hccLogin,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptInLijst opgehaald&#039;,&lt;br /&gt;
    &#039;hccOptIn&#039; =&amp;gt; $hccOptIn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gebruikersnaam, pseudoniem &lt;br /&gt;
//     en wachtwoord tevens in LDAP op&lt;br /&gt;
// (authenticatie op basis van hcc lidnummer en hcc-code)&lt;br /&gt;
// ** Deze gegevens worden doorgezet naar hccnet.nl (action=4) **&lt;br /&gt;
// &lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;             =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_hccLogin&#039;      =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
      &#039;nieuw_userPassword&#039;  =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem,&lt;br /&gt;
     [&#039;ServerID&#039;            =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;              =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;       =&amp;gt; &#039;Gebruiker aangemaakt&#039;,&lt;br /&gt;
    &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
    &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;       |&lt;br /&gt;
                 &#039;Gebruikersnaam bestaat al&#039;  |&lt;br /&gt;
                 &#039;Pseudoniem bestaat al&#039;      |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.3 Haal al mijn gegevens&lt;br /&gt;
// (wordt gebruikt door de Joomla inlogmodule)&lt;br /&gt;
// Voor gebruik over de proxy t.b.v. de Android app kan compact=TRUE meegegeven worden.&lt;br /&gt;
// In dat geval worden enkel de meest essentiele gegevens teruggestuurd&lt;br /&gt;
// Voor gebruik na MaakGebruikerAan kan deze functie ook op basis van hccLidnr en JoomlaToken&lt;br /&gt;
// worden aangeroepen&lt;br /&gt;
// De optionele parameter &#039;PrevSiteID&#039; is bedoeld voor single-sign-on. Op basis van JoomlaToken,&lt;br /&gt;
// hccLidnr en PrevSiteID worden dan de credentials gevalideerd. Als die kloppen, geeft deze aanroep&lt;br /&gt;
// een 2e JoomlaToken terug, maar dan uitgegeven op basis van SiteID.&lt;br /&gt;
// Als PrevSiteID leeg is, dan wordt het token op basis van siteID gevalideerd.&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,]&lt;br /&gt;
     [&#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;PrevSiteID&#039;   =&amp;gt; $PrevSiteID,]&lt;br /&gt;
     [&#039;compact&#039;      =&amp;gt; $compact,]        // leeg of &#039;TRUE&#039;&lt;br /&gt;
     [&#039;hccGroepering&#039;=&amp;gt; $hccGroepering,]  // Een testgebruiker mag alleen op deze site inloggen&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccRegio&#039;           =&amp;gt; $hccRegio,&lt;br /&gt;
    &#039;hccIG&#039;              =&amp;gt; $hccIG,&lt;br /&gt;
    &#039;hccRol&#039;             =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;hccAutorisatie&#039;     =&amp;gt; $hccAutorisatie,&lt;br /&gt;
    &#039;cn&#039;                 =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;                 =&amp;gt; $sn,&lt;br /&gt;
    &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
   [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccPseudoniem&#039;      =&amp;gt; $hccPseudoniem,&lt;br /&gt;
    &#039;givenname&#039;          =&amp;gt; $givenname,&lt;br /&gt;
    &#039;hccAanhef&#039;          =&amp;gt; $hccAanhef,&lt;br /&gt;
    &#039;hccGeslacht&#039;        =&amp;gt; $hccGeslacht,&lt;br /&gt;
    &#039;hccTussenVoegsels&#039;  =&amp;gt; $hccTussenVoegsels,&lt;br /&gt;
    &#039;hccAchternaam&#039;      =&amp;gt; $hccAchternaam,&lt;br /&gt;
    &#039;hccStraatnaam&#039;      =&amp;gt; $hccStraatnaam,&lt;br /&gt;
    &#039;hccHuisnummer&#039;      =&amp;gt; $hccHuisnummer&lt;br /&gt;
    &#039;hccPostcode&#039;        =&amp;gt; $hccPostcode,&lt;br /&gt;
    &#039;hccWoonplaats&#039;      =&amp;gt; $hccWoonplaats,&lt;br /&gt;
    &#039;hccLand&#039;            =&amp;gt; $hccLand,&lt;br /&gt;
    &#039;hccTelefoon&#039;        =&amp;gt; $hccTelefoon,&lt;br /&gt;
    &#039;mail&#039;               =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;         =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;       =&amp;gt; $hccKaderMail, &lt;br /&gt;
    &#039;hccKaderForward&#039;    =&amp;gt; $hccKaderForward,&lt;br /&gt;
    &#039;hccKaderToonMobiel&#039; =&amp;gt; $hccKaderToonMobiel,&lt;br /&gt;
    &#039;hccOptIn&#039;           =&amp;gt; $hccOptIn,&lt;br /&gt;
    &#039;ProfielBekend&#039;      =&amp;gt; $ProfielBekend,&lt;br /&gt;
    &#039;hccBeginDatum&#039;      =&amp;gt; $hccBeginDatum,&lt;br /&gt;
   [&#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,     // in Mb&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald;]]);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de opt-in keuzes op een Joomla site **&lt;br /&gt;
// H.4 Pas 1 opt-in van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// Als hccLidnummer gevuld is, dan is dat het lidnummer waar de mutatie op moet worden uitgevoerd.&lt;br /&gt;
// Dat kan alleen als de aanvrager HCC#LAD of HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,]&lt;br /&gt;
      &#039;hccOptIn&#039;     =&amp;gt; $hccOptIn,&lt;br /&gt;
      &#039;actie&#039;        =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptIn aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
    &lt;br /&gt;
// H.5 Zoek kaderleden NAW (t.b.v. de Joomla kadersite)&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
//&lt;br /&gt;
// * Er dient minstens 1 zoekcriterium opgegeven te worden.&lt;br /&gt;
// * Als zowel hccRegio als tegelijk ook hccIG opgegeven worden is de uitkomst onvoorspelbaar.&lt;br /&gt;
// * Als compact=TRUE worden enkel lidnummer, cn en sn in het antwoord gezet&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
     [&#039;hccIG&#039;       =&amp;gt; $hccIG,]&lt;br /&gt;
     [&#039;hccRol&#039;      =&amp;gt; $hccRol,]&lt;br /&gt;
     [&#039;hccLocatie&#039;  =&amp;gt; $hccLocatie,]&lt;br /&gt;
     [&#039;achternaam&#039;  =&amp;gt; $achternaam,]&lt;br /&gt;
     [&#039;compact&#039;     =&amp;gt; $compact]));        // leeg of &#039;TRUE&#039;&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Kaderleden opgevraagd&#039;&lt;br /&gt;
    &#039;Kaderleden&#039;      =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidNummer&#039;  =&amp;gt; $hccLidNummer,&lt;br /&gt;
      &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccAanhef&#039;     =&amp;gt; $hccAanhef,&lt;br /&gt;
      &#039;givenname&#039;     =&amp;gt; $givenname,&lt;br /&gt;
      &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
      &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
      &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;]);&lt;br /&gt;
&lt;br /&gt;
// H.9 PasKaderGegevensAan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
// Om de kaderleden hun forward in te laten stellen,&lt;br /&gt;
// en tegelijkertijd de opt-in / opt-out voor hccToonMobiel te laten regelen&lt;br /&gt;
// Kan tevens het kader email wachtwoord aanpassen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;         =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;            =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;              =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;hccKaderForward&#039;     =&amp;gt; $hccKaderForward,    // &#039;&#039; | $mail | $mailHccNet&lt;br /&gt;
      &#039;hccKaderToonMobiel&#039;  =&amp;gt; $hccKaderToonMobiel, // &#039;TRUE&#039; | &#039;FALSE&#039; | &#039;NULL&#039;&lt;br /&gt;
     [&#039;nieuw_kaderPassword&#039; =&amp;gt; $nieuw_kaderPassword]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;kadergegevens aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;|&#039;Alleen kaderleden mogen deze aanroep uitvoeren&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** Portal beheer.hcc.nl&lt;br /&gt;
// ** H.10 PasUserWachtwoordAan&lt;br /&gt;
// ** Betalende Hobbynet gebruikers kunnen hiermee hun wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van hccLogin en userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;         =&amp;gt; $username,&lt;br /&gt;
      &#039;userpassword&#039;     =&amp;gt; $password,&lt;br /&gt;
      &#039;hobbynetAccount&#039;  =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;nieuw_wachtwoord&#039; =&amp;gt; $nieuw_wachtwoord,&lt;br /&gt;
      &#039;ServerID&#039;         =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;           =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;         =&amp;gt; $remoteAddr));        &lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;     |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij gebruiker $hccLogin&#039; |&lt;br /&gt;
                 &#039;Kan ww van account $hobbynetAccount niet aanpassen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.11 Pas het pseudoniem van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Pseudoniem aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039; | &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.12 Controleer of een opgegeven wachtwoord aan de minimum eisen voldoet&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Wachtwoord voldoet aan de minimale eisen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Wachtwoord voldoet niet aan de minimale eisen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit een Joomla template site kunnen gebruikers hiermee hun eigen wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van JoomlaToken, lidnummer, siteID. Extra controle via userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;userpassword&#039;       =&amp;gt; $password,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13.1 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee hun eigen wachtwoord resetten&lt;br /&gt;
// (authenticatie op basis van PWResetToken en hccLogin).&lt;br /&gt;
// (Als de aanroep geslaagd is, dan is daarna het PWResetToken ongeldig)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039;       =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.14 MaakPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee een wachtwoord reset aanvragen&lt;br /&gt;
//    Deze aanroep geeft naast het PWResetToken ook het contact emailadres mee terug,&lt;br /&gt;
//    zodat Joomla een reset-mail kan sturen&lt;br /&gt;
// (acties op basis van gebruikersnaam)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;   =&amp;gt; $username,&lt;br /&gt;
      &#039;ServerID&#039;   =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;     =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;   =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
    &#039;mail&#039;         =&amp;gt; $mail,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token aangemaakt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.15 ValideerPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers een wachtwoord reset aanvragen&lt;br /&gt;
//    Controleer dat het hier om een bestaand (en nog niet gebruikt) token gaat&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token gevonden&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;hccLogin bestaat niet&#039; | &#039;PWResetToken bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.16 Ruim een bestaand JoomlaToken op&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;JoomlaToken opgeruimd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuist JoomlaToken&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.17 GeefAantalDomeinen&lt;br /&gt;
// ** Vraag het aantal domeinen op van een betalende Hobbynet gebruiker (t.b.v. IDEAL betaling)&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;     =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;ServerID&#039;        =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;          =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;        =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
    &#039;AantalDomeinen&#039;  =&amp;gt; $aantalDomeinen,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;aantal domeinen opgevraagd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij deze gebruiker&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18 ResetHCCCode&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // geheime credentials van de site&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // geheime credentials van de site&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18.1 ResetHCCCode (hcc kantoor aanroep)&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,    // Het Joomla token van de sessie van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,       // Het lidnummer van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de hccLogin van een gebruiker (Hobbynet functie op Joomla site)  **&lt;br /&gt;
// H.19 Pas de hccLogin van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// hccLidnummer is het lidnummer waar de mutatie op moet worden uitgevoerd&lt;br /&gt;
// Kan alleen als de aanvrager HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,     // lidnummer van de aanvrager&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,  // JoomlaToken van de aanvrager&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer, // pas de hccLogin van dit lidnummer aan&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,     // dit is de gewenste nieuwe hccLogin&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;hccLogin aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039;       | &lt;br /&gt;
                 &#039;Gebruikersnaam al in gebruik&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. het aanmaken van een testaccount door een webmaster&lt;br /&gt;
// H.20 Maak een testaccount aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// Kan alleen als de aanvrager WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakTestLogin&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,     // JoomlaToken van de aanvrager&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,    // lidnummer van de aanvrager&lt;br /&gt;
      &#039;hccRol&#039;        =&amp;gt; $hccRol,          // (mag leeg zijn)&lt;br /&gt;
      &#039;hccGroepering&#039; =&amp;gt; $hccGroepering,   // (regio of IG)&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;MaakTestLogin&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Tijdelijk test account aangemaakt&#039;,&lt;br /&gt;
    &#039;TestAccountNaam&#039; =&amp;gt; &#039;test-&amp;lt;groepering&amp;gt;-&amp;lt;hccLogin&amp;gt;&#039;&lt;br /&gt;
    &#039;userpassword&#039;    =&amp;gt; $nieuw_userpassword,&lt;br /&gt;
    &#039;hccGroepering&#039;   =&amp;gt; $hccGroepering,&lt;br /&gt;
    &#039;hccRol&#039;          =&amp;gt; $hccRol);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MaakTestLogin&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// 3.1 Geef mijn lidnummer&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Lidnummer opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039; =&amp;gt; $hccLidnr);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Deze gegevens worden opgevraagd bij hccnet.nl (action=3)       **&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccLogin&#039; =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Enkel voor gebruik vanaf de kantoor portal **&lt;br /&gt;
// **  t.b.v. het hernoemen van accounts in CRM  **&lt;br /&gt;
// 8.3 Controleer of een Pseudoniem op dit moment bestaat		??? NIET GEBRUIKT ??&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken zoekpagina **&lt;br /&gt;
// A.1 Zoek alle bij de query passende hcc leden&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;ZoekMethode&#039;    =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;     =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;     =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $Groepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (eerste deel van) de naam               |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | emailadres          | (eerste deel van) e-mail adres          |&lt;br /&gt;
 | gebruikersnaam      | (eerste deel van) de login naam         |&lt;br /&gt;
 | pseudoniem          | (eerste deel van) het pseudoniem        |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | niet_leden          | het volledige niet-lid lidnummer        |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
   [&#039;ExtraInfo&#039;   =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;     =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidnummer&#039;      =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;hccBeginDatum&#039;     =&amp;gt; $hccBeginDatum,&lt;br /&gt;
      &#039;hccEindDatum&#039;      =&amp;gt; $hccEindDatum,&lt;br /&gt;
      &#039;sn&#039;                =&amp;gt; $sn,&lt;br /&gt;
      &#039;givenName&#039;         =&amp;gt; $givenName,&lt;br /&gt;
      &#039;hccGeslacht&#039;       =&amp;gt; $hccGeslacht,&lt;br /&gt;
      &#039;hccStraatnaam&#039;     =&amp;gt; $hccStraatnaam,&lt;br /&gt;
      &#039;hccHuisnummer&#039;     =&amp;gt; $hccHuisnummer&lt;br /&gt;
      &#039;hccHuisToevoeging&#039; =&amp;gt; $hcchuisToevoeging,&lt;br /&gt;
      &#039;hccPostcode&#039;       =&amp;gt; $hccPostcode,&lt;br /&gt;
      &#039;hccWoonplaats&#039;     =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccLand&#039;           =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;hccTelefoon&#039;       =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;         =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;mail&#039;              =&amp;gt; $mail,&lt;br /&gt;
      &#039;mailHccnet&#039;        =&amp;gt; $mailHccnet,&lt;br /&gt;
      &#039;hccIG&#039;             =&amp;gt; $hccIG,&lt;br /&gt;
      &#039;hccRol&#039;            =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccLogin&#039;          =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;hccPseudoniem&#039;     =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ProfielBekend&#039;     =&amp;gt; &#039;TRUE&#039; | &#039;FALSE&#039;])*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. beheer.hcc.nl **&lt;br /&gt;
// A.3 Zoek alle bij de query passende hcc leden van deze groepering&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
      &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;  =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;  =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,] // Alleen voor gebruik op de&lt;br /&gt;
                                      // bijeenkomsten aanwezigheidsregistratie pagina&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (deel van) de naam                      |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | nieuwe_leden        | YYYYMMDD vanaf waar gezocht moet worden |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | kaderleden          | n.v.t.                                  |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;   =&amp;gt;&lt;br /&gt;
      [array(&lt;br /&gt;
         &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
         &#039;hccBeginDatum&#039; =&amp;gt; $hccBeginDatum,&lt;br /&gt;
         &#039;hccEindDatum&#039;  =&amp;gt; $hccEindDatum,&lt;br /&gt;
         &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
         &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
         &#039;givenName&#039;     =&amp;gt; $givenName,&lt;br /&gt;
         &#039;hccAchternaam&#039; =&amp;gt; $hccAchternaam,&lt;br /&gt;
         &#039;hccTussenVoegsels =&amp;gt; hccTussenVoegsels,  &lt;br /&gt;
         &#039;hccGeslacht&#039;   =&amp;gt; $hccGeslacht,&lt;br /&gt;
         &#039;hccStraatnaam&#039; =&amp;gt; $hccStraatnaam,&lt;br /&gt;
         &#039;hccHuisnummer&#039; =&amp;gt; $hccHuisnummer, &lt;br /&gt;
         &#039;hccPostcode&#039;   =&amp;gt; $hccPostcode,&lt;br /&gt;
         &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
         &#039;hccLand&#039;       =&amp;gt; $hccLand, &lt;br /&gt;
         &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
         &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
         &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
         &#039;mailHccnet&#039;    =&amp;gt; $mailHccnet,&lt;br /&gt;
         &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail,&lt;br /&gt;
         &#039;hccRegio&#039;      =&amp;gt; $hccRegio,&lt;br /&gt;
         &#039;hccIG&#039;         =&amp;gt; $hccIG,&lt;br /&gt;
         &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
         &#039;hccLogin&#039;      =&amp;gt; $hccLogin,&lt;br /&gt;
         &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem)]*));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) niet gevonden&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten **&lt;br /&gt;
// A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,    // lid dat aanwezig gemeld moet worden&lt;br /&gt;
     [&#039;correctie&#039;   =&amp;gt; $hccLidnr,]   // lid dat gecorrigeerd moet worden&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Bezoeker weggeschreven&#039;,&lt;br /&gt;
    &#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
      // info van deze bezoeker&lt;br /&gt;
      &#039;cn&#039;               =&amp;gt; $cn,                // cn (Verbeek, H.J.)&lt;br /&gt;
      &#039;hccGeslacht&#039;      =&amp;gt; $hccGeslacht,       // hccGeslacht van de bezoeker&lt;br /&gt;
      &#039;groeperingslid&#039;   =&amp;gt; $groeperingslid,    // TRUE of FALSE: is deze persoon lid van deze groepering&lt;br /&gt;
      &#039;mijnGroeperingen&#039; =&amp;gt; $mijnGroeperingen,  // komma-gescheiden lijst (regio, [hccIG]*)&lt;br /&gt;
      &#039;aantalBezoeken&#039;   =&amp;gt; $aantalBezoeken,    // hoe vaak heeft dit lid deze bijeenkomst bezocht&lt;br /&gt;
      // info van de bijeenkomst&lt;br /&gt;
      &#039;AantalBezoekers&#039;  =&amp;gt; $AantalBezoekers);  // aantal bezoekers van deze bijeenkomst&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.5 Vraag Lidgegevens token aan (geldig voor dit lid, en deze groepering, op deze datum)&lt;br /&gt;
// Als geen datum gegeven is, dan is het token vandaag geldig&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnummer, // vraag het token voor dit lid aan&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering,   // zoek binnen deze groepering&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]       // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;     =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;     =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;    =&amp;gt; &#039;Token opgevraagd&#039;,&lt;br /&gt;
    &#039;groepering&#039; =&amp;gt; $Groepering,&lt;br /&gt;
    &#039;token&#039;      =&amp;gt; $token,&lt;br /&gt;
    &#039;sn&#039;         =&amp;gt; $sn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.6 Toon bezoekersoverzicht&lt;br /&gt;
// (authenticatie op basis van lidnummer en bezoekersregistratie token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bezoekersoverzicht opgevraagd&#039;,&lt;br /&gt;
    &#039;Bezoekers&#039; =&amp;gt; $bezoekers,&lt;br /&gt;
   [&#039;Locatie&#039;   =&amp;gt; $Locatie]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// A.7 Geef het array met alle locaties&lt;br /&gt;
// (of beperk dit tot de locaties van de groepering $Groepering)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij hccToonInJoomla aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij ToonOpKaderNet aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocaties&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $hccGroepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;       =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;      =&amp;gt; &#039;Geen locaties gevonden voor groepering $hccGroepering&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// A.8 Registreer een niet-hcclid als bezoeker tijdens een bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RegistreerGast&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039;   =&amp;gt; $lidnr,        // credentials&lt;br /&gt;
      &#039;AccountCode&#039;   =&amp;gt; $AccountCode,  // credentials&lt;br /&gt;
      &#039;token&#039;         =&amp;gt; $token,        // credentials&lt;br /&gt;
      &#039;Bijeenkomst&#039;   =&amp;gt; $groepering,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;naam&#039;          =&amp;gt; $naam,&lt;br /&gt;
      &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;buitenland&#039;    =&amp;gt; $buitenland,&lt;br /&gt;
     [&#039;nietLidNummer&#039; =&amp;gt; $nietLidNummer,]&lt;br /&gt;
     [&#039;instructies&#039;   =&amp;gt; $instructies,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $aanroep,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid als bezoeker geregistreerd&#039;,&lt;br /&gt;
    &#039;Result&#039;  =&amp;gt; $result_array);&lt;br /&gt;
&lt;br /&gt;
// A.9 Geef het array met alle locatienamen&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;           =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locatienamen niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;          =&amp;gt; &#039;Geen locatienamen gevonden&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
// A.10 Schrijf een niet-lid in op een bulletin&lt;br /&gt;
// (2019.12.05: wordt actief gebruikt in Joomla module)&lt;br /&gt;
//      Deze aanroep mag *ook* worden gebruikt om een wel-lid in te schrijven.&lt;br /&gt;
//      Voorwaarde is dat bewezen is dat er controle bestaat over het opgegeven email adres&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
      &#039;hccOptin&#039;       =&amp;gt; $hccOptin,       // bulletin waarop ingeschreven wordt&lt;br /&gt;
      &#039;hccOptinSource&#039; =&amp;gt; $hccOptinSource, // site waar aanmelding vandaan komt&lt;br /&gt;
      &#039;Email&#039;          =&amp;gt; $Email,          // niet-lid: email adres&lt;br /&gt;
      &#039;Naam&#039;           =&amp;gt; $Naam,           // niet-lid: naam&lt;br /&gt;
     [&#039;hccLidNummer&#039;   =&amp;gt; $hccLidNummer,]  // optioneel: ik ben lid, dit is mijn lidnummer&lt;br /&gt;
     [&#039;Postcode&#039;       =&amp;gt; $Postcode,]      // optioneel: niet-lid: postcode&lt;br /&gt;
     [&#039;Huisnummer&#039;     =&amp;gt; $Huisnummer,]    // optioneel: niet-lid: huisnummer&lt;br /&gt;
     [&#039;hccGeslacht&#039;    =&amp;gt; $hccGeslacht,] // optioneel: niet-lid: geslacht (M/V/O)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Inschrijving op bulletin gelukt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                   &#039;Gegevenscombinatie onjuist&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid DN syntax&#039;    |&lt;br /&gt;
                   &#039;Invalid credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.11 Toon bezoekers aantallen&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
//&lt;br /&gt;
// ==&amp;gt; Mag weg: laatste aanroep 2018.12.15 &amp;lt;==&lt;br /&gt;
//&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]      // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;BezoekersAantallen opgevraagd&#039;,&lt;br /&gt;
    &#039;Datum&#039;       =&amp;gt; $datum,&lt;br /&gt;
    &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,&lt;br /&gt;
    &#039;Bezoekers&#039;   =&amp;gt; array(&lt;br /&gt;
      [HCC!seniorenacademie] =&amp;gt; Array(&lt;br /&gt;
        [Gorinchem] =&amp;gt; 15&lt;br /&gt;
        [Woerden]   =&amp;gt; 36)&lt;br /&gt;
      ...));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.12 GeefAlleBulletins&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Bulletins opgevraagd&#039;,&lt;br /&gt;
    &#039;bulletins&#039;       =&amp;gt; $bulletins);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.13 ExpandeerPostcode&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Postcode opgevraagd&#039;,&lt;br /&gt;
    &#039;detailgegevens&#039;  =&amp;gt; $detailgegevens);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.25 UpdateNAW&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateNAW&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;toevoeging&#039;    =&amp;gt; $toevoeging,&lt;br /&gt;
      &#039;straat&#039;        =&amp;gt; $straat,&lt;br /&gt;
      &#039;woonplaats&#039;    =&amp;gt; $woonplaats,&lt;br /&gt;
      &#039;landcode&#039;      =&amp;gt; $landcode,&lt;br /&gt;
      &#039;email&#039;         =&amp;gt; $email,&lt;br /&gt;
      &#039;voornaam&#039;      =&amp;gt; $voornaam,&lt;br /&gt;
      &#039;voorletters&#039;   =&amp;gt; $voorletters,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateContactGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Contactgegevens bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.18 NormaliseerTelefoon&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLand&#039;        =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Telefoonnummer genormaliseerd&#039;,&lt;br /&gt;
    &#039;Telefoonnummer&#039;  =&amp;gt; $Telefoonnummer);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.20 UpdateMobiel&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateMobiel&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateMobiel&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Mobiel nummer bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.21 HaalIGBedragenOp&lt;br /&gt;
//      Geef alle IG&#039;s waar je zelf lid van kunt worden, inclusief het bijbehorende bedrag&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Interessegroepen en bedragen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.22 HaalTariefGroepenOp&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Tariefgroepen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.23 PasInteressegroepAan&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;nieuw&#039;         =&amp;gt; $IG_lijst_nieuw,]&lt;br /&gt;
     [&#039;weg&#039;           =&amp;gt; $IG_lijst_weg,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;IG keuzen aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.24 GeefSSOUrls&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;SSO_urls&#039;        =&amp;gt; $sso_urls,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Single Sign On URLs opgevraagd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken beheer pagina **&lt;br /&gt;
// A.26 Verwijder een niet-lid record&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnummer,   // het te verwijderen niet-lid nummer&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Niet-lid record verwijderd&#039;,&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid record niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** HenZ **&lt;br /&gt;
// ** t.b.v. daily cron job  **&lt;br /&gt;
// ** t.b.v. dagelijkse opschoon jobs Joomla template sites **&lt;br /&gt;
// C.1 Vraag de lijst met uitgeschreven leden op&lt;br /&gt;
//     Dit kan beperkt worden tot een bepaalde regio of interessegroep&lt;br /&gt;
//     Daarnaast kan het tijdvak waarin gezocht wordt vrij gekozen worden&lt;br /&gt;
//     (gesteld dat de LDAP database nog leden uit die periode bevat)&lt;br /&gt;
//     Antwoord: lijst met (lidnummer, hccLogin, sn,&lt;br /&gt;
//                          datum einde lidmaatschap (formaat:YYYYMMDD))&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; GeefUitgeschrevenLeden &amp;lt;== (oud: GeefOpgezegdeLeden)&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccRegio&#039;       =&amp;gt; $hccRegio,    // of leeg&lt;br /&gt;
      &#039;hccIg&#039;          =&amp;gt; $hccIg,       // of leeg&lt;br /&gt;
      &#039;datum_vanaf&#039;    =&amp;gt; $datum_sinds, // YYYY-MM-DD of YYYYMMDD of leeg (leeg: 3 dagen geleden)&lt;br /&gt;
      &#039;datum_tot&#039;      =&amp;gt; $datum_tot,   // YYYY-MM-DD of YYYYMMDD of leeg (leeg: vandaag)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Uitgeschreven leden&#039;,&lt;br /&gt;
   [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
   [&#039;hccIg&#039;       =&amp;gt; $hccIg,]&lt;br /&gt;
   [&#039;datum_vanaf&#039; =&amp;gt; $datum_vanaf,]&lt;br /&gt;
   [&#039;datum_tot&#039;   =&amp;gt; $datum_tot,]&lt;br /&gt;
   [&#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
     [array(&lt;br /&gt;
        &#039;hccLogin&#039;               =&amp;gt; $hccLogin,&lt;br /&gt;
        &#039;hccLidNummer&#039;           =&amp;gt; $hccLidnummer,&lt;br /&gt;
        &#039;sn&#039;                     =&amp;gt; $sn,&lt;br /&gt;
        &#039;DatumEindeLidmaatschap&#039; =&amp;gt; $DatumEindeLidmaatschap)]*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCCpartner aanroepen ===&lt;br /&gt;
(interface versie 1)&amp;lt;br&amp;gt;&lt;br /&gt;
(oude interface, niet meer gebruiken!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.1 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    array(&#039;partnerLogin&#039;,    $partnerLogin),&lt;br /&gt;
    array(&#039;partnerPassword&#039;, $partnerPassword),&lt;br /&gt;
    array(&#039;hccLidnummer&#039;,    $hcclidnummer),&lt;br /&gt;
    array(&#039;postcode&#039;,        $postcode)));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;TRUE&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;FALSE&#039;));&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Onjuiste credentials&#039;));&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
     &#039;HCCpartner&#039;,&lt;br /&gt;
     array(&lt;br /&gt;
       &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
       array(&#039;parameter&#039;, $iets)));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;OnbekendeAanroep&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Opdracht onbekend&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCCpartners aanroepen ===&lt;br /&gt;
(interface versie 2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.2 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;          =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
      &#039;partnerLogin&#039;    =&amp;gt; $partnerLogin,&lt;br /&gt;
      &#039;partnerPassword&#039; =&amp;gt; $partnerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hcclidnummer,&lt;br /&gt;
      &#039;postcode&#039;        =&amp;gt; $postcode,&lt;br /&gt;
     [&#039;ServerID&#039;        =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;          =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;        =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;groepering=$groepering&#039;]); // als de partner beperkt is tot 1 groepering&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;FALSE&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;    =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
      &#039;parameter&#039; =&amp;gt; $iets));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Opdracht onbekend&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-kader aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** beheer.hcc.nl **&lt;br /&gt;
// F.2 Controleer of dit een kaderlid is&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsKaderLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Is kaderlid&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;cn&#039;              =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;              =&amp;gt; $sn,&lt;br /&gt;
    &#039;hccRol&#039;          =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;mail&#039;            =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;      =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;    =&amp;gt; $hccKaderMail,&lt;br /&gt;
    &#039;hccKaderForward&#039; =&amp;gt; $hccKaderForward);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Is geen kaderlid&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.4 Vraag alle groeperingen op&lt;br /&gt;
// Het is mogelijk om een groepering te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  ToonInOverzichtenFilter : attribuut &#039;hccToonInOverzichten&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  BulletinsFilter         : attribuut &#039;hccBulletins&#039;&lt;br /&gt;
//  EmailFilter             : attribuut &#039;hccFunctionalEmail&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;                =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;                  =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;                =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;          =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;BulletinsFilter&#039;         =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;EmailFilter&#039;             =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;&#039; | &#039;TRUE&#039;));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;                  =&amp;gt; &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    &#039;Status&#039;                  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;                 =&amp;gt; &#039;Lijst met groeperingen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;                  =&amp;gt; $groeperingen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;          =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.5 Vraag alle kaderrollen op&lt;br /&gt;
// Het is mogelijk om een kaderrol  te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Lijst met kaderrollen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;             =&amp;gt; $kaderrollen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de kantoor-beheerpagina **&lt;br /&gt;
// F.9 Geef de gevevens van de mailbox van dit kaderlid&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;     =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039;  =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039;));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de Joomla Kadernet module **&lt;br /&gt;
//  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID en als extra hccCode van de aanvrager)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccCode&#039;        =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
      &#039;hccLidnummer    =&amp;gt; $hccLidnummer, // lidnummer van het te muteren hcc lid&lt;br /&gt;
      &#039;hccRol&#039;         =&amp;gt; $hccRol,       // de nieuwe dan wel op te heffen rol&lt;br /&gt;
                                         // de rol &#039;ALLES_WEG&#039; ruimt alle rollen van dit hcc lid voor deze groepering op&lt;br /&gt;
      &#039;actie&#039;          =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Groepering samenstelling aangepast&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Bedankmail gestuuurd aan ex-kaderlid&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Oude rol niet gevonden&#039; |&lt;br /&gt;
		   &#039;Nieuwe rol kan niet samen met bestaande rol&#039; |&lt;br /&gt;
		   &#039;Alleen voorzitter of secretaris kan kadermutaties uitvoeren&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-groepering aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// I.2 controleer of een gebruiker bestaat op basis van de combinatie&lt;br /&gt;
//     lidnummer + postcode + huisnummer&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
// (alternatieve authenticatie mogelijk door lidnummer + hcc-code in te vullen)&lt;br /&gt;
//&lt;br /&gt;
// Aan de aanroeper worden zekere eisen gesteld:&lt;br /&gt;
// * dient een rol te vervullen binnen de groepering &#039;FOR&#039;(forum)&lt;br /&gt;
// * dan wel dient de rol &#039;VRBK&#039; (vraagbaak) te vervullen binnen een groepering&lt;br /&gt;
//&lt;br /&gt;
// Er wordt door de gehele leden-database gezocht, waarna terug wordt gegeven &lt;br /&gt;
// * of dit hcc lid inderdaad bestaat&lt;br /&gt;
// en, als het om een aanvraag van een vraagbaak vrijwilliger gaat, &lt;br /&gt;
// * tevens of het gezochte hcc lid deel uitmaakt van zijn groepering&lt;br /&gt;
//&lt;br /&gt;
// ==&amp;gt; Mag weg: laatste aanroep 2018.07.27 &amp;lt;==&lt;br /&gt;
//&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;        =&amp;gt; [$hccLogin | $hccLidnummer],&lt;br /&gt;
      &#039;userPassword&#039;    =&amp;gt; [$userPassword | $hccCode],&lt;br /&gt;
      &#039;zoekhccLidnr&#039;    =&amp;gt; $zoekhccLidnr,&lt;br /&gt;
      &#039;zoekhccPostcode&#039; =&amp;gt; $zoekhccPostcode,&lt;br /&gt;
      &#039;zoekhccHuisnr&#039;   =&amp;gt; $zoekhccHuisnr,&lt;br /&gt;
      &#039;zoekgroepering&#039;  =&amp;gt; $zoekgroepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens gecontroleerd&#039;,&lt;br /&gt;
   [&#039;Groeperingslid&#039; =&amp;gt; $IsGroeperingLid]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker bestaat niet&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Wel HCC lid, maar geen lid van groepering $groepering&#039; |&lt;br /&gt;
                 &#039;Onvoldoende rechten&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HenZ aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// I.3 Geef de einddatum van een actief dan wel uitgeschreven lid&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
    &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccEindDatum&#039; =&amp;gt; $hccEindDatum (&#039;yyyymmdd&#039; | &#039;&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;Lidnummer niet gevonden&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== (Forum,vraagbaak) onderwerpen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// L.1 MaakOnderwerp&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is aangemaakt&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.2 VerwijderOnderwerp&lt;br /&gt;
&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is verwijderd&#039;,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039;            |&lt;br /&gt;
                   &#039;Geen webmaster&#039;                 |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;         |&lt;br /&gt;
		   &#039;Ruim eerst alle geautoriseerde gebruikers op&#039; |&lt;br /&gt;
		   &#039;Kan onderwerp niet verwijderen&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.3 GeefOnderwerpen &lt;br /&gt;
// Geef het array met de lijst van onderwerpen voor de betreffende groepering&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerpen opgevraagd&#039;,&lt;br /&gt;
    &#039;onderwerpen&#039; =&amp;gt; $onderwerpen); // het array met onderwerpen&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.4 MuteerOnderwerp&lt;br /&gt;
// Pas de description van een onderwerp aan&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
   &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
   array(&lt;br /&gt;
     &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
     &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
     &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
     &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     &#039;groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
     &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
     &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp aangepast&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039; |&lt;br /&gt;
		   &#039;Onderwerp behoort bij andere groepering&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
// Geef kaderlid $kaderLidNr de autorisatie MOD, VRBK of RED bij onderwerp $onderwerp&lt;br /&gt;
// (of haal die autorisatie weg)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
    &#039;onderwerp&#039;      =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;kaderLidNr&#039;     =&amp;gt; $kaderLidNr,&lt;br /&gt;
    &#039;hccAutorisatie&#039; =&amp;gt; &#039;MOD&#039; | &#039;VRBK&#039; | &#039;RED&#039;,&lt;br /&gt;
   [&#039;verwijder&#039;      =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp autorisatie aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Onjuiste autorisatie opgegeven&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Autorisaties opgehaald&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;    =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039;  =&amp;gt; $description,&lt;br /&gt;
    &#039;autorisaties&#039; =&amp;gt; &lt;br /&gt;
      [Array(&lt;br /&gt;
        &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer&lt;br /&gt;
        &#039;cn&#039;              =&amp;gt; $cn&lt;br /&gt;
        &#039;hccAutorisatie&#039;  =&amp;gt; {komma-gescheiden autorisaties})]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Dynamics Cloud (Cayentis) onderwerpen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// M.1 Upload_CSV_bestand&lt;br /&gt;
// De CRM proxy upload de dagelijkse CSV synchronisatie-bestanden naar de XML-RPC server&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;      =&amp;gt; $beheerLogin,     // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039;   =&amp;gt; $beheerPassword,  // xml-rpc password&lt;br /&gt;
    &#039;CSV_bestand_type&#039; =&amp;gt; &#039;1&#039; | &#039;2&#039; | &#039;3&#039; , // 1=Contactpersonen/Hoofdlidmaatschappen&lt;br /&gt;
                                            // 2=Gremiumlidmaatschap codes&lt;br /&gt;
                                            // 3=Gremiumlidmaatschappen&lt;br /&gt;
    &#039;CSV_bestand&#039;      =&amp;gt; $CSV_bestand));   // het CSV bestand (base64 encoded)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bestand opgeslagen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.2 SchrijfNieuwLidIn&lt;br /&gt;
// &lt;br /&gt;
// Maak in het CRM een nieuw HCC lid aan&lt;br /&gt;
// De NAW gegevens worden in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;NAWgegevens&#039;    =&amp;gt; $NAW_Array,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress);&lt;br /&gt;
// $NAW_array = array(&lt;br /&gt;
//   &#039;GeboorteDatum&#039;         =&amp;gt; $geboortedatum,&lt;br /&gt;
//   &#039;Geslacht&#039;              =&amp;gt; $geslacht,&lt;br /&gt;
//   &#039;Voornaam&#039;              =&amp;gt; $voornaam,&lt;br /&gt;
//   &#039;Voorletters&#039;           =&amp;gt; $voorletters,&lt;br /&gt;
//   &#039;Tussenvoegsel&#039;         =&amp;gt; $tussenvoegsel,&lt;br /&gt;
//   &#039;Achternaam&#039;            =&amp;gt; $achternaam,&lt;br /&gt;
//   &#039;Straatnaam&#039;            =&amp;gt; $straatnaam,&lt;br /&gt;
//   &#039;Huisnummer&#039;            =&amp;gt; $huisnummer,&lt;br /&gt;
//   &#039;HuisnummerToevoeging&#039;  =&amp;gt; $huisnummertoevoeging,&lt;br /&gt;
//   &#039;Woonplaats&#039;            =&amp;gt; $woonplaats,&lt;br /&gt;
//   &#039;Postcode&#039;              =&amp;gt; $postcode,&lt;br /&gt;
//   &#039;Land&#039;                  =&amp;gt; $land,&lt;br /&gt;
//   &#039;Telefoonnummer&#039;        =&amp;gt; $telefoonnummer,&lt;br /&gt;
//   &#039;MobielNummer&#039;          =&amp;gt; $mobielnummer,&lt;br /&gt;
//   &#039;Mail&#039;                  =&amp;gt; $mail,&lt;br /&gt;
//   &#039;IBAN&#039;                  =&amp;gt; $IBAN,&lt;br /&gt;
//   &#039;Interessegroep&#039;        =&amp;gt; $IGs, // komma-gescheiden lijst met IG&#039;s&lt;br /&gt;
//   &#039;Geschenk&#039;              =&amp;gt; $geschenk,&lt;br /&gt;
//   &#039;Actiecode&#039;             =&amp;gt; $actiecode,&lt;br /&gt;
//   &#039;Voorwaarden&#039;           =&amp;gt; $Akkoord); // &#039;Akkoord&#039;&lt;br /&gt;
)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;nieuw lid ingeschreven&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;  =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccCode&#039;   =&amp;gt; $hccCode);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.3 Verwerk_JSON_mutatie&lt;br /&gt;
// De CRM proxy kan NAW en/of IG mutaties en/of hccCode mutaties live doorgeven&lt;br /&gt;
// Deze gegevens worden in JSON in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;mutatie_type&#039;   =&amp;gt; &#039;1&#039; | &#039;2&#039;,       // 1=Contactpersoon/Hoofdlidmaatschap&lt;br /&gt;
                                         // 2=Gremiumlidmaatschap&lt;br /&gt;
    &#039;JSON_mutatie&#039;   =&amp;gt; $JSON_mutatie)); // de JSON payload&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Mutatie verwerkt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.4 Vertaal landcode&lt;br /&gt;
// Het CRM werkt met numerieke landcodes, wij met cijfers&lt;br /&gt;
// Vertaal die&lt;br /&gt;
// Er moet in de aanroep 1 veld aanwezig zijn, beide waarden komen in het antwoord terug&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ISO_landcode&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    [&#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,]&lt;br /&gt;
    [&#039;ISO_code   &#039;  =&amp;gt; $ISO_code]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;ISO code lookup geslaagd&#039;,&lt;br /&gt;
    &#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,&lt;br /&gt;
    &#039;ISO_code   &#039;  =&amp;gt; $ISO_code,&lt;br /&gt;
    &#039;ISO_benaming&#039; =&amp;gt; $ISO_benaming); // de descriptive name van deze ISO code&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Kan geen bijpassende vertaling vinden&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
// M.5 MuteerAanmeldingsformulier&lt;br /&gt;
// Sla een JSON veld op in de XML-RPC server zodat deze weer opgehaald kan worden door de websites&lt;br /&gt;
// Authenticatie op basis van hccLidnummer en JoomlaToken&lt;br /&gt;
// Deze mutaties mogen alleen door HN#WM of SITE#WM gedaan worden.&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    MuteerAanmeldingsformulier,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;formulierdata&#039; =&amp;gt; $formulierdata, // JSON veld met alle gegevens voor het aanmeld formulier&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress ));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;MuteerAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;aanmeldingsformulier bijgewerkt&#039;;&lt;br /&gt;
 &lt;br /&gt;
// M.6 HaalAanmeldingsformulier&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    HaalAanmeldingsformulier,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;HaalAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;formulierdata&#039; =&amp;gt; $formulierdata); // JSON veld met alle gegevens voor het aanmeld formulier &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// M.7 GeefFactuurOverzicht&lt;br /&gt;
// (authenticatie op basis van hccLidnummer + JoomlaToken + siteID&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    GeefFactuurOverzicht,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),]&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID, &lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;           =&amp;gt; &#039;GeefFactuurOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;           =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;FactuurOverzicht&#039; =&amp;gt; $FactuurOverzicht); &lt;br /&gt;
//  $FactuurOverzicht =&lt;br /&gt;
//     array(&lt;br /&gt;
//       array(&lt;br /&gt;
//         &#039;FactuurID&#039;     =&amp;gt; &#039;a5b93460-4536-ea11-a813-000d3a2c53fa&#039;,&lt;br /&gt;
//         &#039;FactuurNummer&#039; =&amp;gt; &#039;200118673J5&#039;&lt;br /&gt;
//         &#039;FactuurDatum&#039;  =&amp;gt; &#039;2020-01-15&#039;&lt;br /&gt;
//         &#039;bedrag&#039;        =&amp;gt; 42.37&lt;br /&gt;
//         &#039;BetaalStatus&#039;  =&amp;gt; 0]));&lt;br /&gt;
//     )&lt;br /&gt;
&lt;br /&gt;
// M.8 HaalFactuur&lt;br /&gt;
// (authenticatie op basis van JoomlaToken of FactuurToken)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    HaalFactuur,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;FactuurToken&#039;  =&amp;gt; $FactuurToken,]&lt;br /&gt;
      &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalFactuur&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;factuur&#039; =&amp;gt; $factuurgegevens); &lt;br /&gt;
//  $factuurgegevens =&lt;br /&gt;
//    array(&lt;br /&gt;
//         &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
//         &#039;FactuurDatum&#039;  =&amp;gt; $FactuurDatum,&lt;br /&gt;
//         &#039;FactuurID&#039;     =&amp;gt; $FactuurID,&lt;br /&gt;
//         &#039;Bestandsnaam&#039;  =&amp;gt; $Bestandsnaam,&lt;br /&gt;
//         &#039;PDF&#039;           =&amp;gt; $PDF) // base64 encoded PDF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Echo test ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// t.b.v. controle of de verbinding met de XML-RPC server functioneert&lt;br /&gt;
// Eenvoudige echo test&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;echo&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;What&#039;     =&amp;gt; $string,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;echo&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; $string);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HenZ XML-RPC interface ===&lt;br /&gt;
&lt;br /&gt;
Overzicht van XML-RPC procedures die bij HenZ draaien&lt;br /&gt;
(worden via de Hobbynet XML-RPC server afgehandeld)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- Action=2&lt;br /&gt;
  wijzig gebruikersnaam en wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=3&lt;br /&gt;
  controleer of een gebruikersnaam bestaat&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.2)&lt;br /&gt;
&lt;br /&gt;
- Action=4&lt;br /&gt;
  creer een nieuwe gebruiker. Per lidnummer is er 1 account. Als er al een &lt;br /&gt;
  account voor dit lidnummer bestaat wordt het bestaande account hernoemd.&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.1)&lt;br /&gt;
&lt;br /&gt;
- Action=5&lt;br /&gt;
  wijzig wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=7&lt;br /&gt;
  Uitgeschreven lid is weer actief lid geworden&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&lt;br /&gt;
- Action=8&lt;br /&gt;
  Lid heeft een nieuwe hcc-code gekregen&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Release notes ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2012.02.08 Wijzigingen versie 5:&lt;br /&gt;
 - 4.1 verwijder_hcc_Lidnummer i.p.v. hcc_Lidnummer&lt;br /&gt;
 - 4.1 optionele extra parameter verwijder_hccLogin&lt;br /&gt;
 - Optionele parameters aangegeven&lt;br /&gt;
 - Vanwege de duidelijkheid de beheerLogin en beheerPassword velden&lt;br /&gt;
   bovenin de betreffende aanroepen gezet&lt;br /&gt;
   (De volgorde van de parameters is niet relevant, dus dit is geen&lt;br /&gt;
    interface-aanpassing)&lt;br /&gt;
2012.02.16 Wijzigingen versie 6:&lt;br /&gt;
 - 2.1/2.2/2.3 geef ook cn en sn terug na aanpassen van het wachtwoord&lt;br /&gt;
 - 3.1 geef cn en sn terug na aanmaken nieuwe gebruiker&lt;br /&gt;
2012.02.27 Wijzigingen versie 7:&lt;br /&gt;
 - Neem de XML-RPC interface van HenZ in deze XML-RPC server op&lt;br /&gt;
   8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gegevens tevens in LDAP op&lt;br /&gt;
 - 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.2 wijzig wachtwoord, optie 2&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * gebruikersnaam kan niet meer via deze interface aangepast worden&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.3 wijzig wachtwoord, optie 3&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
2012.03.26 Wijzigingen versie 8:&lt;br /&gt;
  - Breidt de XML-RPC interface van HenZ in deze XML-RPC server uit met&lt;br /&gt;
    8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
2012.04.09 Wijzigingen versie 9:&lt;br /&gt;
 - Vervang alle &#039;ldap&#039; aanroepen door &#039;HCCldap&#039; aanroepen&lt;br /&gt;
 - documentatie van HenZ call action=2 aangepast, action=5 toegevoegd&lt;br /&gt;
2012.05.03 Wijzigingen versie 10:&lt;br /&gt;
 - 1.1 / 1.2 / 1.3 geven nu ook &#039;ProfielBekend&#039; terug om uniek te bepalen&lt;br /&gt;
   of deze bezoeker een first-time-login pagina te zien dient te krijgen&lt;br /&gt;
 - documentatie van 2.1 (wijzig wachtwoord) aangepast: &lt;br /&gt;
   2.1 kan alleen als profiel is doorlopen&lt;br /&gt;
 - nieuwe procedure t.b.v. zoekscherm PC30&lt;br /&gt;
   * A.1 ZoekHCCLid &lt;br /&gt;
     - hiervoor is de database met diverse velden uitgebreid&lt;br /&gt;
       (postcode, e-mailadres, huisadres, woonplaats, land, telefoonnummer)&lt;br /&gt;
       Dit heeft impact op diverse andere procedures (t.b.s.)&lt;br /&gt;
 - nieuwe procedure t.b.v. &#039;gewone&#039; profielpagina&lt;br /&gt;
   * B.1 GeefDBFPersoonID&lt;br /&gt;
 - nieuwe procedure t.b.v. cron-job&lt;br /&gt;
   * C.1 GeefOpgezegdeLeden&lt;br /&gt;
2012.05.10 Wijzigingen versie 11&lt;br /&gt;
 - 1.3 GebruikerBestaatControle&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
   * nieuw veld in antwoord: hccPseudoniem&lt;br /&gt;
 - 2.3 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 2.4 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * nieuwe parameter: nieuw_hccPseudoniem&lt;br /&gt;
   * alle parameters zijn verplicht (niet langer optioneel)&lt;br /&gt;
   * nieuw antwoord: Gegevenscombinatie onjuist&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * Nieuwe procedure t.b.v. 1e keer doorlopen profielpagina&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * &#039;Zoeklimiet bereikt&#039; wordt als ExtraInfo meegegeven&lt;br /&gt;
   * nieuwe velden in antwoord: hccPseudoniem en hccLogin&lt;br /&gt;
 - B.1 GeefDBFPersoonID&lt;br /&gt;
   * Zoeken kan nu ook op hccLogin en op hccPseudoniem&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden&lt;br /&gt;
   * Geef nu ook hccLogin en hccPseudoniem terug&lt;br /&gt;
2012.05.14 Wijzigingen versie 12&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook DBFPersoonID terug&lt;br /&gt;
 - 4.1 Gooi een gebruiker weg.&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 5.1 Wijzig hccIG&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 6.1 Wijzig hccRegio&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 7.1 Wijzig hccRol&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
2012.05.20 Wijzigingen versie 13&lt;br /&gt;
 - A.1 ZoekHCCLid &lt;br /&gt;
   * Geef resultaten gestructureerder formaat&lt;br /&gt;
   * Geef in ExtraInfo weer hoeveel echte resultaten er gevonden zijn&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef resultaten in gestructureerder formaat&lt;br /&gt;
2012.06.03 Wijzigingen versie 14&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * Geef ook DBFPersoonID mee&lt;br /&gt;
2012.08.17 Wijzigingen versie 15&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef ook hccLogin in het antwoord terug&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.09.29 Wijzigingen versie 16&lt;br /&gt;
 - Alle cron gerelateerde opdrachten verwijderd&lt;br /&gt;
   * 3.1 NieuweGebruiker&lt;br /&gt;
   * 4.1 GooiGebruikerWeg&lt;br /&gt;
   * 5.1 WijzigHccIG&lt;br /&gt;
   * 6.1 WijzigHccRegio&lt;br /&gt;
   * 7.1 WijzigHccRol&lt;br /&gt;
2012.10.28 Wijzigingen versie 17&lt;br /&gt;
 - nieuwe procedure t.b.v. PC30 beheerpagina&lt;br /&gt;
   * A.2 HaalPC30Token&lt;br /&gt;
 - nieuwe procedure t.b.v. Drupal profielpagina&lt;br /&gt;
   * 2.4 vervallen &lt;br /&gt;
     (WijzigGebruikersGegevens op basis van pseudoniem)&lt;br /&gt;
   * 2.5 WijzigGebruikersGegevens&lt;br /&gt;
     Nieuwe keuze: wijzig pseudoniem&lt;br /&gt;
2012.11.14 Wijzigingen versie 18&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook mail in het antwoord terug&lt;br /&gt;
2012.11.30 Wijzigingen versie 19&lt;br /&gt;
 - E.1 HCCkader/WijzigGebruikersGegevens&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.1 / F.2 / F.3 ControleerKaderlid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.12.18 Wijzigingen versie 20&lt;br /&gt;
 - Haal DBFPersoonID weg uit alle aanroepen en alle resultaten&lt;br /&gt;
   * Antwoord van 1.x GebruikerBestaatControle&lt;br /&gt;
   * B.1 GeefDBFPersoonID opgeheven&lt;br /&gt;
 - A.1 ZoekHCCLid geeft nu ook hccMobiel terug (t.b.v. PC30 zoekpagina)&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden verder uitgewerkt:&lt;br /&gt;
   * Geeft alleen de door Drupal gebruikte velden &#039;hccLogin&#039; en &#039;hccEindDatum&#039;&lt;br /&gt;
     terug in het antwoord&lt;br /&gt;
   * Geeft nu &#039;echte&#039; antwoorden i.p.v. dummy resultaten&lt;br /&gt;
 - F.1 ControleerKaderlid geeft nu ook optioneel &#039;sn&#039; en &#039;givenName&#039; &lt;br /&gt;
     terug (in de beheer-variant)&lt;br /&gt;
2013.01.25 Wijzigingen versie 21&lt;br /&gt;
 - A.1 ZoekHCCLid uitgebreid&lt;br /&gt;
   * Geeft nu ook hccBeginDatum, hccEindDatum en hccRol terug&lt;br /&gt;
2013.02.02 Wijzigingen versie 22&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * Interface aangepast&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2013.03.01 Wijzigingen versie 23&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Geeft andere resultaten terug&lt;br /&gt;
 - 2.2 WijzigWachtwoord&lt;br /&gt;
   * Geeft nu ook hccLogin terug (voor ww-vergeten op de Drupal site)&lt;br /&gt;
 - HCCenquete implementatie&lt;br /&gt;
   * G.1 Expandeer NL postcode&lt;br /&gt;
   * G.2 Haal lidgegevens op&lt;br /&gt;
   * G.3 Pas lidgegevens aan&lt;br /&gt;
2013.03.18 Wijzigingen versie 24&lt;br /&gt;
 - ZoekGroeperingsLid op basis van token&lt;br /&gt;
 - A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - A.5 VraagLidgegevensTokenAan&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2013.04.07 Wijzigingen versie 25&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   Simpeler interface ontwikkeld (&#039;HCCpartners&#039; i.p.v. &#039;HCCpartner&#039;)&lt;br /&gt;
 - G.3 mag ook Tussenvoegsels aanpassen&lt;br /&gt;
2013.04.25 Wijzigingen versie 26&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   Nieuwe interface voor validatie vanaf groeperings websites&lt;br /&gt;
2013.05.03 Wijzigingen versie 27&lt;br /&gt;
 - 2.6 HaalOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.8 HaalOptInLijst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - HCCpartners aanroep nieuwe interface (&#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;)&lt;br /&gt;
2013.07.05 Wijzigingen versie 28&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * extra parameters (mail, hccPseudoniem) in het antwoord&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
2013.08.31 Wijzigingen versie 29&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / ControleerKaderlid&lt;br /&gt;
   * extra output parameter (hccKaderMail)&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccForumLogin)&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   * komma-gescheiden lijst met groeperingen mogelijk&lt;br /&gt;
   * extra output parameter (mailHccnet)&lt;br /&gt;
2013.12.26 Wijzigingen versie 30&lt;br /&gt;
 - 3.1 Geef mijn lidnummer&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * geef nu ook &#039;ProfielBekend&#039; terug om aan de PC30 omgeving door te geven&lt;br /&gt;
     dat het wachtwoord niet veranderd mag worden door PC30&lt;br /&gt;
 - A.6 GeefBezoekersOverzicht&lt;br /&gt;
   * geef nu ook &#039;Locatie&#039; terug indien van toepassing&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * parameters aangepast&lt;br /&gt;
   * authenticatie op basis van hccLogin + userPassword of lidnummer + hcc-code&lt;br /&gt;
   * geen algemene hcc-forum authenticatie meer mogelijk&lt;br /&gt;
 - F.7 ControleerKaderlidGroep&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2014.02.01 Wijzigingen versie 31&lt;br /&gt;
 - A.8 RegistreerGast&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - nieuwe interface (losse, unieke aanroepen, niet meer gegroepeerd)&lt;br /&gt;
2014.09.27 Wijzigingen versie 32&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden hernoemd naar GeefUitgeschrevenLeden&lt;br /&gt;
 - I.3 GeefhccEindDatum&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - Action=7 en Action=8 toegevoegd aan de HenZ interface&lt;br /&gt;
2014.12.12 Wijzigingen versie 33&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / IsKaderLid&lt;br /&gt;
   * extra output parameter (mail, mailHccnet, hccKaderForward)&lt;br /&gt;
 - F.8 HCC-kader / ZetKaderForward&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.05.06 Wijzigingen versie 34&lt;br /&gt;
 - GeefMijnGegevens&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - ValideerPCActiveAbonnee&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 1.4 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccKaderForward)&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * optionele extra output parameter (ExtraInfo)&lt;br /&gt;
2015.09.27 Wijzigingen versie 35&lt;br /&gt;
 - HeeftForumCredentials&lt;br /&gt;
   * vervallen&lt;br /&gt;
2015.11.20 Wijzigingen versie 36&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.12.13 Wijzigingen versie 37&lt;br /&gt;
 - serverID als optionele parameter&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * Maak velden optioneel&lt;br /&gt;
2016.01.05 Wijzigingen versie 38&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
2016.01.15 Wijzigingen versie 39&lt;br /&gt;
 - H.3 GeefMijnGegevens&lt;br /&gt;
   * geeft nu ook hccOptIn terug&lt;br /&gt;
   * geeft nu ook JoomlaToken terug&lt;br /&gt;
 - H.4 PasOptInKeuzeAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - SiteID en RemoteID als optionele parameter&lt;br /&gt;
2016.03.17 Wijzigingen versie 40&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.03.20 Wijzigingen versie 41&lt;br /&gt;
 - ServerID, SiteID en RemoteID als optionele parameters bij alle aanroepen&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - A.9 GeefLocatieNamen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.6 WijzigHccRol&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - F.7 IsGroeperingsKaderlid&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.5 WijzigGebruikersGegevens (hccPseudoniem)&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * vervallen&lt;br /&gt;
2016.04.02 Wijzigingen versie 42&lt;br /&gt;
 - H.6 GeefMijnKaderDetails&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.07.03 Wijzigingen versie 43&lt;br /&gt;
 - Ubuntu 16.04 aanpassingen (PHP versie 7) beschreven&lt;br /&gt;
2016.09.01 Wijzigingen versie 44&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * extra parameter &#039;hccMobiel&#039;&lt;br /&gt;
2016.10.13 Wijzigingen versie 45&lt;br /&gt;
 - H.3 GeefMijnGegevens (dedecated Joomla aanroep)&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
   * Als het om een webmaster gaat, vul dan eventueel hccRegio of hccIG aan &lt;br /&gt;
     met die groepering, ook als hij geen lid is van die groepering&lt;br /&gt;
 - I.4 GebruikerBestaatControle&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
2016.12.01 Wijzigingen versie 46&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar teruggezet&lt;br /&gt;
2017.05.28 Wijzigingen versie 47&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens (t.b.v. eenmalige kadermailing)&lt;br /&gt;
 - H.8 ZetMinimaleKaderGegevens  (t.b.v. eenmalige kadermailing)&lt;br /&gt;
2017.09.01 Wijzigingen versie 48&lt;br /&gt;
 - A.10 SchrijfNietlidInOpBulletin nu alleen voor 1 bulletin tegelijk&lt;br /&gt;
 - 2.2 WijzigGebruikersGegevens (op basis van gebruikersnaam en wachtwoord)&lt;br /&gt;
       is vervallen (was een oude Drupal aanroep)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens geeft ook hccKaderToonMobiel terug&lt;br /&gt;
2017.11.14 Wijzigingen versie 49&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft geen hccKaderToonMobiel meer terug&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft alleen hccMobiel als hccKaderToonMobiel dat toestaat&lt;br /&gt;
2018.02.18 Wijzigingen versie 50&lt;br /&gt;
 - H.6 GeefMijnKaderDetails geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.9 PasKaderGegevensAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft 3 extra parameters terug (hccKaderMail, hccKaderForward,&lt;br /&gt;
   hccKaderToonMobiel)&lt;br /&gt;
 - JoomlaTokens worden gevalideerd op siteID, niet langer op serverID&lt;br /&gt;
 - diverse aanroepen kunnen nu ook via de bezoekersregistratie-proxy aangeroepen worden. &lt;br /&gt;
   Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
   (GeefAlleGroeperingen, GeefAlleKaderRollen, GeefLocaties, GeefLocatieNamen)&lt;br /&gt;
   De bezoekersregistratie aanroepen hebben enkel JoomlaToken als extra parameter nodig:&lt;br /&gt;
   (LidBezoektBijeenkomst, GeefBezoekersOverzicht)&lt;br /&gt;
2018.02.26 Wijzigingen versie 51&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft extra parameter hccMobiel terug &lt;br /&gt;
 - H.9 PasKaderGegevensAan kan nu ook kadermail password aanpassen&lt;br /&gt;
 - K.1 ValideerToken&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - K.2 ValideerHCCCode&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2018.03.17 Wijzigingen versie 52&lt;br /&gt;
 - H.3 Haal al mijn gegevens&lt;br /&gt;
   Extra optie &#039;compact&#039; om alleen essentiele resultaten te verkrijgen&lt;br /&gt;
   (t.b.v. de Android bezoekersregistratie applicatie)&lt;br /&gt;
2018.03.25 Wijzigingen versie 53&lt;br /&gt;
 - I.2 IsHCCLid&lt;br /&gt;
   (Oude aanroep teruggezet, wordt nog in vraagbaak module gebruikt)&lt;br /&gt;
2018.07.01 Wijzigingen versie 54&lt;br /&gt;
   * A.1 beheer authenticatie op basis van lidnummer + hccCode (tbv VZ-portal)&lt;br /&gt;
   * A.2 HaalPC30Token weggehaald&lt;br /&gt;
2018.08.22 Wijzigingen versie 55&lt;br /&gt;
  * 1.2 GebruikerBestaatControle&#039; (op basis van hccLogin en userPassword) weggehaald&lt;br /&gt;
  * 1.4 GebruikerBestaatControle&#039; (op basis van zoekHccLogin of zoekHccLidnr) weggehaald&lt;br /&gt;
  * 2.8 HaalOptInLijst weggehaald&lt;br /&gt;
  * E.1 PasKaderWachtwoordAan weggehaald&lt;br /&gt;
  * F.1 IsKaderLid (op basis van hccLidnr en hccCode) weggehaald&lt;br /&gt;
  * F.3 IsKaderLid (op basis van beheerdernaam en beheerderwachtwoord) was al weg&lt;br /&gt;
  * F.8 ZetKaderForward weggehaald&lt;br /&gt;
  * H.1 IsGroeperingsLid weggehaald&lt;br /&gt;
  * H.6 GeefMijnKaderDetails weggehaald&lt;br /&gt;
  * H.7 GeefMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * H.8 ZetMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * K.1 ValideerHCCCode weggehaald&lt;br /&gt;
  * K.2 ValideerToken weggehaald&lt;br /&gt;
  * H.3 GeefMijnGegevens geeft omvang kader mailbox mee terug&lt;br /&gt;
2018.11.06 Wijzigingen versie 56&lt;br /&gt;
  Nieuwe aanroepen t.b.v. forum en vraagbaak autorisaties&lt;br /&gt;
  * L.1 MaakOnderwerp&lt;br /&gt;
  * L.2 VerwijderOnderwerp&lt;br /&gt;
  * L.3 GeefOnderwerpen&lt;br /&gt;
  * L.4 MuteerOnderwerp&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
  * L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
  * H.5 ZoekKaderLeden heeft compact optie&lt;br /&gt;
2018.11.16 Wijzigingen versie 57&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie kent nu ook RED(acteur)&lt;br /&gt;
2018.12.17 Wijzigingen versie 58&lt;br /&gt;
  * A.11 GeefBezoekersAantallen (nieuwe aanroep)&lt;br /&gt;
  * H.10 PasUserWachtwoordAan (nieuwe aanroep)&lt;br /&gt;
2019.02.21 Wijzigingen versie 59&lt;br /&gt;
  * A. 6 GeefBezoekersOverzicht geeft enkel lijst van bezoekers laatste bijeenkomst&lt;br /&gt;
2019.10.26 Wijzigingen versie 60&lt;br /&gt;
  * A.4 Schrijf bezoekers niet meer automatisch in op bulletins&lt;br /&gt;
  * H.4  PasOptInKeuzeAan kan ook door LA aangeroepen worden&lt;br /&gt;
  Nieuwe aanroepen t.b.v. eigen implementatie van mijn.hcc.nl in de Joomla modules&lt;br /&gt;
  * H.11 PasPseudoniemAan&lt;br /&gt;
  * H.12 ValideerWachtwoordEisen&lt;br /&gt;
  * H.13 PasWachtwoordAan (1: op JoomlaToken, 2: op PWResetToken)&lt;br /&gt;
  * H.14 MaakPWResetToken&lt;br /&gt;
  * H.15 ValideerPWResetToken&lt;br /&gt;
  * H.16 RuimJoomlaTokenOp&lt;br /&gt;
  * A.12 GeefAlleBulletins&lt;br /&gt;
  * A.13 ExpandeerPostcode&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.18 NormaliseerTelefoon&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  * A.21 HaalIGBedragenOp&lt;br /&gt;
  * A.22 HaalTariefGroepenOp&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
  * A.24 GeefSSOUrls&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  8.1 MaakGebruikerAan&lt;br /&gt;
  F.5 GeefAlleKaderRollen&lt;br /&gt;
2020.01.04 Wijzigingen versie 61&lt;br /&gt;
  Nieuwe aanroepen t.b.v. IDEAL betaling hobbynet abonnees&lt;br /&gt;
  H.17 GeefAantalDomeinen&lt;br /&gt;
2020.01.06 Wijzigingen versie 62&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Cayentis (CRM webproxy) implementatie&lt;br /&gt;
  * M.1  Upload_CSV_bestand&lt;br /&gt;
  * M.2  SchrijfNieuwLidIn&lt;br /&gt;
  * M.3  Verwerk_JSON_mutatie&lt;br /&gt;
  * M.4  ISO_landcode&lt;br /&gt;
  * M.5  MuteerAanmeldingsformulier&lt;br /&gt;
  * M.6  HaalAanmeldingsformulier&lt;br /&gt;
  * M.7  GeefFactuurOverzicht&lt;br /&gt;
  * M.8  HaalFactuur&lt;br /&gt;
  * A.25 UpdateNAW&lt;br /&gt;
  Vervallen aanroepen&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  Aangepaste aanroepen&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
2020.03.27 Wijzigingen versie 63&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.18 ResetHCCCode&lt;br /&gt;
  * H.19 PasHccLoginAan&lt;br /&gt;
2020.04.10 Wijzigingen versie 64&lt;br /&gt;
  Nieuwe aanroepen &lt;br /&gt;
  * A.26 VerwijderNietLid&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  * A.1  ZoekHCCLid: nieuwe zoekoptie &#039;niet_leden&#039;&lt;br /&gt;
  Opnieuw geimplementeerd&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
2020.11.26 Wijzigingen versie 65&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.20 MaakTestLogin&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  - H.3 GeefMijnGegevens: optionele parameter &#039;hccGroepering&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Aanpassingen aan de Apache omgeving =&lt;br /&gt;
&lt;br /&gt;
== php.ini aanpassingen ==&lt;br /&gt;
De XML-RPC server zal &#039;ergens&#039; een bestand moeten kunnen vinden met de&lt;br /&gt;
gebruikersnamen t.b.v. het authenticeren bij de LDAP-server.&lt;br /&gt;
&lt;br /&gt;
Dit bestand wordt geplaatst in de map &#039;/usr/local/hobbynet/etc&#039;. Om dit&lt;br /&gt;
vanuit Apache te mogen benaderen, dient een aanpassing aan php.ini&lt;br /&gt;
gemaakt te worden:&lt;br /&gt;
&lt;br /&gt;
 /etc/php5/apache2/php.ini&lt;br /&gt;
 &lt;br /&gt;
 include_path = &amp;quot;.:/usr/share/php:/usr/share/pear:/usr/local/hobbynet/etc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Apache modules ==&lt;br /&gt;
Nieuwe server geschikt maken voor XML-RPC gebruik&lt;br /&gt;
&lt;br /&gt;
=== Apache modules (PHP 7) ===&lt;br /&gt;
Ubuntu 16.04 wordt standaard met PHP versie 7.0 uitgeleverd.&lt;br /&gt;
De opdrachten om de modules op te halen zijn:&lt;br /&gt;
 apt-get install php-xmlrpc&lt;br /&gt;
 apt-get install apache2&lt;br /&gt;
 apt-get install ldap-utils&lt;br /&gt;
 apt-get install php-ldap&lt;br /&gt;
 apt-get install libapache2-mod-php&lt;br /&gt;
&lt;br /&gt;
== Loadbalancer akties niet naar de logbestanden schrijven ==&lt;br /&gt;
De loadbalancer haalt zeer frequent een testbestand op (/test.txt), om&lt;br /&gt;
te controleren of de xml-server operationeel is. Dat levert extreem veel&lt;br /&gt;
logging op in /var/log/apache2/other_vhosts.log.&lt;br /&gt;
&lt;br /&gt;
Pas de apache configuratie zo aan, dat logging van alle opvragingen&lt;br /&gt;
vanaf de loadbalancers uitgezet wordt.&lt;br /&gt;
 /etc/apache2/sites-enabled/xml-server&lt;br /&gt;
 &lt;br /&gt;
 # Mark requests from loadbalancers&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;212\.72\.227\.93&amp;quot;          dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;212\.72\.227\.94&amp;quot;          dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;172\.31\.1\.249&amp;quot;           dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;172\.31\.1\.250&amp;quot;           dontlog&lt;br /&gt;
 CustomLog ${APACHE_LOG_DIR}/access.log common env=!dontlog&lt;br /&gt;
&lt;br /&gt;
= Firewall algemeen =&lt;br /&gt;
In de file /etc/hobby-firewall/hobby-firewall.local wordt het script&lt;br /&gt;
&#039;/usr/local/hobbynet/bin/gen_fw.sh&#039; aangeroepen.&lt;br /&gt;
Deze haalt de IP adressen op uit ldap. &lt;br /&gt;
(.local omdat we dit ook zo doen op de webservers).&lt;br /&gt;
&lt;br /&gt;
De firewall wordt 4 x per dag herstart en /etc/hobby-firewall wordt&lt;br /&gt;
gesynchroniseerd (1-richting van lb1 naar lb2) met de volgende crontab&lt;br /&gt;
entries:&lt;br /&gt;
&lt;br /&gt;
Op lb1:&lt;br /&gt;
  0  0 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55  5 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0  6 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 11 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0 12 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 17 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0 18 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 23 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
Op lb2:&lt;br /&gt;
 15  6 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15 12 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15 18 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15  0 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null &lt;br /&gt;
&lt;br /&gt;
Het encrypted backup script is verplaatst naar &#039;/usr/local/hobbynet/local&#039; en hernoemd naar &#039;backup-encrypted.bash&#039;.&lt;br /&gt;
Dit is omdat deze niet mee mag worden gesynchroniseerd.&lt;br /&gt;
&lt;br /&gt;
Tevens wordt 1x per dag /usr/local/hobbynet/bin gesynchroniseerd (1-richting van hcc-ldap-lb1 naar hcc-ldap-lb2)&lt;br /&gt;
&lt;br /&gt;
== Aanpassingen in de firewall ==&lt;br /&gt;
Op de server waar de XML-RPC server staat, moeten enkele firewall aanpassingen gemaakt worden.&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf het interne netwerk (www-prod, www-test), en vanaf eventuele andere plekken die we expliciet toe willen staan.&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf mijn.hcc.nl (XML-RPC aanroepen vanaf de portal)&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf service.hccnet.nl toe (XML-RPC aanroep GeefUitgeschrevenLeden vanuit HenZ)&lt;br /&gt;
* uitgaand: sta TCP 443 naar service.hccnet.nl toe (XML-RPC aanroepen naar HenZ)&lt;br /&gt;
* uitgaand: sta TCP 990 en 5000-6000 naar Apps.HCC.local (FTPS verkeer naar de HCC server bij Hobbynet)&lt;br /&gt;
&lt;br /&gt;
== Aanpassingen aan AppArmor ==&lt;br /&gt;
Alhoewel technisch gezien dit bij slapd behoort, neem ik het toch hier op.&lt;br /&gt;
&lt;br /&gt;
Als het Hobbynet certificaat in de map /disk/site/etc/ssl/hobby.nl/ wordt neergezet, dan zal apparrmor de toegang tot de certificaten blokkeren. Neem daarom in de &#039;&#039;&#039;local&#039;&#039;&#039; directory van apparmor het volgende op:&lt;br /&gt;
 # /etc/apparmor.d/local/usr.sbin.slapd&lt;br /&gt;
 # Site-specific additions and overrides for usr.sbin.slapd.&lt;br /&gt;
 # For more details, please see /etc/apparmor.d/local/README.&lt;br /&gt;
 #include &amp;lt;abstractions/ssl_certs&amp;gt;&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/ r,&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/* r,&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=MySQL_cluster&amp;diff=79034</id>
		<title>MySQL cluster</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=MySQL_cluster&amp;diff=79034"/>
		<updated>2020-11-22T16:34:46Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=doel=&lt;br /&gt;
Om te zorgen dat onze database server ook volledig redundant is hebben we hier een cluster gemaakt, onze loadbalancer zorgt er voor dat verkeer of op db01 of op db02 terecht komt.&lt;br /&gt;
=opzet=&lt;br /&gt;
&lt;br /&gt;
= loadbalancing =&lt;br /&gt;
Onze servers zijn opgezet in een master-master setup, dus er kan op beide gemuteerd worden, de loadbalancer verspreid de mutatie naar de andere server.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;belangrijk&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Op alle clusters moet database lbtest aanwezig zijn met tabel lbtest. Deze tabel moet minimaal 1 record hebben, hier test de loadbalancer namelijk op. De usernaam voor loadbalancer en nagios is lbtest met ww Testing123! deze gebruiker heeft alleen select rechten op deze database&lt;br /&gt;
&lt;br /&gt;
= database clusters =&lt;br /&gt;
== dbclus01-int ==&lt;br /&gt;
Dit cluster bestaat uit mysql01 en mysql02&lt;br /&gt;
&lt;br /&gt;
== hcc-dbclus02-int ==&lt;br /&gt;
Dit cluster bestaat uit mysql03 en mysql04&lt;br /&gt;
&lt;br /&gt;
== dbclus04-int ==&lt;br /&gt;
Dit cluster bestaat uit mysql05 en mysql06&lt;br /&gt;
&lt;br /&gt;
=configuratie = &lt;br /&gt;
&lt;br /&gt;
== configuratie files == &lt;br /&gt;
al deze bestanden bevinden zich in /etc/mysql/mysql.conf.d&lt;br /&gt;
&lt;br /&gt;
=== mysqld.cnf ===&lt;br /&gt;
In deze file hebben we 1 aanpassing gedaan we hebben&lt;br /&gt;
 bind-address           = 127.0.0.1&lt;br /&gt;
voorzien van commentaar&lt;br /&gt;
&lt;br /&gt;
=== ssl.cnf ===&lt;br /&gt;
Mysql beschikt over ssl daarom is dit ook geconfigureerd, onder andere de replicatie gebruikt het. De ssl.cnf file ziet er zo uit:&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 ssl-ca=/disk/site/etc/ssl/hobby.nl/CA-bundel.crt&lt;br /&gt;
 ssl-cert=/disk/site/etc/ssl/hobby.nl/hobby.nl.crt&lt;br /&gt;
 ssl-key=/disk/site/etc/ssl/hobby.nl/hobby.nl.key&lt;br /&gt;
&lt;br /&gt;
=== replicatie.cnf ===&lt;br /&gt;
Bij de replicatie is het belangrijk dat de oneven servers het server id 1 hebben en de even server id 2. Er mogen nooit 2 de zelfde id&#039;s zijn. Ook is de waarde van auto-increment-offset belangrijk; bij de oneven server is dat 1 en bij even 2. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voor oneven server ziet hij er zo uit:&lt;br /&gt;
 #sql mode uit voor toestaan lege velden&lt;br /&gt;
 sql-mode                        =       &amp;quot;&amp;quot;&lt;br /&gt;
 server-id                       =       1&lt;br /&gt;
 replicate-same-server-id        =       0&lt;br /&gt;
 auto-increment-increment        =       2&lt;br /&gt;
 auto-increment-offset           =       1&lt;br /&gt;
 relay-log                       =       mysql01-relay-bin&lt;br /&gt;
 binlog_format                   =       &amp;quot;STATEMENT&amp;quot;&lt;br /&gt;
 replicate-ignore-db             =       information_schema&lt;br /&gt;
 replicate-ignore-db             =       mysql&lt;br /&gt;
 binlog-ignore-db                =       information_schema&lt;br /&gt;
 binlog-ignore-db                =       mysql&lt;br /&gt;
 log_bin                         =       /var/log/mysql/mysql-bin.log&lt;br /&gt;
 slave-skip-errors = 1062&lt;br /&gt;
&lt;br /&gt;
=== credentials.cnf ===&lt;br /&gt;
Op de server is root voor localhost voorzien van een wachtwoord om toch mysqldump en het mysql commando te kunnen gebruiken. De eigenaar van deze file is root:mysql met permissies 640.&lt;br /&gt;
&lt;br /&gt;
=== tunning.cnf ===&lt;br /&gt;
Deze file bevat performance tuning. Dit is server specifiek, maar er moet in ieder geval deze regel in staan :&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 skip-name-resolve    =       1&lt;br /&gt;
&lt;br /&gt;
= starten/herstellen replicatie =&lt;br /&gt;
== herstel ==&lt;br /&gt;
Bij herstellen moet je op beide servers de volgende sql commando&#039;s uitvoeren:&lt;br /&gt;
 stop slave;&lt;br /&gt;
 reset slave;&lt;br /&gt;
Op de &#039;&#039;&#039;defecte&#039;&#039;&#039; server verwijder je vervolgens alle databases &#039;&#039;&#039;nadat je eerst een backup hebt gemaakt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== start replicatie === &lt;br /&gt;
Zorg er voor dat de database niet meer benaderd/gemuteerd wordt. Zet hem uit in de loadbalancer, zowel voor IPv4 als voor IPv6&amp;lt;br&amp;gt;&lt;br /&gt;
Haal bij de &#039;&#039;&#039;goede&#039;&#039;&#039; server de log positie op:&lt;br /&gt;
 mysql&amp;gt; show master status\G&lt;br /&gt;
&lt;br /&gt;
 *************************** 1. row ***************************&lt;br /&gt;
              File: mysql-bin.000057&lt;br /&gt;
          Position: 71061044&lt;br /&gt;
      Binlog_Do_DB:&lt;br /&gt;
  Binlog_Ignore_DB: information_schema,mysql&lt;br /&gt;
 Executed_Gtid_Set:&lt;br /&gt;
 1 row in set (0.00 sec)&lt;br /&gt;
Noteer de file en position&amp;lt;br&amp;gt;&lt;br /&gt;
maak mysqldump en pipe die naar de gefaalde server&lt;br /&gt;
  mysqldump --all-databases |mysql -h mysql0*-int -u jegebruikersnaam -p&lt;br /&gt;
Vul je wachtwoord in en de database wordt gedump naar de ander server (dit kan effe duren).&lt;br /&gt;
&lt;br /&gt;
Op de andere server log je nu in en geef je het volgende commando&#039;s in mysql, vul dan het password in van repl user en position bij master_log_pos en de file bij master_log_file&lt;br /&gt;
 CHANGE MASTER TO MASTER_HOST=&#039;mysql0*-int.hobby.nl&#039;, MASTER_USER=&#039;repl&#039;, &#039;&#039;&#039;MASTER_PASSWORD=&#039;******&#039;,&#039;&#039;&#039; &#039;&#039;&#039;MASTER_LOG_FILE=&#039;mysql-bin.000057&#039;,&#039;&#039;&#039; &#039;&#039;&#039;MASTER_LOG_POS=71061044,&#039;&#039;&#039; MASTER_SSL = 1, MASTER_SSL_CA = &#039;/disk/site/etc/ssl/hobby.nl/CA-bundel.crt&#039;, MASTER_SSL_CERT = &#039;/disk/site/etc/ssl/hobby.nl/hobby.nl.crt&#039;, MASTER_SSL_KEY = &#039;/disk/site/etc/ssl/hobby.nl/hobby.nl.key&#039;;&lt;br /&gt;
 start slave;&lt;br /&gt;
&lt;br /&gt;
Nu moeten we controleren of de replicatie deze kant op loopt, dit doe je met het commando &lt;br /&gt;
 mysql&amp;gt; show slave status\G&lt;br /&gt;
 *************************** 1. row ***************************&lt;br /&gt;
                Slave_IO_State: Waiting for master to send event&lt;br /&gt;
                   Master_Host: mysql02-int.hobby.nl&lt;br /&gt;
                   Master_User: repl&lt;br /&gt;
                   Master_Port: 3306&lt;br /&gt;
                 Connect_Retry: 60&lt;br /&gt;
               Master_Log_File: mysql-bin.000026&lt;br /&gt;
           Read_Master_Log_Pos: 72292974&lt;br /&gt;
                Relay_Log_File: mysql01-relay-bin.000056&lt;br /&gt;
                 Relay_Log_Pos: 72293189&lt;br /&gt;
         Relay_Master_Log_File: mysql-bin.000026&lt;br /&gt;
              &#039;&#039;&#039;Slave_IO_Running: Yes&#039;&#039;&#039;&lt;br /&gt;
             &#039;&#039;&#039;Slave_SQL_Running: Yes&#039;&#039;&#039;&lt;br /&gt;
               Replicate_Do_DB:&lt;br /&gt;
           Replicate_Ignore_DB: information_schema,mysql&lt;br /&gt;
            Replicate_Do_Table:&lt;br /&gt;
        Replicate_Ignore_Table:&lt;br /&gt;
       Replicate_Wild_Do_Table:&lt;br /&gt;
   Replicate_Wild_Ignore_Table:&lt;br /&gt;
                    Last_Errno: 0&lt;br /&gt;
                    Last_Error:&lt;br /&gt;
                  Skip_Counter: 0&lt;br /&gt;
           Exec_Master_Log_Pos: 72292974&lt;br /&gt;
               Relay_Log_Space: 72293447&lt;br /&gt;
               Until_Condition: None&lt;br /&gt;
                Until_Log_File:&lt;br /&gt;
                 Until_Log_Pos: 0&lt;br /&gt;
            Master_SSL_Allowed: Yes&lt;br /&gt;
            Master_SSL_CA_File: /disk/site/etc/ssl/hobby.nl/CA-bundel.crt&lt;br /&gt;
            Master_SSL_CA_Path:&lt;br /&gt;
               Master_SSL_Cert: /disk/site/etc/ssl/hobby.nl/hobby.nl.crt&lt;br /&gt;
             Master_SSL_Cipher:&lt;br /&gt;
                Master_SSL_Key: /disk/site/etc/ssl/hobby.nl/hobby.nl.key&lt;br /&gt;
         Seconds_Behind_Master: 0&lt;br /&gt;
 Master_SSL_Verify_Server_Cert: No&lt;br /&gt;
                 Last_IO_Errno: 0&lt;br /&gt;
                 Last_IO_Error:&lt;br /&gt;
                Last_SQL_Errno: 0&lt;br /&gt;
                Last_SQL_Error:&lt;br /&gt;
   Replicate_Ignore_Server_Ids:&lt;br /&gt;
              Master_Server_Id: 2&lt;br /&gt;
                   Master_UUID: f0de239e-2c10-11eb-b1d1-005056a982be&lt;br /&gt;
              Master_Info_File: mysql.slave_master_info&lt;br /&gt;
                     SQL_Delay: 0&lt;br /&gt;
           SQL_Remaining_Delay: NULL&lt;br /&gt;
       Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates&lt;br /&gt;
            Master_Retry_Count: 86400&lt;br /&gt;
                   Master_Bind:&lt;br /&gt;
       Last_IO_Error_Timestamp:&lt;br /&gt;
      Last_SQL_Error_Timestamp:&lt;br /&gt;
                Master_SSL_Crl:&lt;br /&gt;
            Master_SSL_Crlpath:&lt;br /&gt;
            Retrieved_Gtid_Set:&lt;br /&gt;
             Executed_Gtid_Set:&lt;br /&gt;
                 Auto_Position: 0&lt;br /&gt;
          Replicate_Rewrite_DB:&lt;br /&gt;
                  Channel_Name:&lt;br /&gt;
            Master_TLS_Version:&lt;br /&gt;
        Master_public_key_path:&lt;br /&gt;
         Get_master_public_key: 0&lt;br /&gt;
             Network_Namespace:&lt;br /&gt;
 1 row in set, 1 warning (0.00 sec)&lt;br /&gt;
Controleer of &#039;&#039;&#039;Slave_IO_Running&#039;&#039;&#039; en &#039;&#039;&#039;Slave_SQL_Running&#039;&#039;&#039; op yes staan.&amp;lt;br&amp;gt;&lt;br /&gt;
Als dit is het geval moeten we de replicatie naar de 1e server ook herstellen. Dit doe je door dezelfde stappen te herhalen vanaf &#039;show master status&#039;&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Inventaris&amp;diff=78935</id>
		<title>Inventaris</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Inventaris&amp;diff=78935"/>
		<updated>2020-11-14T11:21:27Z</updated>

		<summary type="html">&lt;p&gt;Hans: /* Inventaris overzicht. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Inventaris overzicht. ==&lt;br /&gt;
&lt;br /&gt;
In dit overzicht behoort tenminste alle apparatuur voor te komen, die maximaal 3 jaar oud is.&lt;br /&gt;
&lt;br /&gt;
De gegevens van deze pagina kunnen gebruikt worden als basis van het jaarlijks in te vullen hardware inventarisatie formulier, zoals dat door de penningmeester ieder jaar aan het hcc kantoor ter hand gesteld dient te worden.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! datum aankoop	|| artikelomschrijving	|| serienummer	|| aankoopprijs			|| leverancier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|30 oktober 2019&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;cisco-sw-01&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
SG350X-48 48-Port Gigabit Stackable Managed Switch&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|DNI241508JA &#039;&#039;&#039;vervangen onder garantie 26-10-2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;s&amp;gt;DNI2228066K&amp;lt;/s&amp;gt;&lt;br /&gt;
Factuur: [[Media:f-cisco-switch-2019-10-30-1.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 362,81 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Azerty&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|30 oktober 2019&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;cisco-sw-02&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
SG350X-48 48-Port Gigabit Stackable Managed Switch&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|DNI240108FY &#039;&#039;&#039;vervangen onder garantie 26-10-2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;s&amp;gt;DNI22280660&amp;lt;/s&amp;gt;&lt;br /&gt;
Factuur: [[Media:f-cisco-switch-2019-10-30-1.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 362,81 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Azerty&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|22 oktober 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;cisco-sw-03&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
SX550X-24-K9-EU&amp;lt;br&amp;gt;&lt;br /&gt;
Cisco SX550X-24 24-Port 10GBase-T Stackable Managed Switch&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&amp;lt;s&amp;gt;DNI243100NK&amp;lt;/s&amp;gt;&lt;br /&gt;
DNI243100Q5 Nieuw SR vervangen DOA&lt;br /&gt;
&lt;br /&gt;
Factuur: [[Media:f-cisco-switch-2020-10-22.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 2600,00 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| infradax&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|22 oktober 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;cisco-sw-04-vlan999&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
SX550X-24-K9-EU&amp;lt;br&amp;gt;&lt;br /&gt;
Cisco SX550X-24 24-Port 10GBase-T Stackable Managed Switch&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|DNI243100NL&lt;br /&gt;
Factuur: [[Media:f-cisco-switch-2020-10-22.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 2600,00 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| infradax&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|12 oktober 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;sfp+&#039;s 10gb&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
sfp-10GLR-31&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
F2011618820 &amp;lt;br&amp;gt;&lt;br /&gt;
F2011618819 &amp;lt;br&amp;gt;&lt;br /&gt;
F2011618680 &amp;lt;br&amp;gt;&lt;br /&gt;
G1807213492 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Factuur: [[Media:f-fscom-sfps.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 20,00 ex BTW per stuk (1 gratis :-) proef monster)&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| fs.com&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|21 oktober 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;DAC kabels sfp+ 10gb&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
30849 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
G2002057456 &amp;lt;br&amp;gt;&lt;br /&gt;
G2002057457&lt;br /&gt;
&lt;br /&gt;
Factuur: [[Media:f-fscom-dac.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 20,00 ex BTW per stuk (1 gratis :-) proef monster)&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| fs.com&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|12 oktober 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;sfp programmer&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
96657&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
B2003000553&lt;br /&gt;
&lt;br /&gt;
Factuur: [[Media:f-fscom-sfps.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 165,00 ex BTW per stuk&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| fs.com&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
september 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;rt-01&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
MikroTik CCR1016-12S-1S+ router&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|912A0B49A749&amp;lt;br&amp;gt;&lt;br /&gt;
Factuur: [[Media:Mikrotik-CCR1016-12S-1S-router-2020.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 478,33 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| interproject polen&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|10 juli 2018&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;rt-02&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
MikroTik CCR1016-12S-1S+ router&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|6EFD08521BE4&lt;br /&gt;
Factuur: [[media:Mikrotik-CCR1016-12S-1S-router-2.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 643,80 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| KommaGo&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|3 juli 2018&amp;lt;br&amp;gt;&lt;br /&gt;
september 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;rt-old&#039;&#039; 1 defecte voeding van 2 als backup in rack&amp;lt;br&amp;gt;&lt;br /&gt;
MikroTik CCR1016-12S-1S+ router&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|6EFD087C1C40&amp;lt;br&amp;gt;&lt;br /&gt;
Factuur: [[media:Mikrotik-CCR1016-12S-1S-router-2.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 643,80 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| KommaGo &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|juni 2013&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;KVM&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* KV1416A-R2&amp;lt;br&amp;gt;&lt;br /&gt;
* Blackbox 16 ports KVM&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Media:f-kvm2013.pdf]]&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|13022015224&amp;lt;br&amp;gt;&lt;br /&gt;
[[Media:foto-srnr-kvm.jpg]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 1.987 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
|Blackbox&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 22 november 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;logging&#039;&#039; (ex-lb1)&amp;lt;br&amp;gt;&lt;br /&gt;
* PRIMERGY RX1330 M3&amp;lt;br&amp;gt;&lt;br /&gt;
* 1x 8GB DDR4-2400 U ECC &amp;lt;br&amp;gt;&lt;br /&gt;
* Intel(R) Core(TM) i3-7100 CPU @ 3.90GHz&amp;lt;br&amp;gt;&lt;br /&gt;
* 60GB SATAdom &amp;lt;br&amp;gt;&lt;br /&gt;
* 2 x Gbit I210 Gigabit Network interface onboard&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x Gbit I350 Gigabit Network interface&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YMDH003824&amp;lt;br&amp;gt;&lt;br /&gt;
* Factuur: [[Media:lb-1-2-bit.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 1.396,26 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| BIT, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 22 november 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;srv01&#039;&#039; (ex-lb2)&amp;lt;br&amp;gt;&lt;br /&gt;
* PRIMERGY RX1330 M3&amp;lt;br&amp;gt;&lt;br /&gt;
* 1x 8GB DDR4-2400 U ECC &amp;lt;br&amp;gt;&lt;br /&gt;
* Intel(R) Core(TM) i3-7100 CPU @ 3.90GHz&amp;lt;br&amp;gt;&lt;br /&gt;
* 60GB SATAdom &amp;lt;br&amp;gt;&lt;br /&gt;
* 2 x Gbit I210 Gigabit Network interface onboard&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x Gbit I350 Gigabit Network interface&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YMDH003825&amp;lt;br&amp;gt;&lt;br /&gt;
* Factuur: [[Media:lb-1-2-bit.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 1.396,26 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| BIT, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 Augustus 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware1&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu Primergy RX2530 M2&amp;lt;br&amp;gt;&lt;br /&gt;
*  4x 32GB DDR4-2400 U ECC (uitbreidbaar naar 12 per socket, upgradebaar naar 64GB per bank)&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x 900 GB SSD (raid 5)&amp;lt;br&amp;gt;&lt;br /&gt;
* Intel Xeon e5-2620 v4 @ 2.10GHz 8 cores 16 logical processors  &amp;lt;br&amp;gt;&lt;br /&gt;
*  4x1Gb T OC|14000-LOM netwerk interface&amp;lt;br&amp;gt;&lt;br /&gt;
* ILOm &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YM6B011958&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT binnen 8 uur recovery &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar123.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 6.996,21 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 Augustus 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware2&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu Primergy RX2530 M2&amp;lt;br&amp;gt;&lt;br /&gt;
* 4x 32GB DDR4-2400 U ECC (uitbreidbaar naar 12 per socket, upgradebaar naar 64GB per bank)&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x 900 GB SSD (raid 5)&amp;lt;br&amp;gt;&lt;br /&gt;
* Intel Xeon e5-2620 v4 @ 2.10GHz 8 cores 16 logical processors  &amp;lt;br&amp;gt;&lt;br /&gt;
* 4x1Gb T OC|14000-LOM  netwerk interface&amp;lt;br&amp;gt;&lt;br /&gt;
* ILOm &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YM6B011957&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT binnen 8 uur recovery &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar123.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 6.996,21 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 Augustus 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware3&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu Primergy RX2530 M2&amp;lt;br&amp;gt;&lt;br /&gt;
* 4x 32GB DDR4-2400 U ECC (uitbreidbaar naar 12 per socket, upgradebaar naar 64GB per bank)&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x 900 GB SSD (raid 5)&amp;lt;br&amp;gt;&lt;br /&gt;
* Intel Xeon e5-2620 v4 @ 2.10GHz 8 cores 16 logical processors  &amp;lt;br&amp;gt;&lt;br /&gt;
* 4x1Gb T OC|14000-LOM netwerk interface&amp;lt;br&amp;gt;&lt;br /&gt;
* ILOm &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YM6B011956&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT binnen 8 uur recovery &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar123.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 6.996,21 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 12 November 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware4&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Supermicro AS -1113S-WN10RT&amp;lt;br&amp;gt;&lt;br /&gt;
* 256GB MEM &lt;br /&gt;
* &lt;br /&gt;
* 4x 10 Gb lan Intel&lt;br /&gt;
* 2 x onboard lan 1 Gb&lt;br /&gt;
* 1x ILOm/ipmi/bmc netwerk interface 1 Gb &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : E338207X0902807&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar456.pdf]] volgt nog nog niet verstuurd&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 12 November 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware5&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Supermicro AS -1113S-WN10RT&amp;lt;br&amp;gt;&lt;br /&gt;
* 256GB MEM &lt;br /&gt;
* &lt;br /&gt;
* 4x 10 Gb lan Intel&lt;br /&gt;
* 2 x onboard lan 1 Gb&lt;br /&gt;
* 1x ILOm/ipmi/bmc netwerk interface 1 Gb &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : E338207X0902806&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar456.pdf]] volgt nog nog niet verstuurd&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 12 November 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware6&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Supermicro AS -1113S-WN10RT&amp;lt;br&amp;gt;&lt;br /&gt;
* 256GB MEM &lt;br /&gt;
* &lt;br /&gt;
* 4x 10 Gb lan Intel&lt;br /&gt;
* 2 x onboard lan 1 Gb&lt;br /&gt;
* 1x ILOm/ipmi/bmc netwerk interface 1 Gb &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : E338207X0902805&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar456.pdf]] volgt nog nog niet verstuurd&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 14 februari 2013&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;Powerboot-1&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
APC AP8959EU3&amp;lt;br&amp;gt;&lt;br /&gt;
* 24 schakelbare 230V poorten&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
| ZA1238010076&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 755 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Acesdirect&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 14 februari 2013&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;Powerboot-2&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
APC AP8959EU3&amp;lt;br&amp;gt;&lt;br /&gt;
* 24 schakelbare 230V poorten&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
| ZA1238010081&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 755 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Acesdirect&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Afgeschreven apparatuur, niet meer in het rack, niet meer in gebruik ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! datum aankoop	|| artikelomschrijving	|| serienummer	|| aankoopprijs	|| leverancier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| juli 2018&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;logging old&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu RX100 S6&amp;lt;br&amp;gt;&lt;br /&gt;
* 1x 8GB DDR4-2400 U ECC &amp;lt;br&amp;gt;&lt;br /&gt;
* Intel(R) Xeon(R) CPU X3430 @ 2.40GHz&amp;lt;br&amp;gt;&lt;br /&gt;
* 466GB disk &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
YL8V001703&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 0 ex BTW (gift)&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| BIT, Ede&lt;br /&gt;
|-&lt;br /&gt;
 &lt;br /&gt;
|-&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Inventaris&amp;diff=78934</id>
		<title>Inventaris</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Inventaris&amp;diff=78934"/>
		<updated>2020-11-14T08:35:11Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Inventaris overzicht. ==&lt;br /&gt;
&lt;br /&gt;
In dit overzicht behoort tenminste alle apparatuur voor te komen, die maximaal 3 jaar oud is.&lt;br /&gt;
&lt;br /&gt;
De gegevens van deze pagina kunnen gebruikt worden als basis van het jaarlijks in te vullen hardware inventarisatie formulier, zoals dat door de penningmeester ieder jaar aan het hcc kantoor ter hand gesteld dient te worden.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! datum aankoop	|| artikelomschrijving	|| serienummer	|| aankoopprijs			|| leverancier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|30 oktober 2019&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;cisco-sw-01&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
SG350X-48 48-Port Gigabit Stackable Managed Switch&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|DNI241508JA &#039;&#039;&#039;vervangen onder garantie 26=10=2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;s&amp;gt;DNI2228066K&amp;lt;/s&amp;gt;&lt;br /&gt;
Factuur: [[Media:f-cisco-switch-2019-10-30-1.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 362,81 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Azerty&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|30 oktober 2019&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;cisco-sw-02&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
SG350X-48 48-Port Gigabit Stackable Managed Switch&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|DNI240108FY &#039;&#039;&#039;vervangen onder garantie 26=10=2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;s&amp;gt;DNI22280660&amp;lt;/s&amp;gt;&lt;br /&gt;
Factuur: [[Media:f-cisco-switch-2019-10-30-1.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 362,81 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Azerty&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|22 oktober 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;cisco-sw-03&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
SX550X-24-K9-EU&amp;lt;br&amp;gt;&lt;br /&gt;
Cisco SX550X-24 24-Port 10GBase-T Stackable Managed Switch&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&amp;lt;s&amp;gt;DNI243100NK&amp;lt;/s&amp;gt;&lt;br /&gt;
DNI243100Q5 Nieuw SR vervangen DOA&lt;br /&gt;
&lt;br /&gt;
Factuur: [[Media:f-cisco-switch-2020-10-22.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 2600,00 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| infradax&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|22 oktober 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;cisco-sw-04-vlan999&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
SX550X-24-K9-EU&amp;lt;br&amp;gt;&lt;br /&gt;
Cisco SX550X-24 24-Port 10GBase-T Stackable Managed Switch&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|DNI243100NL&lt;br /&gt;
Factuur: [[Media:f-cisco-switch-2020-10-22.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 2600,00 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| infradax&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|12 oktober 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;sfp+&#039;s 10gb&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
sfp-10GLR-31&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
F2011618820 &amp;lt;br&amp;gt;&lt;br /&gt;
F2011618819 &amp;lt;br&amp;gt;&lt;br /&gt;
F2011618680 &amp;lt;br&amp;gt;&lt;br /&gt;
G1807213492 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Factuur: [[Media:f-fscom-sfps.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 20,00 ex BTW per stuk (1 gratis :-) proef monster)&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| fs.com&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|21 oktober 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;DAC kabels sfp+ 10gb&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
30849 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
G2002057456 &amp;lt;br&amp;gt;&lt;br /&gt;
G2002057457&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Factuur: [[Media:f-fscom-dac.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 20,00 ex BTW per stuk (1 gratis :-) proef monster)&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| fs.com&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|12 oktober 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;sfp programmer&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
96657&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
B2003000553&lt;br /&gt;
&lt;br /&gt;
Factuur: [[Media:f-fscom-sfps.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 165,00 ex BTW per stuk&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| fs.com&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
september 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;rt-01&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
MikroTik CCR1016-12S-1S+ router&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|912A0B49A749&amp;lt;br&amp;gt;&lt;br /&gt;
Factuur: [[Media:Mikrotik-CCR1016-12S-1S-router-2020.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 478,33 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| interproject polen&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|10 juli 2018&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;rt-02&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
MikroTik CCR1016-12S-1S+ router&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|6EFD08521BE4&lt;br /&gt;
Factuur: [[media:Mikrotik-CCR1016-12S-1S-router-2.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 643,80 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| KommaGo&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|3 juli 2018&amp;lt;br&amp;gt;&lt;br /&gt;
september 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;rt-old&#039;&#039; 1 defecte voeding van 2 als backup in rack&amp;lt;br&amp;gt;&lt;br /&gt;
MikroTik CCR1016-12S-1S+ router&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|6EFD087C1C40&amp;lt;br&amp;gt;&lt;br /&gt;
Factuur: [[media:Mikrotik-CCR1016-12S-1S-router-2.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 643,80 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| KommaGo &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|juni 2013&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;KVM&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* KV1416A-R2&amp;lt;br&amp;gt;&lt;br /&gt;
* Blackbox 16 ports KVM&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Media:f-kvm2013.pdf]]&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|13022015224&amp;lt;br&amp;gt;&lt;br /&gt;
[[Media:foto-srnr-kvm.jpg]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 1.987 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
|Blackbox&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 22 november 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;logging new&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* PRIMERGY RX1330 M3&amp;lt;br&amp;gt;&lt;br /&gt;
* 1x 8GB DDR4-2400 U ECC &amp;lt;br&amp;gt;&lt;br /&gt;
* Intel(R) Core(TM) i3-7100 CPU @ 3.90GHz&amp;lt;br&amp;gt;&lt;br /&gt;
* 60GB SATAdom &amp;lt;br&amp;gt;&lt;br /&gt;
* 2 x Gbit I210 Gigabit Network interface onboard&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x Gbit I350 Gigabit Network interface&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YMDH003824&amp;lt;br&amp;gt;&lt;br /&gt;
* Factuur: [[Media:lb-1-2-bit.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 1.396,26 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| BIT, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 22 november 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;LB2&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* PRIMERGY RX1330 M3&amp;lt;br&amp;gt;&lt;br /&gt;
* 1x 8GB DDR4-2400 U ECC &amp;lt;br&amp;gt;&lt;br /&gt;
* Intel(R) Core(TM) i3-7100 CPU @ 3.90GHz&amp;lt;br&amp;gt;&lt;br /&gt;
* 60GB SATAdom &amp;lt;br&amp;gt;&lt;br /&gt;
* 2 x Gbit I210 Gigabit Network interface onboard&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x Gbit I350 Gigabit Network interface&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YMDH003825&amp;lt;br&amp;gt;&lt;br /&gt;
* Factuur: [[Media:lb-1-2-bit.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 1.396,26 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| BIT, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 Augustus 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware1&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu Primergy RX2530 M2&amp;lt;br&amp;gt;&lt;br /&gt;
*  4x 32GB DDR4-2400 U ECC (uitbreidbaar naar 12 per socket, upgradebaar naar 64GB per bank)&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x 900 GB SSD (raid 5)&amp;lt;br&amp;gt;&lt;br /&gt;
* Intel Xeon e5-2620 v4 @ 2.10GHz 8 cores 16 logical processors  &amp;lt;br&amp;gt;&lt;br /&gt;
*  4x1Gb T OC|14000-LOM netwerk interface&amp;lt;br&amp;gt;&lt;br /&gt;
* ILOm &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YM6B011958&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT binnen 8 uur recovery &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar123.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 6.996,21 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 Augustus 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware2&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu Primergy RX2530 M2&amp;lt;br&amp;gt;&lt;br /&gt;
* 4x 32GB DDR4-2400 U ECC (uitbreidbaar naar 12 per socket, upgradebaar naar 64GB per bank)&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x 900 GB SSD (raid 5)&amp;lt;br&amp;gt;&lt;br /&gt;
* Intel Xeon e5-2620 v4 @ 2.10GHz 8 cores 16 logical processors  &amp;lt;br&amp;gt;&lt;br /&gt;
* 4x1Gb T OC|14000-LOM  netwerk interface&amp;lt;br&amp;gt;&lt;br /&gt;
* ILOm &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YM6B011957&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT binnen 8 uur recovery &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar123.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 6.996,21 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 Augustus 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware3&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu Primergy RX2530 M2&amp;lt;br&amp;gt;&lt;br /&gt;
* 4x 32GB DDR4-2400 U ECC (uitbreidbaar naar 12 per socket, upgradebaar naar 64GB per bank)&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x 900 GB SSD (raid 5)&amp;lt;br&amp;gt;&lt;br /&gt;
* Intel Xeon e5-2620 v4 @ 2.10GHz 8 cores 16 logical processors  &amp;lt;br&amp;gt;&lt;br /&gt;
* 4x1Gb T OC|14000-LOM netwerk interface&amp;lt;br&amp;gt;&lt;br /&gt;
* ILOm &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YM6B011956&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT binnen 8 uur recovery &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar123.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 6.996,21 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 12 November 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware4&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Supermicro AS -1113S-WN10RT&amp;lt;br&amp;gt;&lt;br /&gt;
* 256GB MEM &lt;br /&gt;
* &lt;br /&gt;
* 4x 10 Gb lan Intel&lt;br /&gt;
* 2 x onboard lan 1 Gb&lt;br /&gt;
* 1x ILOm/ipmi/bmc netwerk interface 1 Gb &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : E338207X0902806&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar456.pdf]] volgt nog nog niet verstuurd&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 12 November 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware5&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Supermicro AS -1113S-WN10RT&amp;lt;br&amp;gt;&lt;br /&gt;
* 256GB MEM &lt;br /&gt;
* &lt;br /&gt;
* 4x 10 Gb lan Intel&lt;br /&gt;
* 2 x onboard lan 1 Gb&lt;br /&gt;
* 1x ILOm/ipmi/bmc netwerk interface 1 Gb &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : E338207X0902805&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar456.pdf]] volgt nog nog niet verstuurd&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 12 November 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware6&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Supermicro AS -1113S-WN10RT&amp;lt;br&amp;gt;&lt;br /&gt;
* 256GB MEM &lt;br /&gt;
* &lt;br /&gt;
* 4x 10 Gb lan Intel&lt;br /&gt;
* 2 x onboard lan 1 Gb&lt;br /&gt;
* 1x ILOm/ipmi/bmc netwerk interface 1 Gb &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : E338207X0902805&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar456.pdf]] volgt nog nog niet verstuurd&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 14 februari 2013&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;Powerboot-1&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
APC AP8959EU3&amp;lt;br&amp;gt;&lt;br /&gt;
* 24 schakelbare 230V poorten&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
| ZA1238010076&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 755 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Acesdirect&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 14 februari 2013&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;Powerboot-2&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
APC AP8959EU3&amp;lt;br&amp;gt;&lt;br /&gt;
* 24 schakelbare 230V poorten&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
| ZA1238010081&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 755 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Acesdirect&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Afgeschreven apparatuur, niet meer in het rack, niet meer in gebruik ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! datum aankoop	|| artikelomschrijving	|| serienummer	|| aankoopprijs	|| leverancier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| juli 2018&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;logging old&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu RX100 S6&amp;lt;br&amp;gt;&lt;br /&gt;
* 1x 8GB DDR4-2400 U ECC &amp;lt;br&amp;gt;&lt;br /&gt;
* Intel(R) Xeon(R) CPU X3430 @ 2.40GHz&amp;lt;br&amp;gt;&lt;br /&gt;
* 466GB disk &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
YL8V001703&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 0 ex BTW (gift)&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| BIT, Ede&lt;br /&gt;
|-&lt;br /&gt;
 &lt;br /&gt;
|-&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Automatische_installatie&amp;diff=78924</id>
		<title>Automatische installatie</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Automatische_installatie&amp;diff=78924"/>
		<updated>2020-11-09T10:42:52Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= doel = &lt;br /&gt;
Server automatisch conform standaard installeren &lt;br /&gt;
&lt;br /&gt;
= vereisten =&lt;br /&gt;
* server met interne interface &lt;br /&gt;
* optie tot pxe boot &lt;br /&gt;
* minimaal 4 gb werkgeheugen tijdens installatie&amp;lt;br&amp;gt;&lt;br /&gt;
Toelichting: het ISO image wordt tijdelijk in het geheugen geladen. &amp;lt;br&amp;gt;&lt;br /&gt;
Na installatie kan je het werkgeheugen terugschroeven indien nodig.&lt;br /&gt;
&lt;br /&gt;
= vmware machine aanmaken aandachtspunten = &lt;br /&gt;
Het is handigste als servers op zelfde manier worden aangemaakt daarom volgende aandachtspunten voor het netwerk. &lt;br /&gt;
Maak netwerk altijd in deze volgorde aan : &amp;lt;br&amp;gt;&#039;&#039;&#039; Twijfel je toch over de benamingen boot eerst via een live omgeving en bekijk de benamingen van interface &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== machine met extern en interne interface ==&lt;br /&gt;
* externe interface (ens160)&lt;br /&gt;
* interne interface (ens192)&lt;br /&gt;
* storage interface (ens224)&lt;br /&gt;
* eventueel overige interfaces&lt;br /&gt;
&lt;br /&gt;
== machine met interne interface ==&lt;br /&gt;
* interne interface (ens160)&lt;br /&gt;
* storage interface (ens192)&lt;br /&gt;
&lt;br /&gt;
= stappen =&lt;br /&gt;
* start machine met PXE&lt;br /&gt;
* kies in menu  optie (a)uto installers Hobbynet...&lt;br /&gt;
* Kies Ubuntu Server 20.04.1 amd64 (focal Fossa)&lt;br /&gt;
* vul de hostnaam in &lt;br /&gt;
* vul de interface naam in van 1e interface&lt;br /&gt;
* vul het ip adres van deze interface&lt;br /&gt;
* vul het subnetmask in cider notatie dus /24 /25 etc etc &lt;br /&gt;
* vul het gateway IP adres in &lt;br /&gt;
* Als er een tweede interface is &#039;&#039;&#039;(Storage interface niet mee gerekend)&#039;&#039;&#039; vul de interface naam in, ander laat alle velden van 2e interface leeg &lt;br /&gt;
* vul het IP adres van deze interface in&lt;br /&gt;
* vul het subnetmask in cider notatie dus /24 /25 etc etc &lt;br /&gt;
* vul het gateway IP adres in &lt;br /&gt;
* Vul de interface naam in van de storage interface&lt;br /&gt;
* Druk op enter&lt;br /&gt;
Bij een server met alleen een interne en storage interface ziet dat er als volgt uit:&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Ipxe autoinstall.png|frame|Automatische installatie van server met alleen interne en storage interface]]&lt;br /&gt;
Nu wordt ondertussen de volledige geautomatiseerde installatie uitgevoerd. &lt;br /&gt;
* na afloop van de geautomatiseerde installatie krijg je 1 login prompt, wacht tot de server nog een keer reboot, dan pas is de automatische installatie afgerond&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=IPXE&amp;diff=78922</id>
		<title>IPXE</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=IPXE&amp;diff=78922"/>
		<updated>2020-11-09T10:35:27Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= doel = &lt;br /&gt;
Het faciliteren van netwerk boot waaronder automatische installatie voor hobbynet&lt;br /&gt;
&lt;br /&gt;
= hoe werkt het =&lt;br /&gt;
Op de server [[pxe]] draait een tftpserver daar zijn de bestanden geplaatst die nodig zijn bij het booten via ipxe&lt;br /&gt;
&lt;br /&gt;
== bestanden == &lt;br /&gt;
* undionly.kpxe &amp;lt;br&amp;gt;(dit is de bootfile voor de dhcp server)&lt;br /&gt;
* ipxe.php &amp;lt;br&amp;gt;(deze php file maakt het ipxe menu)&lt;br /&gt;
* no-cloud-configuratie.php &amp;lt;br&amp;gt;(deze file maakt automatische configuratie voor automatische installaties)&lt;br /&gt;
* ubuntu-ipxe/**/server/ &amp;lt;br&amp;gt;Hierin staan de bestanden vmlinuz en initrd, benodigd bij deze versie (** is het versie nr)&lt;br /&gt;
* ubuntu-ipxe/**/desktop/&amp;lt;br&amp;gt;Hierin staan de bestanden vmlinuz en initrd, benodigd bij deze versie (** is het versie nr)&lt;br /&gt;
&lt;br /&gt;
= het proces bij niet automatische installatie=&lt;br /&gt;
De installatie haalt de iso en hij boot de installatie&lt;br /&gt;
&lt;br /&gt;
= het proces bij automatische installatie =&lt;br /&gt;
Voor uitleg hoe je een automatische installatie uitvoert kijk hier  [[Automatische installatie]] .&lt;br /&gt;
&lt;br /&gt;
De basis: bij automatische installatie worden je netwerk parameters gevraagd en de hostnaam, daarna wordt er automatisch installatie gedaan. &amp;lt;br&amp;gt;&lt;br /&gt;
Aan de hand van je antwoorden genereert no-cloud-configuratie.php een yaml file waarna aan de hand daarvan de server wordt geïnstalleerd conform de hobbynet standaard.&amp;lt;br&amp;gt;&lt;br /&gt;
De server start (vrij snel nadat je 1e keer de login prompt ziet) ziet nog 1 x opnieuw op. Dit wordt door het pakket hobby-postinstall geregeld, dit is omdat niet alle pakketten via no-cloud-init installatie kunnen, het pakket maakt een cron entry van @reboot die 30 seconde na de reboot de hobby-install uitvoert en de user &#039;&#039;&#039;a&#039;&#039;&#039; verwijdert etc .&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Sambabal&amp;diff=78920</id>
		<title>Sambabal</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Sambabal&amp;diff=78920"/>
		<updated>2020-11-09T10:25:55Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= doel = &lt;br /&gt;
Deze server verzorgt samba shares naar de shared storage. &amp;lt;br&amp;gt;&lt;br /&gt;
Dit heeft vooral voordelen met ontwikkelen in de joomla sites &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= configuratie =&lt;br /&gt;
Die is vrij recht toe recht aan. &lt;br /&gt;
* apt install samba&lt;br /&gt;
* mkdir /etc/samba/samba.d.conf&lt;br /&gt;
* plaats hier in shares.conf met share definities&lt;br /&gt;
Doe de volgende aanpassingen in /etc/samba/smb.conf&lt;br /&gt;
* Verander de variable workgroup naar ad.hobby.nl &lt;br /&gt;
* voeg de regel &#039;&#039;&#039;include = /etc/samba/samba.d.conf/*.conf&#039;&#039;&#039; toe&lt;br /&gt;
* herstart samba &#039;&#039;&#039;systemctl restart smbd.service nmbd.service&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= user toevoegen en activeren = &lt;br /&gt;
Dat gaat als volgt : &lt;br /&gt;
 root@sambabal:/etc/samba# smbpasswd -a bas&lt;br /&gt;
 New SMB password:&lt;br /&gt;
 Retype new SMB password:&lt;br /&gt;
 Added user bas.&lt;br /&gt;
 root@sambabal:/etc/samba# smbpasswd -e bas&lt;br /&gt;
 Enabled user bas.&lt;br /&gt;
&lt;br /&gt;
= firewall= &lt;br /&gt;
Deze firewall regels zijn toegevoegd:&lt;br /&gt;
== ipv4 ==&lt;br /&gt;
 # samba mag van de vpn reeksen&lt;br /&gt;
 $IPTABLES -A INPUT -p udp -s 192.168.200.0/24 --dport 137 -j ACCEPT&lt;br /&gt;
 $IPTABLES -A INPUT -p udp -s 192.168.200.0/24 --dport 138 -j ACCEPT&lt;br /&gt;
 $IPTABLES -A INPUT -p tcp -s 192.168.200.0/24 --dport 139 -j ACCEPT&lt;br /&gt;
 $IPTABLES -A INPUT -p tcp -s 192.168.200.0/24 --dport 445 -j ACCEPT&lt;br /&gt;
 $IPTABLES -A INPUT -p udp -s 172.31.2.0/24 --dport 137 -j ACCEPT&lt;br /&gt;
 $IPTABLES -A INPUT -p udp -s 172.31.2.0/24 --dport 138 -j ACCEPT&lt;br /&gt;
 $IPTABLES -A INPUT -p tcp -s 172.31.2.0/24 --dport 139 -j ACCEPT&lt;br /&gt;
 $IPTABLES -A INPUT -p tcp -s 172.31.2.0/24 --dport 445 -j ACCEPT&lt;br /&gt;
== ipv6 ==&lt;br /&gt;
 $IP6TABLES -A INPUT -p udp -s 2a05:f080:0:300::/64 --dport 137 -j ACCEPT&lt;br /&gt;
 $IP6TABLES -A INPUT -p udp -s 2a05:f080:0:300::/64 --dport 138 -j ACCEPT&lt;br /&gt;
 $IP6TABLES -A INPUT -p tcp -s 2a05:f080:0:300::/64 --dport 139 -j ACCEPT&lt;br /&gt;
 $IP6TABLES -A INPUT -p tcp -s 2a05:f080:0:300::/64 --dport 445 -j ACCEPT&lt;br /&gt;
 $IP6TABLES -A INPUT -p udp -s 2a02:968:fffe:ffff::/64 --dport 137 -j ACCEPT&lt;br /&gt;
 $IP6TABLES -A INPUT -p udp -s 2a02:968:fffe:ffff::/64 --dport 138 -j ACCEPT&lt;br /&gt;
 $IP6TABLES -A INPUT -p tcp -s 2a02:968:fffe:ffff::/64 --dport 139 -j ACCEPT&lt;br /&gt;
 $IP6TABLES -A INPUT -p tcp -s 2a02:968:fffe:ffff::/64 --dport 445 -j ACCEPT&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Cephfs&amp;diff=78891</id>
		<title>Cephfs</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Cephfs&amp;diff=78891"/>
		<updated>2020-11-07T12:19:52Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=doel= &lt;br /&gt;
De shared storage is uitbesteed aan Bit, hier wat uitleg er voor&lt;br /&gt;
&lt;br /&gt;
= installatie bij Hobbynet =&lt;br /&gt;
Ken een IP adres toe uit de reeks 2001:7b8:89:0::/64&amp;lt;br&amp;gt;&lt;br /&gt;
Standaard pakken wij het IPv4 adres van de interne interface en dat plakken we in het IPv6 adres, dus 172.31.1.19 wordt 2001:7b8:89:0:172:31:1:19/64. &amp;lt;br&amp;gt;&lt;br /&gt;
En er moet een route worden toegevoegd voor 2001:7b8:80::/48 naar 2001:7b8:89::1&lt;br /&gt;
&lt;br /&gt;
Je interface ziet er dan zo uit:&lt;br /&gt;
        ens224:&lt;br /&gt;
            dhcp6: no&lt;br /&gt;
            accept-ra: no&lt;br /&gt;
            addresses:&lt;br /&gt;
            - 2001:7b8:89:0:172:31:1:19/64&lt;br /&gt;
            routes:&lt;br /&gt;
            - to: 2001:7b8:80::/48&lt;br /&gt;
              via: 2001:7b8:89::1&lt;br /&gt;
            critical: true&lt;br /&gt;
&lt;br /&gt;
Installeer eerst de Hobbunet cephfs repo en daarna het pakket &#039;hobby-cephfs&#039;&lt;br /&gt;
   apt install hobby-cephfs-repo&lt;br /&gt;
   apt install hobby-cephfs&lt;br /&gt;
&lt;br /&gt;
= fstab =&lt;br /&gt;
== read write ==&lt;br /&gt;
Een read/write entry ziet er zo uit :&lt;br /&gt;
   [2001:7b8:80:1:0:1:1:1],[2001:7b8:80:1:0:1:1:2],[2001:7b8:80:3:0:2c:1:3],[2001:7b8:80:3:0:2c:1:4],[2001:7b8:80:2:0:2a:1:5]:/HCCHC/170920/disk/site/etc/ssl /disk/site/etc/ssl ceph name=HCCHC-170920-cephfs,secretfile=/etc/ceph/ceph.client.HCCHC-170920-cephfs.key,noatime,_netdev 0 2&lt;br /&gt;
&#039;&#039;&#039;1 regel&#039;&#039;&#039;&lt;br /&gt;
== read only==&lt;br /&gt;
Een readonly entry ziet er zo uit :&lt;br /&gt;
   [2001:7b8:80:1:0:1:1:1],[2001:7b8:80:1:0:1:1:2],[2001:7b8:80:3:0:2c:1:3],[2001:7b8:80:3:0:2c:1:4],[2001:7b8:80:2:0:2a:1:5]:/HCCHC/170920/disk/site/etc/ssl/wildcard.hcc.nl /disk/site/etc/ssl/wildcard.hcc.nl ceph name=HCCHC-170989-cephfs,secretfile=/etc/ceph/ceph.client.HCCHC-170989-cephfs.key,noatime,_netdev,ro 0 2&lt;br /&gt;
== standaard mounts in fstab ==&lt;br /&gt;
Deze mounts worden standaard in fstab geplaatst (terwille van de leesbaarheid zijn de regels afgebroken met &#039;--&#039; op het eind):&lt;br /&gt;
   #cephfs&lt;br /&gt;
   #Hobbynet shared Directory&#039;s&lt;br /&gt;
     &lt;br /&gt;
 [2001:7b8:80:1:0:1:1:1],[2001:7b8:80:1:0:1:1:2],[2001:7b8:80:3:0:2c:1:3],[2001:7b8:80:3:0:2c:1:4],[2001:7b8:80:2:0:2a:1:5]:/HCCHC/170920/disk/usr/local/hobbynet/bin  --&lt;br /&gt;
   /usr/local/hobbynet/bin ceph name=HCCHC-170989-cephfs,secretfile=/etc/ceph/ceph.client.HCCHC-170989-cephfs.key,noatime,_netdev,ro 0 2&lt;br /&gt;
 [2001:7b8:80:1:0:1:1:1],[2001:7b8:80:1:0:1:1:2],[2001:7b8:80:3:0:2c:1:3],[2001:7b8:80:3:0:2c:1:4],[2001:7b8:80:2:0:2a:1:5]:/HCCHC/170920/disk/usr/local/hobbynet/etc --&lt;br /&gt;
   /usr/local/hobbynet/etc ceph name=HCCHC-170989-cephfs,secretfile=/etc/ceph/ceph.client.HCCHC-170989-cephfs.key,noatime,_netdev,ro 0 2&lt;br /&gt;
 [2001:7b8:80:1:0:1:1:1],[2001:7b8:80:1:0:1:1:2],[2001:7b8:80:3:0:2c:1:3],[2001:7b8:80:3:0:2c:1:4],[2001:7b8:80:2:0:2a:1:5]:/HCCHC/170920/disk/usr/local/hobbynet/lib --&lt;br /&gt;
   /usr/local/hobbynet/lib ceph name=HCCHC-170989-cephfs,secretfile=/etc/ceph/ceph.client.HCCHC-170989-cephfs.key,noatime,_netdev,ro 0 2&lt;br /&gt;
 [2001:7b8:80:1:0:1:1:1],[2001:7b8:80:1:0:1:1:2],[2001:7b8:80:3:0:2c:1:3],[2001:7b8:80:3:0:2c:1:4],[2001:7b8:80:2:0:2a:1:5]:/HCCHC/170920/disk/usr/local/hobbynet/home --&lt;br /&gt;
   /usr/local/hobbynet/home ceph name=HCCHC-170920-cephfs,secretfile=/etc/ceph/ceph.client.HCCHC-170920-cephfs.key,noatime,_netdev 0 2&lt;br /&gt;
   &lt;br /&gt;
 #firewall&lt;br /&gt;
 [2001:7b8:80:1:0:1:1:1],[2001:7b8:80:1:0:1:1:2],[2001:7b8:80:3:0:2c:1:3],[2001:7b8:80:3:0:2c:1:4],[2001:7b8:80:2:0:2a:1:5]:/HCCHC/170920/disk/usr/local/hobbynet/firewall/general  --&lt;br /&gt;
   /usr/local/hobbynet/firewall/general ceph name=HCCHC-170989-cephfs,secretfile=/etc/ceph/ceph.client.HCCHC-170989-cephfs.key,noatime,_netdev,ro 0 2&lt;br /&gt;
&lt;br /&gt;
= firewalling = &lt;br /&gt;
In de algemene IPv6 firewall regels staan we al het verkeer toe van en naar 2001:7b8:80::/48, met uitzondering van port 22 (ssh) inkomend.&amp;lt;br&amp;gt;&lt;br /&gt;
Voor inkomend staat dit in &#039;&#039;&#039;/usr/local/hobbynet/firewall/general/in_up.ip6&#039;&#039;&#039;:&lt;br /&gt;
   #drop ssh van cephstorage bit&lt;br /&gt;
   $IP6TABLES -A INPUT -p tcp -s 2001:7b8:80::/48 --dport 22  -j ACCEPT&lt;br /&gt;
   &lt;br /&gt;
   #overig verkeer van cephstorage bit moet mogen&lt;br /&gt;
   $IP6TABLES -A INPUT -s 2001:7b8:80::/48  -j ACCEPT&lt;br /&gt;
Voor uitgaand is dat in &#039;&#039;&#039;/usr/local/hobbynet/firewall/general/out_up.ip6&#039;&#039;&#039;&lt;br /&gt;
   #verkeer naar cephstorage bit moet mogen&lt;br /&gt;
   $IP6TABLES -A OUTPUT -d 2001:7b8:80::/48  -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
= keys = &lt;br /&gt;
&lt;br /&gt;
RW user:&lt;br /&gt;
   [client.HCCHC-170920-cephfs]&lt;br /&gt;
   key = AQBOo5Zf3rJQCxAA/yqzR0OX9LajCv+waicd2w==&lt;br /&gt;
   caps mds = &amp;quot;allow rw path=/HCCHC/170920&amp;quot;&lt;br /&gt;
   caps mon = &amp;quot;allow r&amp;quot;&lt;br /&gt;
   caps osd = &amp;quot;allow rw pool=BITED-153874-cephfs_data namespace=HCCHC-01&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RO user:&lt;br /&gt;
   [client.HCCHC-170989-cephfs]&lt;br /&gt;
   key = AQBRo5Zfx9FzBRAAMuNwqySs17SJJJ9bPHnuew==&lt;br /&gt;
   caps mds = &amp;quot;allow r path=/HCCHC/170920&amp;quot;&lt;br /&gt;
   caps mon = &amp;quot;allow r&amp;quot;&lt;br /&gt;
   caps osd = &amp;quot;allow r pool=BITED-153874-cephfs_data namespace=HCCHC-01&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= uitleg bit = &lt;br /&gt;
Uit Bit ticket 170920 https://status.bit.nl/tickets/?id=170920&amp;amp;query=f35a540e5379df8ed2c734707a7984e3&lt;br /&gt;
   Hieronder de uitleg voor het instellen van de Cephfs.&lt;br /&gt;
   &lt;br /&gt;
   1) Zorg ervoor dat de server een IP adres krijgt in de netwerk range 2001:7b8:89::/48&lt;br /&gt;
   2) Zorg ervoor dat er een route is ingesteld naar de Ceph storage omgeving&lt;br /&gt;
   &lt;br /&gt;
   /sbin/ip -6 route add 2001:7b8:80::/48 via 2001:7b8:89::1&lt;br /&gt;
   &lt;br /&gt;
   3) Installeer de Ceph tooling&lt;br /&gt;
   &lt;br /&gt;
   $ wget -qO- https://download.ceph.com/keys/release.asc | apt-key add -&lt;br /&gt;
   $ echo &amp;quot;deb http://ceph.download.bit.nl/debian-mimic bionic main&amp;quot; \&lt;br /&gt;
       | sudo tee /etc/apt/sources.list.d/ceph.list&lt;br /&gt;
   $ apt update&lt;br /&gt;
   $ apt install ceph-common&lt;br /&gt;
   &lt;br /&gt;
   4) Maak een bestand aan in /etc/ceph/ceph.conf met onderstaande informatie:&lt;br /&gt;
      &lt;br /&gt;
   [global]&lt;br /&gt;
   # IPs here instead of hostname so we work independent of DNS&lt;br /&gt;
   mon_host = [2001:7b8:80:1:0:1:1:1],[2001:7b8:80:1:0:1:1:2],[2001:7b8:80:3:0:2c:1:3],[2001:7b8:80:3:0:2c:1:4],[2001:7b8:80:2:0:2a:1:5]&lt;br /&gt;
   &lt;br /&gt;
   5) Plaats de client key waarmee de authenticatie plaatsvind op de Cephfs. De nodige gegevens hiervan zijn te vinden in de securebox.&lt;br /&gt;
   &lt;br /&gt;
   $ cat /etc/ceph/ceph.client.FOOBA-123456-cephfs.keyring&lt;br /&gt;
   [client.FOOBA-123456-cephfs]&lt;br /&gt;
   key = AQDpqB....&lt;br /&gt;
   caps mds = &amp;quot;allow rw path=/FOOBA/123456&amp;quot;&lt;br /&gt;
   caps mon = &amp;quot;allow r&amp;quot;&lt;br /&gt;
   caps osd = &amp;quot;allow rw pool=BITED-153874-cephfs_data namespace=FOOBA-01&amp;quot;&lt;br /&gt;
   &lt;br /&gt;
   6) Plaats de key zelf ook nog los in een file. Dit is dezelfde key als in stap 5 is gebruikt.&lt;br /&gt;
   &lt;br /&gt;
   $ cat /etc/ceph/ceph.client.FOOBA-123456-cephfs.key&lt;br /&gt;
   AQDpqB....&lt;br /&gt;
   &lt;br /&gt;
   7) Zet onderstaande regel in fstab&lt;br /&gt;
   &lt;br /&gt;
   mon1.ceph.bit.nl,mon2.ceph.bit.nl,mon3.ceph.bit.nl,mon4.ceph.bit.nl,mon5.ceph.bit.nl:/HCCHC/170920 /mnt/data ceph name=FOOBA-123456-cephfs,secretfile=/etc/ceph/ceph.client.FOOBA-123456-cephfs.key,noatime,_netdev 0 2&lt;br /&gt;
   &lt;br /&gt;
   Hierna zal het mogelijk moeten zijn om /mnt/data te mounten met Cephfs. Wanneer er alleen RO rechten toegestaan zijn, dan dien je vanaf stap 5 de key te gebruiken voor de RO user.&lt;br /&gt;
{{Note}} In orginele bit ticket ontbrak &#039;apt install ceph-common&#039;. deze toegevoegd &amp;lt;br&amp;gt;&lt;br /&gt;
{{Note}} In orginele bit ticket zat typo in mount path /HCCHC/17092 moest /HCCHC/170920 zijn (gecorrigeerd)&amp;lt;br&amp;gt;&lt;br /&gt;
{{Note}} Van de aan ons toegekende /48 wordt alleen de 1e /64 gebruikt dus 2001:7b8:89:0::/64&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=MySQL_cluster&amp;diff=78750</id>
		<title>MySQL cluster</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=MySQL_cluster&amp;diff=78750"/>
		<updated>2020-10-26T09:38:38Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=doel=&lt;br /&gt;
Om te zorgen dat onze database server ook volledig redundant is hebben we hier een cluster gemaakt, onze loadbalancer zorgt er voor dat verkeer of op db01 of op db02 terecht komt.&lt;br /&gt;
=opzet=&lt;br /&gt;
== normale situatie ==&lt;br /&gt;
Dit geeft weer hoe in normale situaties het verkeer loopt.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DBnormaal.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:DBnormaal.dia]]&lt;br /&gt;
&lt;br /&gt;
== Loadbalancer faalt ==&lt;br /&gt;
Dit geeft weer hoe in een situatie het verkeer loopt als er een loadbalancer faalt.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DBlbfaalt.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:DBlbfaalt.dia]]&lt;br /&gt;
&lt;br /&gt;
== Database server faalt ==&lt;br /&gt;
Dit geeft weer hoe in een situatie het verkeer loopt als er een Database server faalt.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DBdbfaalt.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:DBdbfaalt.dia]]&lt;br /&gt;
&lt;br /&gt;
== Server id&#039;s ==&lt;br /&gt;
Elke server in het cluster heeft een unique id. Wij houden dan ook voor elke server unique aan ook zitten ze niet in het zelfde cluster. &lt;br /&gt;
&lt;br /&gt;
Server ids:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 db01&lt;br /&gt;
2. db02&lt;br /&gt;
3. db03&lt;br /&gt;
4. db04&lt;br /&gt;
5 ldap-lb1&lt;br /&gt;
6. ldap-lb2&lt;br /&gt;
7 mail-lb1&lt;br /&gt;
8 mail-lb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= loadbalancing =&lt;br /&gt;
Omdat we maar willen dat er 1 server wordt aangesproken (i.p.v. allebei tegelijk), zodat er geen locking problemen ontstaan, is de loadbalancer in failover mode geconfigureerd. Voor meer info zie [[Loadbalancers]]&lt;br /&gt;
&lt;br /&gt;
= database cluster 01 (hobbynet) dbclus01-int =&lt;br /&gt;
== configuratie ==&lt;br /&gt;
De twee servers staan in &#039;master master replicatie&#039;, dit wil zeggen als er een mutatie wordt gedaan op server 1 dat deze ook wordt doorgevoerd op server 2.&lt;br /&gt;
&lt;br /&gt;
De loadbalancer zorgt er voor dat server 1 altijd wordt aangesproken. Is server 1 down dan wordt er omgeschakeld naar server2 zonder dat de gebruiker hier iets van merkt.&lt;br /&gt;
&lt;br /&gt;
== config files ==&lt;br /&gt;
=== db01 ===&lt;br /&gt;
De config aanpassingen die gedaan zijn op standaard config zijn:&lt;br /&gt;
 #sql mode uit voor toestaan lege velden&lt;br /&gt;
 sql-mode                 = &amp;quot;&amp;quot;&lt;br /&gt;
 server-id                = &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
 replicate-same-server-id = 0&lt;br /&gt;
 auto-increment-increment = 2&lt;br /&gt;
 auto-increment-offset    = 1&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 log_bin                 = /var/log/mysql/mysql-bin.log&lt;br /&gt;
 expire_logs_days        = 10&lt;br /&gt;
 max_binlog_size         = 100M&lt;br /&gt;
 binlog_format           = &amp;quot;STATEMENT&amp;quot;&lt;br /&gt;
 replicate-ignore-db     = information_schema&lt;br /&gt;
 replicate-ignore-db     = mysql&lt;br /&gt;
 binlog-ignore-db        = information_schema&lt;br /&gt;
 binlog-ignore-db        = mysql&lt;br /&gt;
&lt;br /&gt;
=== db02 ===&lt;br /&gt;
de config aanpassingen die gedaan zijn op standaard config zijn:&lt;br /&gt;
 #sql mode uit voor toestaan lege velden&lt;br /&gt;
 sql-mode                 = &amp;quot;&amp;quot;&lt;br /&gt;
 server-id                = &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
 replicate-same-server-id = 0&lt;br /&gt;
 auto-increment-increment = 2&lt;br /&gt;
 auto-increment-offset    = 2&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 log_bin                 = /var/log/mysql/mysql-bin.log&lt;br /&gt;
 expire_logs_days        = 10&lt;br /&gt;
 max_binlog_size         = 100M&lt;br /&gt;
 binlog_format           = &amp;quot;STATEMENT&amp;quot;&lt;br /&gt;
 replicate-ignore-db     = information_schema&lt;br /&gt;
 replicate-ignore-db     = mysql&lt;br /&gt;
 binlog-ignore-db        = information_schema&lt;br /&gt;
 binlog-ignore-db        = mysql&lt;br /&gt;
&lt;br /&gt;
= database cluster 02 (hcc.nl) hcc-dbclus02-int=&lt;br /&gt;
== configuratie ==&lt;br /&gt;
De twee servers staan in de &#039;master master replicatie&#039; mode, dit wil zeggen als er een mutatie wordt gedaan op server 1, dat deze ook wordt doorgevoerd op server 2.&lt;br /&gt;
&lt;br /&gt;
De loadbalancer zorgt er voor dat server 1 altijd wordt aangesproken. Is server 1 down dat wordt er omgeschakeld naar server2 zonder dat gebruiker hier iets van merkt.&lt;br /&gt;
&lt;br /&gt;
== config files ==&lt;br /&gt;
=== hcc-db03 ===&lt;br /&gt;
De config aanpassingen die gedaan zijn op standaard config zijn:&lt;br /&gt;
&lt;br /&gt;
 server-id                = &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
 log_bin                  = /var/log/mysql/mysql-bin.log&lt;br /&gt;
 replicate-same-server-id = 0&lt;br /&gt;
 auto-increment-increment = 2&lt;br /&gt;
 auto-increment-offset    = 1&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 expire_logs_days         = 10&lt;br /&gt;
 max_binlog_size          = 100M&lt;br /&gt;
 binlog_do_db             = bas&lt;br /&gt;
 # lbtest mag nooit weg ivm loadbalancing test of mysql nog werkt!&lt;br /&gt;
 binlog_do_db             = lbtest&lt;br /&gt;
 binlog_do_db             = www-prod&lt;br /&gt;
 &amp;lt;snip&amp;gt;&lt;br /&gt;
 binlog_ignore_db         = mysql&lt;br /&gt;
&lt;br /&gt;
=== hcc-db04 ===&lt;br /&gt;
De config aanpassingen die gedaan zijn op standaard config zijn:&lt;br /&gt;
 server-id                = &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
 replicate-same-server-id = 0&lt;br /&gt;
 auto-increment-increment = 2&lt;br /&gt;
 auto-increment-offset    = 2&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 log_bin                  = /var/log/mysql/mysql-bin.log&lt;br /&gt;
 expire_logs_days         = 10&lt;br /&gt;
 max_binlog_size          = 100M&lt;br /&gt;
 binlog_do_db             = bas&lt;br /&gt;
 # lbtest mag nooit weg ivm loadbalancing test of mysql nog werkt!&lt;br /&gt;
 binlog_do_db             = lbtest&lt;br /&gt;
 binlog_do_db             = www-prod&lt;br /&gt;
 &amp;lt;snip&amp;gt;&lt;br /&gt;
 binlog_ignore_db         = mysql&lt;br /&gt;
&lt;br /&gt;
= database aan replicatie toevoegen =&lt;br /&gt;
* maak zo nodig de database user aan op &#039;&#039;&#039;beide database servers&#039;&#039;&#039;&lt;br /&gt;
* ken rechten toe op &#039;&#039;&#039;beide database servers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
LET OP: &#039;&#039;de gebruiker en de rechten worden niet gerepliceerd, die moeten dus echt zoals hier beschreven &#039;&#039;&#039;dubbel&#039;&#039;&#039; worden aangemaakt!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= database uit replicatie verwijderen =&lt;br /&gt;
* verwijder database op 1 van beide database servers&lt;br /&gt;
* verwijder zo nodig bij behorende user op &#039;&#039;&#039;beide database servers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= status replicatie bekijken =&lt;br /&gt;
== goede status ==&lt;br /&gt;
Een goede status ziet er als volgt uit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; show slave status\G&lt;br /&gt;
*************************** 1. row ***************************&lt;br /&gt;
               Slave_IO_State: Waiting for master to send event&lt;br /&gt;
                  Master_Host: 172.31.1.214&lt;br /&gt;
                  Master_User: repl&lt;br /&gt;
                  Master_Port: 3306&lt;br /&gt;
                Connect_Retry: 60&lt;br /&gt;
              Master_Log_File: mysql-bin.000023&lt;br /&gt;
          Read_Master_Log_Pos: 23081&lt;br /&gt;
               Relay_Log_File: db01-int-relay-bin.000135&lt;br /&gt;
                Relay_Log_Pos: 251&lt;br /&gt;
        Relay_Master_Log_File: mysql-bin.000023&lt;br /&gt;
             Slave_IO_Running: Yes&lt;br /&gt;
            Slave_SQL_Running: Yes&lt;br /&gt;
              Replicate_Do_DB:&lt;br /&gt;
          Replicate_Ignore_DB:&lt;br /&gt;
           Replicate_Do_Table:&lt;br /&gt;
       Replicate_Ignore_Table:&lt;br /&gt;
      Replicate_Wild_Do_Table:&lt;br /&gt;
  Replicate_Wild_Ignore_Table:&lt;br /&gt;
                   Last_Errno: 0&lt;br /&gt;
                   Last_Error:&lt;br /&gt;
                 Skip_Counter: 0&lt;br /&gt;
          Exec_Master_Log_Pos: 23081&lt;br /&gt;
              Relay_Log_Space: 554&lt;br /&gt;
              Until_Condition: None&lt;br /&gt;
               Until_Log_File:&lt;br /&gt;
                Until_Log_Pos: 0&lt;br /&gt;
           Master_SSL_Allowed: No&lt;br /&gt;
           Master_SSL_CA_File:&lt;br /&gt;
           Master_SSL_CA_Path:&lt;br /&gt;
              Master_SSL_Cert:&lt;br /&gt;
            Master_SSL_Cipher:&lt;br /&gt;
               Master_SSL_Key:&lt;br /&gt;
        Seconds_Behind_Master: 0&lt;br /&gt;
Master_SSL_Verify_Server_Cert: No&lt;br /&gt;
                Last_IO_Errno: 0&lt;br /&gt;
                Last_IO_Error:&lt;br /&gt;
               Last_SQL_Errno : 0&lt;br /&gt;
               Last_SQL_Error:&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zowel Slave_IO_Running als Slave_SQL_Running staan op &#039;yes&#039;, en Slave_IO_State staat op &#039;Waiting for master to send event&#039;&lt;br /&gt;
&lt;br /&gt;
== foute status ==&lt;br /&gt;
Zo ziet een foute status er uit.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; show slave status\G&lt;br /&gt;
*************************** 1. row ***************************&lt;br /&gt;
               Slave_IO_State: Reconnecting after a failed master event read&lt;br /&gt;
                  Master_Host: 172.31.1.214&lt;br /&gt;
                  Master_User: repl&lt;br /&gt;
                  Master_Port: 3306&lt;br /&gt;
                Connect_Retry: 60&lt;br /&gt;
              Master_Log_File: mysql-bin.000023&lt;br /&gt;
          Read_Master_Log_Pos: 23081&lt;br /&gt;
               Relay_Log_File: db01-int-relay-bin.000136&lt;br /&gt;
                Relay_Log_Pos: 251&lt;br /&gt;
        Relay_Master_Log_File: mysql-bin.000023&lt;br /&gt;
             Slave_IO_Running: No&lt;br /&gt;
            Slave_SQL_Running: Yes&lt;br /&gt;
              Replicate_Do_DB:&lt;br /&gt;
          Replicate_Ignore_DB:&lt;br /&gt;
           Replicate_Do_Table:&lt;br /&gt;
       Replicate_Ignore_Table:&lt;br /&gt;
      Replicate_Wild_Do_Table:&lt;br /&gt;
  Replicate_Wild_Ignore_Table:&lt;br /&gt;
                   Last_Errno: 0&lt;br /&gt;
                   Last_Error:&lt;br /&gt;
                 Skip_Counter: 0&lt;br /&gt;
          Exec_Master_Log_Pos: 23081&lt;br /&gt;
              Relay_Log_Space: 554&lt;br /&gt;
              Until_Condition: None&lt;br /&gt;
               Until_Log_File:&lt;br /&gt;
                Until_Log_Pos: 0&lt;br /&gt;
           Master_SSL_Allowed: No&lt;br /&gt;
           Master_SSL_CA_File:&lt;br /&gt;
           Master_SSL_CA_Path:&lt;br /&gt;
              Master_SSL_Cert:&lt;br /&gt;
            Master_SSL_Cipher:&lt;br /&gt;
               Master_SSL_Key:&lt;br /&gt;
        Seconds_Behind_Master: NULL&lt;br /&gt;
Master_SSL_Verify_Server_Cert: No&lt;br /&gt;
                Last_IO_Errno: 2013&lt;br /&gt;
                Last_IO_Error: error reconnecting to master &#039;repl@172.31.1.214:3306&#039; - retry-time: 60  retries: 86400&lt;br /&gt;
               Last_SQL_Errno: 0&lt;br /&gt;
               Last_SQL_Error:&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
zoals je kan zien staat Slave_IO_Running op &#039;No&#039; en staat er een melding bij Last_IO_Error. In dit geval staat de ander db server gewoon uit voor bijvoorbeeld een OS update. Dit probleem zal zich daarom vanzelf weer herstellen.&lt;br /&gt;
&lt;br /&gt;
= herstel van replicatie =&lt;br /&gt;
== automatisch ==&lt;br /&gt;
Als als goed gaat wordt nadat een server weer online komt hij weer helemaal upd2date gebracht.&lt;br /&gt;
== handmatig ==&lt;br /&gt;
Op het moment dat een server niet automatisch up2date wordt gebracht, moet dit handmatig gebeuren.&lt;br /&gt;
=== replicatie stop zetten ===&lt;br /&gt;
Dan moet op beide server het commando &amp;quot;stop slave;&amp;quot; gegeven worden.&amp;lt;br&amp;gt;&lt;br /&gt;
De host die niet up2date is moet in de loadbalancer worden uitgeschakeld, indien mogelijk beide servers, dat voorkomt fouten.&lt;br /&gt;
Zolang directe toegang tot de servers mogelijk is (load-banlancer probleem) moet de firewall even aangepast worden.&lt;br /&gt;
&lt;br /&gt;
=== replicatie herstellen ===&lt;br /&gt;
==== voor de gefaalde host ====&lt;br /&gt;
Maak eerst backup van de gefaalde en goede host je weet maar nooit.&amp;lt;br&amp;gt;&lt;br /&gt;
Hierna drop je alle databases die gerepliceerd worden. &#039;&#039;&#039;dus niet MYSQL!!!!&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
Daar doe je eerst op de master een &amp;quot;show master status \g&amp;quot; op de goede host. De gegevens hieruit hebben we nodig om de replicatie naar de gefaalde host weer op gang te brengen.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; show master status \g&lt;br /&gt;
+------------------+----------+-----------------------------------------------------------------+------------------+&lt;br /&gt;
| File             | Position | Binlog_Do_DB                                                    | Binlog_Ignore_DB |&lt;br /&gt;
+------------------+----------+-----------------------------------------------------------------+------------------+&lt;br /&gt;
| mysql-bin.000012 |  4154828 | bas,lbtest,www-prod,www-test,hcc-gebruikers,hcc-gebruikers-test | mysql            |&lt;br /&gt;
+------------------+----------+-----------------------------------------------------------------+------------------+&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier moet de huidige stand van zaken overbrengen naar de gefaalde host dat doe je als volgt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysqldump --all-databases | mysql -h hostgefaald-int -u bas -pjegeheimewachtwoord&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Gebruik hier natuurlijk je mysql credentials met volledige rechten.&amp;lt;br&amp;gt;&lt;br /&gt;
daarna login met mysql in op de gefaalde host en geef je volgende query in.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO MASTER_HOST=&#039;IP goede DB server&#039;, MASTER_USER=&#039;repl&#039;, MASTER_PASSWORD=&#039;*******&#039;, MASTER_LOG_FILE=&#039;mysql-bin.000012&#039;, MASTER_LOG_POS=4154828 ;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
De master_log_file en _master_log_pos haal je op van de eerder gedane &#039;show master status&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Hierna geef je het commando &#039;start slave;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Hierna ga je het commando &#039;show slave status\G&#039; om te zien of alles weer loopt, als het goed is ziet het er dan ongeveer zo uit.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; show slave status\G&lt;br /&gt;
*************************** 1. row ***************************&lt;br /&gt;
               Slave_IO_State: Waiting for master to send event&lt;br /&gt;
                  Master_Host: 172.31.1.214&lt;br /&gt;
                  Master_User: repl&lt;br /&gt;
                  Master_Port: 3306&lt;br /&gt;
                Connect_Retry: 60&lt;br /&gt;
              Master_Log_File: mysql-bin.000023&lt;br /&gt;
          Read_Master_Log_Pos: 23081&lt;br /&gt;
               Relay_Log_File: db01-int-relay-bin.000135&lt;br /&gt;
                Relay_Log_Pos: 251&lt;br /&gt;
        Relay_Master_Log_File: mysql-bin.000023&lt;br /&gt;
             Slave_IO_Running: Yes&lt;br /&gt;
            Slave_SQL_Running: Yes&lt;br /&gt;
              Replicate_Do_DB:&lt;br /&gt;
          Replicate_Ignore_DB:&lt;br /&gt;
           Replicate_Do_Table:&lt;br /&gt;
       Replicate_Ignore_Table:&lt;br /&gt;
      Replicate_Wild_Do_Table:&lt;br /&gt;
  Replicate_Wild_Ignore_Table:&lt;br /&gt;
                   Last_Errno: 0&lt;br /&gt;
                   Last_Error:&lt;br /&gt;
                 Skip_Counter: 0&lt;br /&gt;
          Exec_Master_Log_Pos: 23081&lt;br /&gt;
              Relay_Log_Space: 554&lt;br /&gt;
              Until_Condition: None&lt;br /&gt;
               Until_Log_File:&lt;br /&gt;
                Until_Log_Pos: 0&lt;br /&gt;
           Master_SSL_Allowed: No&lt;br /&gt;
           Master_SSL_CA_File:&lt;br /&gt;
           Master_SSL_CA_Path:&lt;br /&gt;
              Master_SSL_Cert:&lt;br /&gt;
            Master_SSL_Cipher:&lt;br /&gt;
               Master_SSL_Key:&lt;br /&gt;
        Seconds_Behind_Master: 0&lt;br /&gt;
Master_SSL_Verify_Server_Cert: No&lt;br /&gt;
                Last_IO_Errno: 0&lt;br /&gt;
                Last_IO_Error:&lt;br /&gt;
               Last_SQL_Errno : 0&lt;br /&gt;
               Last_SQL_Error:&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Het belangrijkste is dat dat state op &#039;Waiting for master to send event&#039; en de volgende beide op &#039;yes&#039; staan. (let op de state kan even duren voordat hij deze status krijgt)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
           Slave_IO_State   : Waiting for master to send event&lt;br /&gt;
           Slave_IO_Running : Yes&lt;br /&gt;
           Slave_SQL_Running: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nu kan de goede host weer worden bijgeschakeld in de loadbalancer, want hij stuurt zijn wijzigingen door naar de ander database server.&amp;lt;br&amp;gt;&lt;br /&gt;
Nu moet nog alleen de replicatie van de gefaalde host naar de goede host ook hersteld worden. Op het inlezen van e database na is dit het zelfde concept. Denk eraan het IP adres in de CHANGE_MASTER goed te zetten!&lt;br /&gt;
&lt;br /&gt;
==== voor de goede host ====&lt;br /&gt;
Nu moeten we ook op de voormalig gefaalde host een  &amp;quot;show master status \g&amp;quot; doen. De gegevens van hier hebben we nodig om de replicatie naar de goede host weer op gang te brengen. &#039;&#039;&#039; de waarde verschillen bijna elke keer als je het commando geeft&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; show master status \g&lt;br /&gt;
+------------------+----------+-----------------------------------------------------------------+------------------+&lt;br /&gt;
| File             | Position | Binlog_Do_DB                                                    | Binlog_Ignore_DB |&lt;br /&gt;
+------------------+----------+-----------------------------------------------------------------+------------------+&lt;br /&gt;
| mysql-bin.000012 |  4154828 | bas,lbtest,www-prod,www-test,hcc-gebruikers,hcc-gebruikers-test | mysql            |&lt;br /&gt;
+------------------+----------+-----------------------------------------------------------------+------------------+&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hierna starten we op de goede host de replicatie weer op halen bij de voormalig gefaalde DB server.&lt;br /&gt;
&#039;&#039;(??wat wordt hier bedoeld??)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO MASTER_HOST=&#039;IP voormalig gefaalde DB server&#039;, MASTER_USER=&#039;repl&#039;, MASTER_PASSWORD=&#039;fxq5jLqWDYXYKhPD&#039;, MASTER_LOG_FILE=&#039;mysql-bin.000012&#039;, MASTER_LOG_POS=4154828 ;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
De master_log_file en _master_log_pos haal je op van de eerder gedane &#039;show master status&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Hierna geef je het commando &#039;start slave;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Hierna kan je met het commando &#039;show slave status\G&#039; zien of alles weer loopt, als het goed is ziet er dan ongeveer zo uit.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; show slave status\G&lt;br /&gt;
*************************** 1. row ***************************&lt;br /&gt;
               Slave_IO_State: Waiting for master to send event&lt;br /&gt;
                  Master_Host: 172.31.1.214&lt;br /&gt;
                  Master_User: repl&lt;br /&gt;
                  Master_Port: 3306&lt;br /&gt;
                Connect_Retry: 60&lt;br /&gt;
              Master_Log_File: mysql-bin.000023&lt;br /&gt;
          Read_Master_Log_Pos: 23081&lt;br /&gt;
               Relay_Log_File: db01-int-relay-bin.000135&lt;br /&gt;
                Relay_Log_Pos: 251&lt;br /&gt;
        Relay_Master_Log_File: mysql-bin.000023&lt;br /&gt;
             Slave_IO_Running: Yes&lt;br /&gt;
            Slave_SQL_Running: Yes&lt;br /&gt;
              Replicate_Do_DB:&lt;br /&gt;
          Replicate_Ignore_DB:&lt;br /&gt;
           Replicate_Do_Table:&lt;br /&gt;
       Replicate_Ignore_Table:&lt;br /&gt;
      Replicate_Wild_Do_Table:&lt;br /&gt;
  Replicate_Wild_Ignore_Table:&lt;br /&gt;
                   Last_Errno: 0&lt;br /&gt;
                   Last_Error:&lt;br /&gt;
                 Skip_Counter: 0&lt;br /&gt;
          Exec_Master_Log_Pos: 23081&lt;br /&gt;
              Relay_Log_Space: 554&lt;br /&gt;
              Until_Condition: None&lt;br /&gt;
               Until_Log_File:&lt;br /&gt;
                Until_Log_Pos: 0&lt;br /&gt;
           Master_SSL_Allowed: No&lt;br /&gt;
           Master_SSL_CA_File:&lt;br /&gt;
           Master_SSL_CA_Path:&lt;br /&gt;
              Master_SSL_Cert:&lt;br /&gt;
            Master_SSL_Cipher:&lt;br /&gt;
               Master_SSL_Key:&lt;br /&gt;
        Seconds_Behind_Master: 0&lt;br /&gt;
Master_SSL_Verify_Server_Cert: No&lt;br /&gt;
                Last_IO_Errno: 0&lt;br /&gt;
                Last_IO_Error:&lt;br /&gt;
               Last_SQL_Errno : 0&lt;br /&gt;
               Last_SQL_Error:&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Het belangrijkste is dat dat &#039;state&#039; op &#039;Waiting for master to send event&#039; en de volgende beide op &#039;yes&#039; staan (let op: de state kan even duren voor dat hij deze status krijgt).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
           Slave_IO_State   : Waiting for master to send event&lt;br /&gt;
           Slave_IO_Running : Yes&lt;br /&gt;
           Slave_SQL_Running: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Als ook dit in orde is kan je ook deze host weer bijschakelen in de loadbalancer.&lt;br /&gt;
&lt;br /&gt;
= maximaal aantal connecties =&lt;br /&gt;
Op db01 en db02 berperken we het aantal connecties per gebruiker omdat nog wat gebruikers heel veel connecties blijven open en daar door de mysql server voor iedereen onbereikbaar maken.&lt;br /&gt;
Daarnaast is er ook ingesteld, dat als 180 seconden connectie niks doet hij getermineerd wordt.&lt;br /&gt;
&lt;br /&gt;
De config die voor nodig is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#maximaal aantal connecties en hum time out waarde&lt;br /&gt;
max_connections         = 1000&lt;br /&gt;
interactive_timeout     = 180&lt;br /&gt;
wait_timeout            = 180&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
= offset =&lt;br /&gt;
Om te zorgen dat er tijdens de replicatie geen dubbele key&#039;s ontstaan (omdat beide server theoretisch precies tegelijk een  mutatie kunnen uitvoeren) zit er een offset ingebouwd.&amp;lt;br&amp;gt;&lt;br /&gt;
Dit houdt in dat db01-int alle &#039;&#039;&#039;oneven&#039;&#039;&#039; nrs gebruikt en db02-int alle &#039;&#039;&#039;even&#039;&#039;&#039; nrs  voor auto increment.&lt;br /&gt;
 Db01 begint bij 1 en volgende 3 etcetera&lt;br /&gt;
 Db02 begint bij 2 en volgende 4 etcetera&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Betekenis van de mysql-bin bestanden =&lt;br /&gt;
De bin log files zijn nodig voor replicatie en juist als er een down is geweest voor controle.&lt;br /&gt;
&lt;br /&gt;
En dat de aantallen per server afwijken dat kan heel goed, het gaat er om hoeveel mutaties er op 1 server zijn uit gevoerd, dus het aantal kan en zal verschillen per server.&lt;br /&gt;
&lt;br /&gt;
Het aantal bestanden wordt zelf door mysql gereguleerd en hangt vanaf van het aantal en grootte mutaties.&lt;br /&gt;
Log files ouder dan 10 dagen worden verwijderd.&lt;br /&gt;
&lt;br /&gt;
Zeker als er veel Joomla updates zijn geweest en die zijn tegen 1 server aangehouden bijvoorbeeld op 22 october dan zullen daar veel meer en grote logs zijn.&lt;br /&gt;
&lt;br /&gt;
 root@mail-lb1:/var/log/mysql# ls -l | grep bin&lt;br /&gt;
 -rw-r----- 1 mysql mysql 1180363 Oct 17 06:25 mysql-bin.000811&lt;br /&gt;
 -rw-r----- 1 mysql mysql 1548726 Oct 18 06:25 mysql-bin.000812&lt;br /&gt;
 -rw-r----- 1 mysql mysql  147778 Oct 18 17:59 mysql-bin.000813&lt;br /&gt;
 -rw-r----- 1 mysql mysql    1045 Oct 18 18:11 mysql-bin.000814&lt;br /&gt;
&lt;br /&gt;
= links =&lt;br /&gt;
http://www.hbyconsultancy.com/blog/create-a-master-master-mysql-replication-ubuntu-server-10-04-x64.html de handleiding die ik gebruikt heb in eerste instantie&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.neocodesoftware.com/replication/ deze handleiding heb ik later gebruikt om het een en ander te verbeteren&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Inventaris&amp;diff=78748</id>
		<title>Inventaris</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Inventaris&amp;diff=78748"/>
		<updated>2020-10-26T08:18:09Z</updated>

		<summary type="html">&lt;p&gt;Hans: /* Inventaris overzicht. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Inventaris overzicht. ==&lt;br /&gt;
&lt;br /&gt;
In dit overzicht behoort tenminste alle apparatuur voor te komen, die maximaal 3 jaar oud is.&lt;br /&gt;
&lt;br /&gt;
De gegevens van deze pagina kunnen gebruikt worden als basis van het jaarlijks in te vullen hardware inventarisatie formulier, zoals dat door de penningmeester ieder jaar aan het hcc kantoor ter hand gesteld dient te worden.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! datum aankoop	|| artikelomschrijving	|| serienummer	|| aankoopprijs			|| leverancier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|30 oktober 2019&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;cisco-sw-01&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
SG350X-48 48-Port Gigabit Stackable Managed Switch&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|DNI2228066K&lt;br /&gt;
Factuur: [[Media:f-cisco-switch-2019-10-30.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 362,81 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Azerty&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|30 oktober 2019&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;cisco-sw-02&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
SG350X-48 48-Port Gigabit Stackable Managed Switch&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|DNI22280660&lt;br /&gt;
Factuur: [[Media:f-cisco-switch-2019-10-30.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 362,81 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Azerty&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|22 oktober 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;cisco-sw-03-vlan999&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
SX550X-24-K9-EU&amp;lt;br&amp;gt;&lt;br /&gt;
Cisco SX550X-24 24-Port 10GBase-T Stackable Managed Switch&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|DNI243100NK&lt;br /&gt;
Factuur: [[Media:f-cisco-switch-2020-10-22.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 2600,00 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| infradax&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|22 oktober 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;cisco-sw-04-vlan999&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
SX550X-24-K9-EU&amp;lt;br&amp;gt;&lt;br /&gt;
Cisco SX550X-24 24-Port 10GBase-T Stackable Managed Switch&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|DNI243100NL&lt;br /&gt;
Factuur: [[Media:f-cisco-switch-2020-10-22.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 2600,00 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| infradax&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|&amp;lt;strike&amp;gt;3 juli 2018&amp;lt;/strike&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
september 2020&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;rt-01&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
MikroTik CCR1016-12S-1S+ router&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&amp;lt;strike&amp;gt;6EFD087C1C40&amp;lt;/strike&amp;gt;&amp;lt;br&amp;gt;912A0B49A749&amp;lt;br&amp;gt;&lt;br /&gt;
Factuur: [[Media:Mikrotik-CCR1016-12S-1S-router-1.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 643,80 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| KommaGo &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|10 juli 2018&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;rt-02&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
MikroTik CCR1016-12S-1S+ router&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|6EFD08521BE4&lt;br /&gt;
Factuur: [[media:Mikrotik-CCR1016-12S-1S-router-2.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 643,80 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| KommaGo&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|juni 2013&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;KVM&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* KV1416A-R2&amp;lt;br&amp;gt;&lt;br /&gt;
* Blackbox 16 ports KVM&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Media:f-kvm2013.pdf]]&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|13022015224&amp;lt;br&amp;gt;&lt;br /&gt;
[[Media:foto-srnr-kvm.jpg]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 1.987 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
|Blackbox&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 22 november 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;logging new&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* PRIMERGY RX1330 M3&amp;lt;br&amp;gt;&lt;br /&gt;
* 1x 8GB DDR4-2400 U ECC &amp;lt;br&amp;gt;&lt;br /&gt;
* Intel(R) Core(TM) i3-7100 CPU @ 3.90GHz&amp;lt;br&amp;gt;&lt;br /&gt;
* 60GB SATAdom &amp;lt;br&amp;gt;&lt;br /&gt;
* 2 x Gbit I210 Gigabit Network interface onboard&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x Gbit I350 Gigabit Network interface&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YMDH003824&amp;lt;br&amp;gt;&lt;br /&gt;
* Factuur: [[Media:lb-1-2-bit.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 1.396,26 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| BIT, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 22 november 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;LB2&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* PRIMERGY RX1330 M3&amp;lt;br&amp;gt;&lt;br /&gt;
* 1x 8GB DDR4-2400 U ECC &amp;lt;br&amp;gt;&lt;br /&gt;
* Intel(R) Core(TM) i3-7100 CPU @ 3.90GHz&amp;lt;br&amp;gt;&lt;br /&gt;
* 60GB SATAdom &amp;lt;br&amp;gt;&lt;br /&gt;
* 2 x Gbit I210 Gigabit Network interface onboard&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x Gbit I350 Gigabit Network interface&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YMDH003825&amp;lt;br&amp;gt;&lt;br /&gt;
* Factuur: [[Media:lb-1-2-bit.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 1.396,26 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| BIT, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 Augustus 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware1&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu Primergy RX2530 M2&amp;lt;br&amp;gt;&lt;br /&gt;
*  4x 32GB DDR4-2400 U ECC (uitbreidbaar naar 12 per socket, upgradebaar naar 64GB per bank)&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x 900 GB SSD (raid 5)&amp;lt;br&amp;gt;&lt;br /&gt;
* Intel Xeon e5-2620 v4 @ 2.10GHz 8 cores 16 logical procesors  &amp;lt;br&amp;gt;&lt;br /&gt;
*  4x1Gb T OC|14000-LOM  netwerk interface&amp;lt;br&amp;gt;&lt;br /&gt;
* ILOm &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YM6B011958&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT binnen 8 uur recovery &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar123.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 6.996,21 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 Augustus 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware2&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu Primergy RX2530 M2&amp;lt;br&amp;gt;&lt;br /&gt;
*  4x 32GB DDR4-2400 U ECC (uitbreidbaar naar 12 per socket, upgradebaar naar 64GB per bank)&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x 900 GB SSD (raid 5)&amp;lt;br&amp;gt;&lt;br /&gt;
* Intel Xeon e5-2620 v4 @ 2.10GHz 8 cores 16 logical procesors  &amp;lt;br&amp;gt;&lt;br /&gt;
*  4x1Gb T OC|14000-LOM  netwerk interface&amp;lt;br&amp;gt;&lt;br /&gt;
* ILOm &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YM6B011957&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT binnen 8 uur recovery &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar123.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 6.996,21 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 Augustus 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware3&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu Primergy RX2530 M2&amp;lt;br&amp;gt;&lt;br /&gt;
*  4x 32GB DDR4-2400 U ECC (uitbreidbaar naar 12 per socket, upgradebaar naar 64GB per bank)&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x 900 GB SSD (raid 5)&amp;lt;br&amp;gt;&lt;br /&gt;
* Intel Xeon e5-2620 v4 @ 2.10GHz 8 cores 16 logical procesors  &amp;lt;br&amp;gt;&lt;br /&gt;
*  4x1Gb T OC|14000-LOM  netwerk interface&amp;lt;br&amp;gt;&lt;br /&gt;
* ILOm &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YM6B011956&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT binnen 8 uur recovery &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar123.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 6.996,21 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| juli 2018&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;logging old&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu RX100 S6&amp;lt;br&amp;gt;&lt;br /&gt;
* 1x 8GB DDR4-2400 U ECC &amp;lt;br&amp;gt;&lt;br /&gt;
* Intel(R) Xeon(R) CPU X3430 @ 2.40GHz&amp;lt;br&amp;gt;&lt;br /&gt;
* 466GB disk &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
YL8V001703&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 0 ex BTW (gift)&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| BIT, Ede&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 14 februari 2013&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;Powerboot-1&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
APC AP8959EU3&amp;lt;br&amp;gt;&lt;br /&gt;
* 24 schakelbare 230V poorten&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
| ZA1238010076&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 755 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Acesdirect&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 14 februari 2013&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;Powerboot-2&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
APC AP8959EU3&amp;lt;br&amp;gt;&lt;br /&gt;
* 24 schakelbare 230V poorten&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
| ZA1238010081&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 755 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Acesdirect&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Afgeschreven apparatuur, niet meer in het rack, niet meer in gebruik ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! datum aankoop	|| artikelomschrijving	|| serienummer	|| aankoopprijs	|| leverancier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
|-&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=LDAP_scripting&amp;diff=78563</id>
		<title>LDAP scripting</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=LDAP_scripting&amp;diff=78563"/>
		<updated>2020-09-24T10:44:35Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inleiding=&lt;br /&gt;
Omdat de ldap server in sneltreinvaart de bron voor allerlei services aan het worden is, ontstaat er ook een migratie van (veelal perl) scripts op scripting-int naar php scripts op ldap-lb1-int. ldap-lb1-int is net als scripting-int een server met verhoogde security. Er mag dus wel &#039;&#039;&#039;van&#039;&#039;&#039; deze server &#039;&#039;&#039;naar&#039;&#039;&#039; andere servers geconnect worden maar niet andersom. Dit is vergelijkbaar met de situatie op scripting-int. Deze mogelijkheid is essentieel voor de goede werking van sommige scripts.&lt;br /&gt;
&lt;br /&gt;
==Type scripts==&lt;br /&gt;
Er zijn globaal een aantal soorten scripts te onderscheiden:&lt;br /&gt;
* De eigenlijke scripts die een bepaalde taak uitvoeren en vaak naar stdout schrijven (.php soms geen extensie).&lt;br /&gt;
* De cronjob scripts. Gewoonlijk herkenbaar aan de &#039;&#039;&#039;.sh&#039;&#039;&#039; extensie. Deze scripts bundelen vaak meerdere php scripts tot complete oplossingen.&lt;br /&gt;
* Scripts die voor initialiseren en backuppen van de ldap directory nodig zijn (&#039;&#039;&#039;init_ldap, dump_ldap en restore_ldap&#039;&#039;&#039;). Behalve dump_ldap mogen deze scripts nooit zomaar gedraaid worden; de ldap directory zou vernield worden.&lt;br /&gt;
&lt;br /&gt;
==Overzicht scripts==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0_DIT_IS_EEN_LOCAL_DIR            gen_passwd_admin.php              LDAP_include.php                    sync_hccforums.php&lt;br /&gt;
cron_joomla.php                   gen_passwd_code2.php              LDAP_include_telefoon.php           sync_hobbynetbin_2.sh&lt;br /&gt;
cron_joomla.sh                    gen_passwd_hcc.php                LDAP_lid_weg.php                    sync_hobbynetdata_2.sh&lt;br /&gt;
database-onderhoud.sh             gen_shadow_admin.php              _LDAP_schoon_4045431_op.php         sync_hobbynetetc_2.sh&lt;br /&gt;
dump_ldap.sh                      gen_shadow_code2.php              LDAP_schoon_database.php            sync_hobbynetfw_2.sh&lt;br /&gt;
enquete-specials                  gen_shadow_hcc.php                LDAP_schoon_mysql_op.php            sync_hobbynetlib_2.sh&lt;br /&gt;
forum-specials                    get_all_mailbox_sizes.sh          LDAP_vul_leden.php                  tel_unieke_bezoekers-volgens-LDAP_en_SQL.php&lt;br /&gt;
gen_bezoekersstatistiek_xml.php   get_ip4                           LDAP_vul_leden_vanuit_HCCLeden.php  tel_unieke_bezoekers-volgens-LDAP.php&lt;br /&gt;
gen_compusers_csv.php             get_ip6                           LDAP_vul_locaties.php               tel_unieke_bezoekers-volgens-LDAP.sh&lt;br /&gt;
gen_dmarc_hcc.php                 getip-http                        LDAP_vul_profielbekend.php          test.php&lt;br /&gt;
gen_group_admin.php               getupdatesites_joomla.php         mailman-specials                    unblock_joomla.php&lt;br /&gt;
gen_group_code2.php               getupdatesites_joomla.sh          mail_tripolis_export_report.sh      unblock_joomla.sh&lt;br /&gt;
gen_group_hcc.php                 hccforums_db.php                  mail_tripolis_import_report.sh      update_domeinen.php&lt;br /&gt;
gen_hobbyabon.php                 huisgenoot_lidmaatschappen.php    optouts                             update_domeinen.sh&lt;br /&gt;
gen_iplist_partners.php           huisgenoot_lidmaatschappen.sh     other-specials                      update_hccforums.sh&lt;br /&gt;
gen_iplist_partners.sh            import_tripolis_csv.php           popbull-specials                    update_joomla.php&lt;br /&gt;
gen_kader_csv.php                 init_ldap_mdb.sh                  postcode-specials                   update_joomla.sh&lt;br /&gt;
gen_kaderfunc.php                 init_ldap.sh                      purge_hccforums.php                 update_joomla.sh.save&lt;br /&gt;
gen_kaderlist.php                 kader_maak_html.php               renameusers_joomla.php              upd_code2_accounts.sh&lt;br /&gt;
gen_ldap_bul_export.php           kader_maak_lijsten.sh             renameusers_joomla.sh               upd_hcc_accounts.sh&lt;br /&gt;
gen_ldap_cor_export.php           kader_maak_txt.php                restore_ldap.sh                     upd_ldap_dev.sh&lt;br /&gt;
gen_ldap_hoofdbestuur_export.php  kader_maak_xb_csv.php             rss_joomla.php                      upd_ldap-test-dev.expect&lt;br /&gt;
gen_ldap_kader_export.php         LDAP_bepaal_startconditie.php     rss_joomla.sh                       upd_ldap_test.sh&lt;br /&gt;
gen_ldap_ledenraad_export.php     ldap.conf.ldif                    ruimsmsverstuurdsmsop.sql           upd_mailserver_report.sh&lt;br /&gt;
gen_ldap_niet_leden_export.php    LDAP_controleer_groeperingen.php  run_maand_rapport.sh                upd_mailserver.sh&lt;br /&gt;
gen_leden_csv.php                 LDAP_controleer_kader.php         run_tripolis_export.sh              upd_nameserver.sh&lt;br /&gt;
gen_leden_dubbel.log              LDAP_cronjob.sh                   run_tripolis_import.sh              upd_srv&lt;br /&gt;
gen_leden_dubbel.php              LDAP_forceer_CSV.sh               schoon_alles_op_include.php         upg_vmware_tools&lt;br /&gt;
gen_maand_rap.php                 LDAP_ftps_lget_CRM_leden.sh       schoon_alles_op.sh                  upload_bezoekersstatistiek.sh&lt;br /&gt;
gen_maand_rap.php.old             LDAP_herstel_profielbekend.php    schoon_breg_token_tabel_op.php      upload_compusers_csv.sh&lt;br /&gt;
gen_mail_exclude_txt.php          LDAP_include_henz.php             schoon_forms_database_op.php        upload_kader_csv.sh&lt;br /&gt;
gen_mx_hcc.php                    LDAP_include_ISO.php              schoon_JoomlaTokens_tabel_op.php    upload_leden_csv.sh&lt;br /&gt;
gen_mx_hcc.php.backup             LDAP_include_Joomla_db.php        schoon_LDAP_en_hcc_Bezoek_op.php    vergelijk_scripts.readme&lt;br /&gt;
gen_mx_hcc.php.save               LDAP_include_mail.php             statistiek_xml.php                  verrijk_factuur.php&lt;br /&gt;
gen_mx_hobby.php                  LDAP_include_pbkdf2.php           statistiek_xml.sh                   verrijk_factuur.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crontab==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# For more information see the manual pages of crontab(5) and cron(8)&lt;br /&gt;
##############################################################################################################&lt;br /&gt;
# Wijzigingen graag ook aanbrengen op deze wiki pagina: https://wiki.hobby.nl/index.php?title=LDAP_scripting #&lt;br /&gt;
##############################################################################################################&lt;br /&gt;
# m h dom mon dow   command&lt;br /&gt;
&lt;br /&gt;
# Update rssfeeds joomla&lt;br /&gt;
1 */1 * * * /usr/local/hobbynet/bin/rss_joomla.sh &amp;gt;&amp;gt;/var/log/rss_joomla.log&lt;br /&gt;
&lt;br /&gt;
# Synchroniseer firewall regels van ldap-lb1 naar ldap-lb2&lt;br /&gt;
55  5 * * * /usr/local/hobbynet/bin/sync_hobbynetfw_2.sh&lt;br /&gt;
55 11 * * * /usr/local/hobbynet/bin/sync_hobbynetfw_2.sh&lt;br /&gt;
55 17 * * * /usr/local/hobbynet/bin/sync_hobbynetfw_2.sh&lt;br /&gt;
55 23 * * * /usr/local/hobbynet/bin/sync_hobbynetfw_2.sh&lt;br /&gt;
&lt;br /&gt;
# Herstart Firewall&lt;br /&gt;
 0  6 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 0 12 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 0 18 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 0  0 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
# Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
 0  6 * * * apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y &amp;gt;/dev/null&lt;br /&gt;
 0 18 * * * apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
# Maak een beveiligde backup&lt;br /&gt;
45 23 * * * /usr/local/hobbynet/local/backup-encrypted.bash &amp;gt;&amp;gt;/var/log/backup_encrypted.log&lt;br /&gt;
&lt;br /&gt;
# Sync bin dir naar ldap-lb2&lt;br /&gt;
50 23 * * * /usr/local/hobbynet/bin/sync_hobbynetbin_2.sh&lt;br /&gt;
# Sync etc dir naar ldap-lb2&lt;br /&gt;
51 23 * * * /usr/local/hobbynet/bin/sync_hobbynetetc_2.sh&lt;br /&gt;
# Sync lib dir naar ldap-lb2&lt;br /&gt;
52 23 * * * /usr/local/hobbynet/bin/sync_hobbynetlib_2.sh&lt;br /&gt;
&lt;br /&gt;
# Voer de cron_joomla.sh cronjob uit voor de bit backup&lt;br /&gt;
01  0 * * * /usr/local/hobbynet/bin/cron_joomla.sh &amp;gt;&amp;gt;/var/log/cron_joomla.log&lt;br /&gt;
&lt;br /&gt;
# Voer de cron_joomla.sh cronjob uit voor &#039;update_joomla.sh&#039;&lt;br /&gt;
15  1 * * * /usr/local/hobbynet/bin/cron_joomla.sh &amp;gt;&amp;gt;/var/log/cron_joomla.log&lt;br /&gt;
&lt;br /&gt;
# Forceer dat er een verse set CSV bestanden klaar wordt gezet&lt;br /&gt;
05  3 * * * /usr/local/hobbynet/bin/LDAP_forceer_CSV.sh &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
# Doe alle processing CRM-&amp;gt;LDAP&lt;br /&gt;
10  3 * * * /usr/local/hobbynet/bin/LDAP_cronjob.sh &amp;gt;&amp;gt;/var/log/LDAP_cronjob.log&lt;br /&gt;
&lt;br /&gt;
# Maak /usr/local/hobbynet/apache2conf/iplists/iplist-partners-24 aan&lt;br /&gt;
 7  3 * * * /usr/local/hobbynet/bin/gen_iplist_partners.sh&lt;br /&gt;
&lt;br /&gt;
# Ververs postfixadmin op mail-lb1 en mail-lb2. Mail report&lt;br /&gt;
26  3 * * * /usr/local/hobbynet/bin/upd_mailserver.sh &amp;gt;/var/log/upd_mailserver.log&lt;br /&gt;
30  3 * * * /usr/local/hobbynet/bin/upd_mailserver_report.sh&lt;br /&gt;
&lt;br /&gt;
# Haal de opt-outs op van Tripolis&lt;br /&gt;
15  3 * * * /usr/local/hobbynet/bin/run_tripolis_import.sh &amp;gt;/var/log/run_tripolis_import.log&lt;br /&gt;
&lt;br /&gt;
# Haal de handmatige Tripolis opt-outs op, en mail die naar Egbert&lt;br /&gt;
31  3 * * * /usr/local/hobbynet/bin/mail_tripolis_import_report.sh&lt;br /&gt;
&lt;br /&gt;
# Maak en plaats de ledenlijst voor Kantoor&lt;br /&gt;
35  3 * * * /usr/local/hobbynet/bin/upload_leden_csv.sh &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
# Maak en plaats de kaderlijst voor Kantoor&lt;br /&gt;
40  3 * * * /usr/local/hobbynet/bin/upload_kader_csv.sh &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
# Deblokkeer actieve joomla gebruikers&lt;br /&gt;
45  3 * * * /usr/local/hobbynet/bin/unblock_joomla.sh &amp;gt;&amp;gt;/var/log/unblock_joomla.log&lt;br /&gt;
&lt;br /&gt;
# Haal de aantallen bezoekers, en zet die over naar de beschermde kantoor omgeving&lt;br /&gt;
47  3 * * * /usr/local/hobbynet/bin/upload_bezoekersstatistiek.sh &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
# Maak overzicht van alle opt-ins voor Tripolis&lt;br /&gt;
50  3 * * * /usr/local/hobbynet/bin/run_tripolis_export.sh &amp;gt;/var/log/run_tripolis_export.log&lt;br /&gt;
&lt;br /&gt;
# Hernoem in Joomla de users die zijn hernoemd in ldap&lt;br /&gt;
50 3 * * * /usr/local/hobbynet/bin/renameusers_joomla.sh &amp;gt;&amp;gt;/var/log/renameusers_joomla.log&lt;br /&gt;
&lt;br /&gt;
# Haal het resultaat van de Tripolis export op, en mail die naar Egbert&lt;br /&gt;
52  3 * * * /usr/local/hobbynet/bin/mail_tripolis_export_report.sh&lt;br /&gt;
&lt;br /&gt;
# Maak en plaats statistiek overzicht van alle HCC groeperingen&lt;br /&gt;
55  3 * * * /usr/local/hobbynet/bin/statistiek_xml.sh &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
# Start joomla onderhoud&lt;br /&gt;
0  4 * * * /usr/local/hobbynet/bin/update_joomla.sh &amp;gt;&amp;gt;/var/log/update_joomla.log&lt;br /&gt;
&lt;br /&gt;
# Doe de Hobbynet maand rapportage&lt;br /&gt;
 0  4 1 * * /usr/local/hobbynet/bin/run_maand_rapport.sh &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
# Bepaal het aantal unieke (en totaal aantal) bezoekers van de laatste 12 maanden, mail dat aan VB&lt;br /&gt;
 5  4 1 * * /usr/local/hobbynet/bin/tel_unieke_bezoekers-volgens-LDAP.sh &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
# Maak een lijst van onjuiste huisgenoot-lidmaatschappen&lt;br /&gt;
10  4 1 * * /usr/local/hobbynet/bin/huisgenoot_lidmaatschappen.sh &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
# Schoon mySQL en LDAP op&lt;br /&gt;
 5  4 2 * * /usr/local/hobbynet/bin/schoon_alles_op.sh&lt;br /&gt;
&lt;br /&gt;
# Verrijk een naar SFTP geupload factuur bestand met factuurtokens&lt;br /&gt;
15  * * * * /bin/bash /usr/local/hobbynet/bin/verrijk_factuur.sh &amp;gt;&amp;gt;/var/log/verrijk_factuur.log&lt;br /&gt;
&lt;br /&gt;
# ruim sms database op&lt;br /&gt;
42 12 * * * cat /usr/local/hobbynet/bin/ruimsmsverstuurdsmsop.sql |mysql &amp;gt;/dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Toepassingen=&lt;br /&gt;
Soms zijn er een aantal scripts die bij elkaar horen en er voor een bepaalde toepassing zijn, zoals om de mailserver te updaten, dagelijkse bestanden voor Kantoor te maken, dagelijkse bestanden voor het Tripolis mail systeem en niet geheel onbelangrijk, scripts die ldap dagelijks bijwerken met de &#039;&#039;&#039;master&#039;&#039;&#039; data die in het HCC CRM wordt bijgehouden (als er een mutatie gemist is, b.v. omdat een JSON aanroep vanuit het CRM naar de Hobbynet XML-RPC server overdag mislukt is).&lt;br /&gt;
&lt;br /&gt;
==LDAP==&lt;br /&gt;
Drie scripts zijn essentieel om de hele LDAP database te dumpen, te initialiseren en weer te vullen. Dit proces is nodig als een schema change moet worden aangebracht in de LDAP configuratie. Zie ook de pagina over de LDAP server.&lt;br /&gt;
* &#039;&#039;&#039;dump_ldap.sh&#039;&#039;&#039;&amp;lt;br&amp;gt;Dumpt alle ou&#039;s in afzonderlijke ldif bestanden in de data directory en maakt er ook een tarball van.&lt;br /&gt;
* &#039;&#039;&#039;init_ldap.sh &amp;lt;beheer-password&amp;gt;&#039;&#039;&#039;&amp;lt;br&amp;gt;Bouwt de hele LDAP structuur van de grond af op.&lt;br /&gt;
* &#039;&#039;&#039;restore_ldap.sh&#039;&#039;&#039;&amp;lt;br&amp;gt;Vult de hele LDAP structuur met file uit de dump_ldap stap.&lt;br /&gt;
&lt;br /&gt;
==Statistieken==&lt;br /&gt;
Iedere nacht worden er door het script &#039;&#039;&#039;statistiek_xml.sh&#039;&#039;&#039; van alle groeperingen en van de complete HCC leden database statistieken in XML formaat gemaakt. Daarna worden deze statistieken met het script &#039;&#039;&#039;statistiek_xml.sh&#039;&#039;&#039; naar de kadernet server overgezet.&lt;br /&gt;
&lt;br /&gt;
==Mailserver==&lt;br /&gt;
&amp;lt;strike&amp;gt;De mailserver kreeg tot voor kort 2 bestanden van scripting-int, husers en b3a.txt. De inhoud van beide bestanden kan ook uit ldap gehaald worden. Hiervoor zijn de volgende scripts in gebruik:&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;&#039;&#039;&#039;gen_hobbyabon.php&#039;&#039;&#039;.&amp;lt;br&amp;gt;Dit script maakt een equivalent aan van husers en bevat alleen de betalende Hobbynet abonnees (enige tientallen regels).&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;&#039;&#039;&#039;gen_kaderfunc.php&#039;&#039;&#039;.&amp;lt;br&amp;gt;Dit script is de vervanger van b3a.txt, de lijst van alle kaderfuncties (ongeveer 1200).&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;&#039;&#039;&#039;gen_kaderlist.php&#039;&#039;&#039;.&amp;lt;br&amp;gt;Een hulp bestand met alleen de 7 cijferige lidnummers van alle kaderleden (ruim 700). Deze lijst wordt op de mailserver gebruikt om incidenteel kadermailboxen op te ruimen.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;&#039;&#039;&#039;gen_mail_exclude_txt.php&#039;&#039;&#039;.&amp;lt;br&amp;gt;Nog een hulp bestand waar in de interessegroepen staan die geen functionele mailadressen nodig hebben. Dit zijn vooral de ig&#039;s die geen echte ig zijn zoals de HCC zelf en de RvA en RvT maar wel als zodanig in ldap staan. Ook de cursus presentatoren vallen hieronder.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;upd_mailserver_report.sh&#039;&#039;&#039;.&amp;lt;br&amp;gt;Dit script mailt de dagelijkse logs ter controle of alles goed is gegaan.&lt;br /&gt;
* &#039;&#039;&#039;upd_mailserver.sh&#039;&#039;&#039;.&amp;lt;br&amp;gt;Bundelt de php scripts tot een cronjob die elke nacht loopt. Dit script draait de 4 php scripts, doet wat na bewerking, kopieert de output naar mail-lb1-int en start &#039;&#039;&#039;upd_mailserver_all&#039;&#039;&#039; op mail-lb1-int. Tenslotte worden nog de relay-domains opgehaald van mail-lb1-int (dat bestand is pas up-to-date nadat upd_mailserver_all op mail-lb1-int heeft gelopen).Hierna is mail-lb2 nog niet geheel up-to-date. Het script dat door ldap-lb1 is gestart, doet aan het eind een rsync van de datadir op mail-lb1 naar mail-lb2. Tenslotte start mail-lb1 een script op mail-lb2 om die ook up-to-date te maken. Dit is dus een drietraps systeem.&lt;br /&gt;
&lt;br /&gt;
==Mailman==&lt;br /&gt;
&amp;lt;strike&amp;gt;Omdat ter zijner tijd een aantal Mailman mailinglijsten naar Tripolis gaan, is een script gemaakt om de Mailman info over de abonnees op te halen. Om aan die summiere gegevens te herkennen of iemand lid of niet-lid is een php script gemaakt (te vinden in mailman-specials).&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;&#039;&#039;&#039;import_mailman_lists.sh&#039;&#039;&#039;&amp;lt;br&amp;gt;Haalt de abonnee gegevens op. Er is een aanroep in dit script van een script op de mailserver. Dat script maakt bestanden aan met zinvolle namen. Die worden opgehaald en worden in de lokale data (sub)directory geplaatst.&amp;lt;/strike&amp;gt; &lt;br /&gt;
* &amp;lt;strike&amp;gt;&#039;&#039;&#039;import_mailman_csv.php&#039;&#039;&#039;&amp;lt;br&amp;gt;Leest alle opgehaalde bestanden in de lokale data (sub)directory, maakt zo nodig niet-leden aan en plaatst &#039;&#039;&#039;optins&#039;&#039;&#039; voor de locatie bulletins bij de leden en de niet-leden. Het bepalen van lid of niet-lid gebeurt puur op email adres. Als een lid op een mailinglist staat meteen adres dat &#039;&#039;&#039;niet&#039;&#039;&#039; in zijn record in LDAP staat, wordt er een niet-lid record aangemaakt! Het netto effect is dat dit lid het bulletin dubbbel zal ontvangen.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Maandrapportage==&lt;br /&gt;
* &#039;&#039;&#039;gen_maand_rap.php&#039;&#039;&#039;.&amp;lt;br&amp;gt;Verzamelt alle data van Hobbynet abonnees en alle andere users in ldap. Optie &#039;&#039;&#039;-m&#039;&#039;&#039; mailt naar de accounthouder in het ldap record. Sinds medio 2020 krijgen hcc groepering webmasters deze mail niet meer, omdat ze nu allemaal gebruik maken van een Joomla template site, en daar geen &#039;eigenaar&#039; meer van zijn.&lt;br /&gt;
* &amp;lt;strike&amp;gt;&#039;&#039;&#039;gen_pc30_maand_rap.php&#039;&#039;&#039;.&amp;lt;br&amp;gt;Mailt specifiek de gegevens van de PC30 agents naar de teamleider.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;run_maand_rapport.sh&#039;&#039;&#039;.&amp;lt;br&amp;gt;Cronjob die bovenstaande scripts 1x per maand draait.&lt;br /&gt;
&lt;br /&gt;
==Passwd, shadow en group==&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* gen_group_admin.php&lt;br /&gt;
* gen_group_code2.php&lt;br /&gt;
* gen_group_hcc.php&lt;br /&gt;
* gen_passwd_admin.php&lt;br /&gt;
* gen_passwd_code2.php&lt;br /&gt;
* gen_passwd_hcc.php&lt;br /&gt;
* gen_shadow_admin.php&lt;br /&gt;
* gen_shadow_code2.php&lt;br /&gt;
* gen_shadow_hcc.php&lt;br /&gt;
* upd_admin_accounts.sh (is er niet)&lt;br /&gt;
* upd_code2_accounts.sh&lt;br /&gt;
* upd_hcc_accounts.sh&lt;br /&gt;
&lt;br /&gt;
Deze scripts genereren de passwd, shadow en group entries voor de betalende leden (_code2), de admins (_admin, de lagere goden, op het moment niet gebruikt; er is wel een .hobby met alleen Roel v.d. Bussche erin) en voor de HCC groeperingen (_hcc). De output wordt op de shared etc omgeving neergezet zodat elke (web)server ze kan toevoegen aan de passwd.temp/shadow.temp/group.temp files. Hiervoor wordt de lokale job upd_usr (of upd_hobby_only) gedraaid.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==HCC Verenigingsbureau==&lt;br /&gt;
Het HCC Verenigingsbureau (&#039;VB&#039;) heeft beschikking over een ledenlijst en een kader/kernledenlijst die dagelijks up-to-date zijn. Deze lijsten zijn in CSV formaat zodat men zelf in de hand heeft hoe het bestand gebruikt wordt. Ze worden dagelijks op de Hobbynet sftp server (dedicated server t.b.v. gebuik vanaf het VB) geplaatst.&lt;br /&gt;
&lt;br /&gt;
Daarnaast krijgt VB iedere dag een actueel overzicht van de aantallen bezoekers (bezoekers statistiek).&lt;br /&gt;
  &lt;br /&gt;
* &#039;&#039;&#039;upload_kader_csv.sh&#039;&#039;&#039;&amp;lt;br&amp;gt;de cronjob &lt;br /&gt;
* &#039;&#039;&#039;gen_kader_csv.php&#039;&#039;&#039;&amp;lt;br&amp;gt;het php script dat een bestand in CSV formaat maakt met de door VB gewenste velden.&lt;br /&gt;
* &#039;&#039;&#039;upload_leden_csv.sh&#039;&#039;&#039;&amp;lt;br&amp;gt;de cronjob&lt;br /&gt;
* &#039;&#039;&#039;gen_leden_csv.php&#039;&#039;&#039;&amp;lt;br&amp;gt;het php script dat een bestand in CSV formaat maakt met de door VB gewenste velden.&lt;br /&gt;
* &#039;&#039;&#039;upload_bezoekersstatistiek.sh&#039;&#039;&#039;&amp;lt;br&amp;gt;de cronjob&lt;br /&gt;
* &#039;&#039;&#039;gen_bezoekersstatistiek_csv.php&#039;&#039;&#039;&amp;lt;br&amp;gt;het php script dat een bestand in CSV formaat maakt met de bezoekersstatistieken.&lt;br /&gt;
&lt;br /&gt;
==CompUsers==&lt;br /&gt;
2020: VB heeft &#039;eigen&#039; afspraken met CU gemaakt, en stuurt ze op eigen houtje zomaar ledenbestanden toe. Onze scripts zijn daarmee zinloos geworden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;Met CompUsers zijn speciale afspraken gemaakt door Kantoor in januari 2014. Zij krijgen een sterk verkorte lijst van ALLE leden voor hun administratie. Het streven is dit zo spoedig mogelijk te vervangen door een ander mechanisme zoals de partner check.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;upload_compusers_csv.sh&#039;&#039;&#039;&amp;lt;br&amp;gt;de cronjob&lt;br /&gt;
* &#039;&#039;&#039;gen_compusers_csv.php&#039;&#039;&#039;&amp;lt;br&amp;gt;het script dat een CSV maakt. Dit is een afgeslankt vorm van het &#039;&#039;&#039;gen_leden_csv.php&#039;&#039;&#039; script.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Koppeling met Tripolis=&lt;br /&gt;
Het oude &amp;quot;popbull&amp;quot; systeem dat bij HenZ draait is in de zomer van 2013 vervangen door Tripolis. Tripolis wordt al jaren gebruikt door kantoor voor het versturen van Digizine en de Nieuwsflash. Per groepering wordt een account aangemaakt met beperkte rechten waar mee de Correspondent van de groepering mailings kan versturen. Om Tripolis en ldap in sync te houden wordt er elke nacht data uitgewisseld. Ldap is leidend in deze maar als mensen zich uitschrijven (opt-out) via de knop onder aan de mailing, moet dat doorgegeven worden aan ldap. &lt;br /&gt;
&lt;br /&gt;
==Sync van Tripolis naar ldap==&lt;br /&gt;
* &#039;&#039;&#039;run_tripolis_import.sh&#039;&#039;&#039;&amp;lt;br&amp;gt;de eigenlijke cronjob&lt;br /&gt;
* &#039;&#039;&#039;import_tripolis_csv.php&#039;&#039;&#039;&amp;lt;br&amp;gt;vertaalt de CSV van opt-outs naar het wissen van de individuele optins.&lt;br /&gt;
&lt;br /&gt;
Tripolis plaatst elke nacht om 00:01 een CSV bestand met de opt-outs per bulletin van de vorige dag. Dit gebeurt met datums. Als de datum van gisteren ingevuld staat is daar een optout geweest. Als er geen opt-outs zijn, bevat het veld slechts een lege string. Het  bestand wordt naar de ldap server gehaald waar een aantal versies bewaard worden. De bestanden wordt verwijderd van de sftp omgeving. Vervolgens worden het gedownloade bestand verwerkt om bij het lid de hccOptIn van dit bulletin te verwijderen.&lt;br /&gt;
&lt;br /&gt;
==Sync van ldap naar Tripolis==&lt;br /&gt;
* &#039;&#039;&#039;run_tripolis_export.sh&#039;&#039;&#039;&amp;lt;br&amp;gt;de eigenlijk cronjob&lt;br /&gt;
* &#039;&#039;&#039;gen_ldap_bul_export.php&#039;&#039;&#039;&amp;lt;br&amp;gt;maakt een volledige lijst aan van emailadres, lidnr en optins. Dit bestand gaat naar de sftp omgeving van Tripolis.&lt;br /&gt;
* &#039;&#039;&#039;gen_ldap_cor_export.php&#039;&#039;&#039;&amp;lt;br&amp;gt;maakt een lijst van alle correspondenten voor kantoor. Dit bestand gaat naar de sftp omgeving van Kantoor.&lt;br /&gt;
&lt;br /&gt;
Het export bestand wordt elke nacht (om 02:50) op de sftp omgeving voor Tripolis klaargezet. Tripolis haalt het om 05:00 op. Omdat de opt-outs van Tripolis om 02:15 verwerkt worden, is dit bestand dus al bijgewerkt voor wat betreft die opt-outs. Alle andere wijzigingen komen van de hcc.nl profielpagina&#039;s of mutaties door derden op ldap (mutaties door Hobbynet staff of PC30).&lt;br /&gt;
&lt;br /&gt;
==Rapportage==&lt;br /&gt;
&amp;lt;strike&amp;gt;Om ook de ledenadministratie in te lichten over leden die een optout op één of meer Tripolis mailings hebben gedaan, wordt na het verwerken van de optouts een mail gestuurd naar ledenadministratie@hcc.nl. Elke dag is er een nieuwe log file maar die wordt door dezelfde cronjob aan een archive geplakt. Zie mail_tripolis_reports.sh.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Egbert laat zich iedere nacht een rapportage mail sturen, zie mail_tripolis_export_report.sh.&lt;br /&gt;
&lt;br /&gt;
==Eénmalige jobs==&lt;br /&gt;
Er zijn een aantal php scripts voor éénmalig gebruik gemaakt. Deze worden niet in de cronjobs gebruikt maar waren slechts bedoeld om de lijsten opgeleverd door VB in LDAP te krijgen. Deze scripts zijn in de subdirectory &#039;&#039;&#039;popbull-specials&#039;&#039;&#039; geplaatst. &lt;br /&gt;
* &#039;&#039;&#039;import_digizine_csv.php&#039;&#039;&#039;&amp;lt;br&amp;gt;de initiële Digizine lijst&lt;br /&gt;
* &#039;&#039;&#039;import_nieuwsflash_csv.php&#039;&#039;&#039;&amp;lt;br&amp;gt;de initiële Nieuwsflash lijst&lt;br /&gt;
* &#039;&#039;&#039;import_popbull_csv.php&#039;&#039;&#039;&amp;lt;br&amp;gt;de initiële lijst zoals die van HenZ (popbull provider) komt&lt;br /&gt;
&lt;br /&gt;
=ISIZ enquête=&lt;br /&gt;
Op verzoek geschreven scripts voor eenmalig gebruik. Terug te vinden in in de &#039;&#039;&#039;enquete-specials&#039;&#039;&#039; subdirectory. &lt;br /&gt;
* &#039;&#039;&#039;gen_enquete_csv.php&#039;&#039;&#039;&amp;lt;br&amp;gt;enquête per email&lt;br /&gt;
* &#039;&#039;&#039;gen_enquete_csv_no_mail.php&#039;&#039;&#039;&amp;lt;br&amp;gt;enquête per post&lt;br /&gt;
&lt;br /&gt;
=Nameserver=&lt;br /&gt;
* gen_mx_hcc.php&lt;br /&gt;
* gen_mx_hobby.php&lt;br /&gt;
* upd_nameserver.sh&lt;br /&gt;
&lt;br /&gt;
=Firewall (op ldap servers)=&lt;br /&gt;
* gen_xml_fw_ip4.php&lt;br /&gt;
* gen_xml_fw_ip6.php&lt;br /&gt;
* sync_hobbynetfw.sh&lt;br /&gt;
* gen_fw.sh&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=78562</id>
		<title>MediaWikiSites</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=78562"/>
		<updated>2020-08-30T15:55:57Z</updated>

		<summary type="html">&lt;p&gt;Hans: /* upgrade procedure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Lijst met Mediawiki sites die wij bijhouden ==&lt;br /&gt;
&lt;br /&gt;
* Hobbynet wiki  (https://wiki.hobby.nl/)&lt;br /&gt;
&lt;br /&gt;
== upgrade procedure ==&lt;br /&gt;
* maak met tar een backup van de wiki:&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /disk/site/wiki&lt;br /&gt;
 tar -cf wiki-backup-20200830.tar www&lt;br /&gt;
 bzip2 wiki-backup-20200830.tar&lt;br /&gt;
&lt;br /&gt;
* maak met phpmyadmin een backup van de database&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download de wiki software upgrade van http://www.mediawiki.org/&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* volg de instructies zoals beschreven op http://www.mediawiki.org/wiki/Manual:Upgrading&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hobbynet wiki updaten ===&lt;br /&gt;
* Volg de instructies om de wiki te updaten&lt;br /&gt;
 &amp;lt;b&amp;gt;Ons eigen lijstje:&amp;lt;/b&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cd /disk/site/wiki&lt;br /&gt;
 rm -rf www-old&lt;br /&gt;
 cp -a www www-old&lt;br /&gt;
 wget https://releases.wikimedia.org/mediawiki/1.34/mediawiki-1.34.2.tar.gz&lt;br /&gt;
 tar xzf mediawiki-1.34.2.tar.gz&lt;br /&gt;
 chown wiki-hobby-nl:www-hobby-nl  mediawiki-1.34.2 -R&lt;br /&gt;
 cp -a www-old/LocalSettings.php   mediawiki-1.34.2&lt;br /&gt;
 cp -a www-old/images/*            mediawiki-1.34.2/images&lt;br /&gt;
 cp -a www-old/getip*              mediawiki-1.34.2&lt;br /&gt;
 rm -rf www&lt;br /&gt;
 mv mediawiki-1.34.2 www&lt;br /&gt;
 cd www/maintenance&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
Op 2020.08.30 weigerde de update correct te lopen. Bleek dat er geen skins meer waren, en de extensie WikiEditor ontbrak ook.&lt;br /&gt;
Pas na het terugzetten van die bestanden uit de oude omgeving wilde het update script draaien&lt;br /&gt;
 cp -a ../../www-old/skins/MonoBook ../skins/&lt;br /&gt;
 cp -a ../../www-old/skins/Vector/ ../skins/&lt;br /&gt;
 cp -a ../../www-old/skins/Timeless/ ../skins/&lt;br /&gt;
 cp -a ../../www-old/extensions/WikiEditor ../extensions/&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
* Als update.php niet draait, omdat er geen sql modules beschikbaar zouden zijn, selecteer dan eerst de juiste php versie&lt;br /&gt;
 update-alternatives --config php&lt;br /&gt;
&lt;br /&gt;
* Op de hobbynet wiki staan 2 losse bestanden die geen directe relatie met de wiki software hebben (&#039;&#039;&#039;getip.html&#039;&#039;&#039; en &#039;&#039;&#039;getip.php&#039;&#039;&#039;).&amp;lt;br&amp;gt;&lt;br /&gt;
Plaats die bestanden terug, tijdens de wiki upgrade actie!&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=78560</id>
		<title>MediaWikiSites</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=78560"/>
		<updated>2020-08-30T15:55:17Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Lijst met Mediawiki sites die wij bijhouden ==&lt;br /&gt;
&lt;br /&gt;
* Hobbynet wiki  (https://wiki.hobby.nl/)&lt;br /&gt;
&lt;br /&gt;
== upgrade procedure ==&lt;br /&gt;
* maak met tar een backup van de wiki:&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /disk/site/wiki&lt;br /&gt;
 tar -cf wiki-backup-20200405.tar www&lt;br /&gt;
 bzip2 wiki-backup-20200405.tar&lt;br /&gt;
&lt;br /&gt;
* maak met phpmyadmin een backup van de database&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download de wiki software upgrade van http://www.mediawiki.org/&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* volg de instructies zoals beschreven op http://www.mediawiki.org/wiki/Manual:Upgrading&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hobbynet wiki updaten ===&lt;br /&gt;
* Volg de instructies om de wiki te updaten&lt;br /&gt;
 &amp;lt;b&amp;gt;Ons eigen lijstje:&amp;lt;/b&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cd /disk/site/wiki&lt;br /&gt;
 rm -rf www-old&lt;br /&gt;
 cp -a www www-old&lt;br /&gt;
 wget https://releases.wikimedia.org/mediawiki/1.34/mediawiki-1.34.2.tar.gz&lt;br /&gt;
 tar xzf mediawiki-1.34.2.tar.gz&lt;br /&gt;
 chown wiki-hobby-nl:www-hobby-nl  mediawiki-1.34.2 -R&lt;br /&gt;
 cp -a www-old/LocalSettings.php   mediawiki-1.34.2&lt;br /&gt;
 cp -a www-old/images/*            mediawiki-1.34.2/images&lt;br /&gt;
 cp -a www-old/getip*              mediawiki-1.34.2&lt;br /&gt;
 rm -rf www&lt;br /&gt;
 mv mediawiki-1.34.2 www&lt;br /&gt;
 cd www/maintenance&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
Op 2020.08.30 weigerde de update correct te lopen. Bleek dat er geen skins meer waren, en de extensie WikiEditor ontbrak ook.&lt;br /&gt;
Pas na het terugzetten van die bestanden uit de oude omgeving wilde het update script draaien&lt;br /&gt;
 cp -a ../../www-old/skins/MonoBook ../skins/&lt;br /&gt;
 cp -a ../../www-old/skins/Vector/ ../skins/&lt;br /&gt;
 cp -a ../../www-old/skins/Timeless/ ../skins/&lt;br /&gt;
 cp -a ../../www-old/extensions/WikiEditor ../extensions/&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
* Als update.php niet draait, omdat er geen sql modules beschikbaar zouden zijn, selecteer dan eerst de juiste php versie&lt;br /&gt;
 update-alternatives --config php&lt;br /&gt;
&lt;br /&gt;
* Op de hobbynet wiki staan 2 losse bestanden die geen directe relatie met de wiki software hebben (&#039;&#039;&#039;getip.html&#039;&#039;&#039; en &#039;&#039;&#039;getip.php&#039;&#039;&#039;).&amp;lt;br&amp;gt;&lt;br /&gt;
Plaats die bestanden terug, tijdens de wiki upgrade actie!&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Main_Page&amp;diff=78536</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Main_Page&amp;diff=78536"/>
		<updated>2020-08-18T11:36:31Z</updated>

		<summary type="html">&lt;p&gt;Hans: /* joomla */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Informatie tbv beheer bit===&lt;br /&gt;
 [[CRM_omgeving]]            - de crm omgeving&lt;br /&gt;
&lt;br /&gt;
===Hobbynet Admin WIKI===&lt;br /&gt;
 Shortcuts&lt;br /&gt;
 [http://otrs.hobby.nl/ HobbyNet Ticket systeem]            - OTRS&lt;br /&gt;
 [https://nagios.hobby.nl/nagios Nagios monitoring]                  -[[Nagios|&#039;&#039;&#039; Uitleg&#039;&#039;&#039;]]&lt;br /&gt;
 [https://wiki.hobby.nl/getip.html Waar draait een website]            - simpel tooltje om te kijken waar een website draait.&lt;br /&gt;
&lt;br /&gt;
===Algemene informatie===&lt;br /&gt;
 [[HCC!Hobbynet]]                         - Wat is Hobbynet - een uitleg voor kantoor (zie ook discussie tab)&lt;br /&gt;
 [[HCC!verenigingsdag]]                   - Een draaiboek voor de HCC!verenigingsdag&lt;br /&gt;
 [[Evenementen lan]]                      - Een draaiboek voor een Evenementen LAN&lt;br /&gt;
 [[Kadernet]]                             - Info over Kadernet voorzieningen (website, forum, etc.)&lt;br /&gt;
 [[Financien]]                            - Financiële aspecten van Hobbynet&lt;br /&gt;
 [[inventaris]]                           - Hobbynet inventaris overzicht t.b.v. hcc kantoor&lt;br /&gt;
 [[Windows_licenties]]                    - Hobbynet overzicht van de windows licenties&lt;br /&gt;
 [[Beheerders]]                           - Hobbynet beheerders&lt;br /&gt;
 [[server_certs]]                         - Hobbynet CAcert certificaten&lt;br /&gt;
 [[Hobbykeys]]                            - Info over het hobbykeys script&lt;br /&gt;
 [[accounts]]                             - Diverse account gegevens (o.a. knoppix.nl)&lt;br /&gt;
&lt;br /&gt;
===HCC.NL website platform===&lt;br /&gt;
 hcc.nl [[netwerk]]                       - Netwerk voor hcc.nl website platform&lt;br /&gt;
 [[XML-RPC]]                              - XML-RPC interface t.b.v. LDAP&lt;br /&gt;
 [[XML-HENZ-PROXY]]                       - XML-RPC HenZ proxy t.b.v. cronjob toegang tot HenZ&lt;br /&gt;
2017.02.02: Moet dringend bijgewerkt worden:&lt;br /&gt;
 [[www-test-lb*]]                         - Test servers (loadbalanced)&lt;br /&gt;
 [[www-prod-lb*]]                         - Productie servers (loadbalanced)&lt;br /&gt;
 [[Protocol_onderhoud]]                   - Afspraken rondom onderhoud en meldingen aan hcc.nl webmasters&lt;br /&gt;
&lt;br /&gt;
===Toegang===&lt;br /&gt;
 [[Speciale VPN toegang]]                 - Speciale VPN toegang &amp;lt;i&amp;gt;(verouderde info)&amp;lt;/i&amp;gt;&lt;br /&gt;
 [[KVM over IP]]                          - Beheer op afstand m.b.v. KVM over IP apparatuur&lt;br /&gt;
 [[Serial Console Server]]                - Serial Console Server voor het beheer van netwerk aparatuur met seriele interface&lt;br /&gt;
 [[beheerder_accounts]]                   - Beheerder accounts aanmaken / bijhouden&lt;br /&gt;
 [[Aanmaken_Gebruiker]]                   - Aanmaken van een gebruiker&lt;br /&gt;
 [[Opzeggen_Gebruiker]]                   - Opzeggen van een gebruiker&lt;br /&gt;
&lt;br /&gt;
===Algemene services===&lt;br /&gt;
 [[Backup]]                               - Zo backupen we&lt;br /&gt;
 [[scp]]                                - Hobbynet filetransfer omgeving&lt;br /&gt;
  [[Scp-lb1]]                            - Direct naar scp-lb1.hobby.nl&lt;br /&gt;
  [[Scp-lb2]]                            - Direct naar scp-lb2.hobby.nl&lt;br /&gt;
 [[EMAIL]] (ook postfixadmin)             - Email server documentatie&lt;br /&gt;
 [[Roundcube Webmail]]                    - Upgrading Roundcube&lt;br /&gt;
 [[LDAP]] (server en client)              - LDAP setup&lt;br /&gt;
 [[LDAP login Authenticatie]]             - Om op (web)servers login via LDAP te doen  &lt;br /&gt;
 [[LDAP scripting]]                       - Scripting die op ldap-lb1 draait&lt;br /&gt;
 [[LDAP Administrative account]] weg!     - Hoe te handelen als hetadministrative account opeens weg is&lt;br /&gt;
 [[LDAP groeperings vlaggen]]             - Welke vlaggen zijn er voor een groepering en waar dienen ze voor&lt;br /&gt;
 [[SFTP server]]                          - sftp server voor uitwisseling met kantoor en tripolis&lt;br /&gt;
 [[Speciale groepen in ldap en CRM]]      - Speciale groepen in ldap en CRM&lt;br /&gt;
 [[PXE]]                                  - Hobbynet PXE omgeving&lt;br /&gt;
 [[Storage cluster 2020]]                 - Beschrijving van het &#039;&#039;&#039;nieuwe&#039;&#039;&#039; storage cluster Storage cluster 2020&lt;br /&gt;
 [[Storage cluster]]                      - Beschrijving van het oude storage cluster&lt;br /&gt;
 [[MySQL cluster]]                        - Beschrijving van het MySQL cluster&lt;br /&gt;
 [[MySQL settings]]                       - MySQL instellingen&lt;br /&gt;
 [[Web cluster]]                          - Beschrijving van het Web cluster&lt;br /&gt;
 [[Loadbalancers]]                        - Beschrijving van de LoadbalancerNG&lt;br /&gt;
 [[Nagios]]                               - Beschrijving van Nagios&lt;br /&gt;
 [[Nagios_upgrade]]                       - Hoe upgrade ik nagios van uit source&lt;br /&gt;
 [[Hobbynet repository]]                  - Informatie over de hobbynet repository&lt;br /&gt;
 [[Hobbynet repository inhoud]]           - Wat zit er in de hobbynet repository&lt;br /&gt;
 [[Cron jobs]]                            - Niet standaard cronjobs die lopen bij hobbynet&lt;br /&gt;
 [[Fail2ban]]                             - Block possible intruders and bots&lt;br /&gt;
 [[Groepering_hernoemen]]                 - Beschrijving van het hernoemen van een groeperingsnaam&lt;br /&gt;
 [[killdisk]]                             - Software voor secure wissen van disken&lt;br /&gt;
 [[Wij jitsi server]]                     - HCC jitsi server&lt;br /&gt;
 [[VMware installatie]]                   - Handige hulpjes bij installatie vmware&lt;br /&gt;
&lt;br /&gt;
=== dns ===&lt;br /&gt;
[[DNS]]                                  - DNS instellingen t.b.v. de domeinen&lt;br /&gt;
   [[ns-master]]                          - Direct naar ns master (draait op [[domein]])&lt;br /&gt;
   [[ns1]]                                - Direct naar ns1.hobby.nl&lt;br /&gt;
   [[ns2]]                                - Direct naar ns2.hobby.nl&lt;br /&gt;
   [[ns3]]                                - Direct naar ns3.hobby.nl (bij TransIP)&lt;br /&gt;
   [[Resolv*-int]]                        - Direct naar resolv nameserver pagina (draait op [[resolv-lb1]] en [[resolv-lb2]])&lt;br /&gt;
   [[DNSSEC]]                             - DNSSec&lt;br /&gt;
   [[DNSSEC ds records publiceren]]       - Scripting t.b.v. het publiceren van DNSSEC DS records. Dump van scripts... zinloos&lt;br /&gt;
   [[DNS scripting]]                      - Overige DNS scripting&lt;br /&gt;
   [[DNS Zone updaten]]                   - een zone updaten&lt;br /&gt;
   [[Dane]]                               - Dane records in dns (wat moet je doen bij nieuw ssl cert)&lt;br /&gt;
&lt;br /&gt;
=== Joomla ===&lt;br /&gt;
&lt;br /&gt;
 [[Nieuwe joomla site maken]]             - Nieuwe Joomla site maken&lt;br /&gt;
 [[Joomla_xml_server]]                    - De XML-RPC-server t.b.v. de Joomla template sites&lt;br /&gt;
 [[Joomla modules]]                       - Beschrijving van Joomla modules en processen er om heen&lt;br /&gt;
 [[Joomla Events RSVP Pro]]               - RSVP Pro configureren (beperk bijeenkomst tot x personen)&lt;br /&gt;
&lt;br /&gt;
===Uitleg IP space===&lt;br /&gt;
 [[netwerk]]                              - Netwerk tekening van Hobbynet&lt;br /&gt;
 [[IPv4_space|IPv4]]                                 - IPv4 Hobbynet&lt;br /&gt;
 [[Ipv6_space|IPv6]]                                 - IPv6 Hobbynet&lt;br /&gt;
&lt;br /&gt;
===Kast indeling===&lt;br /&gt;
 [[kasten]]                               - Indeling kasten bij BIT &#039;&#039;(pagina heeft onderhoud nodig)&#039;&#039;&lt;br /&gt;
 [[systems]]                              - Alle systemen van Hobbynet (hardware &amp;amp; netwerk)&lt;br /&gt;
 [[Powerboot]]                            - Indeling APC PDU&#039;s (feb. 2013)&lt;br /&gt;
&lt;br /&gt;
===Tuning webservers===&lt;br /&gt;
 [[Hobby-firewall]]                       - de Hobbynet firewall&lt;br /&gt;
 [[PHP via fcgi]]                         - PHP via fcgi en suexec&lt;br /&gt;
 [[suhosin]]                              - Suhosin (hardened PHP) op Apache webservers&lt;br /&gt;
 [[upg_web]]                              - Door middel van script server upgraden&lt;br /&gt;
 [[Aanpassingen hcc.nl webservers|hcc.nl aanpassingen]]                  - aanpassingen, gedaan voor hcc.nl op www-test-lb* www-prod-lb*&lt;br /&gt;
&lt;br /&gt;
 [[NFS_settings]]                         - NFS poort instellingen t.b.v. iptables firewall&lt;br /&gt;
 [[sync Loadbalanced webservers]]         - dit script zorgt dat webserver configs worden gesynct&lt;br /&gt;
 [[Entropy]]                              - Hoe zorg ik voor meer Entropy op vmware machine&lt;br /&gt;
&lt;br /&gt;
===VPS voor derden===&lt;br /&gt;
 [[Ubuntu-nl]]                            - De Ubuntu-nl virtuele server&lt;br /&gt;
&lt;br /&gt;
=== Hobbynet informatie ===&lt;br /&gt;
 [[Scripting]]                            - Een poging om de scripting te beschrijven. WIP!&lt;br /&gt;
 [[agreements]]                           - Alle Hobbynet contracten met contract beheerder e.d.&lt;br /&gt;
 [[ToDo]]                                 - Een wensenlijstje van dingen die we kunnen veranderen/verbeteren&lt;br /&gt;
 [[Systemlog]]                            - Log file van relevante wijzigingen aan diverse servers&lt;br /&gt;
&lt;br /&gt;
===Updaten===&lt;br /&gt;
 [[Joomlasites]]                          - Joomla sites die wij bijhouden&lt;br /&gt;
 [[MediaWikiSites]]                       - MediaWiki sites die wij bijhouden&lt;br /&gt;
&lt;br /&gt;
===Nood gegevens===&lt;br /&gt;
 [[Medische protocol Bas|Medisch protocol bas]]                 - Medisch protocol bas&lt;br /&gt;
&lt;br /&gt;
Dit is een &amp;quot;mediawiki&amp;quot; (http://www.mediawiki.org/).&amp;lt;br&amp;gt;&lt;br /&gt;
Uitleg over het editen is te vinden op:&amp;lt;br&amp;gt;&lt;br /&gt;
http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/Wikipedia:How_does_one_edit_a_page&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=LDAP&amp;diff=78535</id>
		<title>LDAP</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=LDAP&amp;diff=78535"/>
		<updated>2020-08-12T09:58:52Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introductie==&lt;br /&gt;
Om een centrale plaats te hebben om authenticatie te doen voor www.hcc.nl en sub-sites zoals een forum, is gekozen voor het gebruik van een LDAP database/directory. Hierin wordt alles opgeslagen wat nodig is voor het functioneren van de site, inclusief NAW gegevens &amp;lt;strike&amp;gt;die op dit moment alleen opgeslagen worden t.b.v. het PC30 beheerscherm&amp;lt;/strike&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==LDAP server keuze==&lt;br /&gt;
De voor de hand liggende keuze is OpenLDAP. Echter zijn er geluiden gehoord dat OpenLDAP niet zou schalen. Alternatieven zijn b.v. 389server maar die is erg slecht gesupport onder Ubuntu. Voorlopig starten we met OpenLDAP. &lt;br /&gt;
&lt;br /&gt;
==Loadbalanced==&lt;br /&gt;
Er zijn twee servers (ldap-lb1 en ldap-lb2) die achter een loadbalancer in preferred server mode staan zodat het verkeer altijd naar server1 gestuurd wordt. Beide servers houden elkaar up-to-date. In de gewone situatie zullen alle reads en writes naar server1 gaan en server2 wordt door server1 bijgewerkt. Valt server1 weg, dan zal de loadbalancer overschakelen naar server2 waar vanaf dan de read en writes plaatsvinden. Zodra server1 weer beschikbaar is, wordt die bijgewerkt en zal weer master worden.&lt;br /&gt;
&lt;br /&gt;
==Installatie==&lt;br /&gt;
Installatie van OpenLDAP is simpel:&lt;br /&gt;
 aptitude install slapd ldap-utils&lt;br /&gt;
Omdat er gebruikgemaakt wordt van php scripts, is het ook nodig &#039;&#039;&#039;php-cli&#039;&#039;&#039; en &#039;&#039;&#039;php-ldap&#039;&#039;&#039; te installeren. De configuratie van OpenLDAP is sinds Karmic Koala iets gecompliceerder geworden. &#039;cn=config&#039; wordt nog steeds gebruikt maar tijdens installatie wordt alleen een skeleton configuratie geïnstalleerd. Er wordt niet meer gevraagd om een password tijdens de installatie en &amp;quot;dpkg-reconfigure slapd&amp;quot; zet alleen de skeleton configuratie terug. Je moet zelf de database, root dn en acl&#039;s opzetten (als root of met sudo). Run  &#039;&#039;&#039;dpkg-reconfigure slapd&#039;&#039;&#039; om terug te gaan naar een lege directory. &lt;br /&gt;
&lt;br /&gt;
UPDATE: in Oneiric Ocelot (11.10) is weer wel de mogelijkheid gegeven bij installatie een database aan te maken. Default wordt echter de fqdn hostname gebruikt. Bij dpkg-reconfigure kan het gewenste domein wel opnieuw gegeven worden. De initiële configuratie staat in /usr/share/slapd/slapd.init.ldif. &lt;br /&gt;
&lt;br /&gt;
UPDATE: bij de upgrade naar 16.04.1 zijn proefondervindelijk nog wat extra handelingen nodig gebleken.&amp;lt;br&amp;gt;&lt;br /&gt;
XML-RPC server updaten naar Ubuntu 16.04. WIP!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- apt-get install phpmyadmin&lt;br /&gt;
- apt-get install aptitude &lt;br /&gt;
- apt-get install php-xmlrpc&lt;br /&gt;
- apt-get install php-ldap&lt;br /&gt;
- phpenmod xml&lt;br /&gt;
- phpenmod mysqli&lt;br /&gt;
  (&#039;php -m&#039; toont de geactiveerde modules)&lt;br /&gt;
- apache2ctl restart&lt;br /&gt;
&lt;br /&gt;
phpmyadmin werkt niet:&lt;br /&gt;
- apt-get install php-mbstring&lt;br /&gt;
- apt-get install php-gettext&lt;br /&gt;
&lt;br /&gt;
ontbrekende pakketten volgens hjv:&lt;br /&gt;
&lt;br /&gt;
apt-get install aptitude &lt;br /&gt;
apt-get install phpmyadmin&lt;br /&gt;
apt-get install php-mbstring&lt;br /&gt;
apt-get install php-gettext&lt;br /&gt;
apt-get install php-xmlrpc&lt;br /&gt;
apt-get install php-ldap&lt;br /&gt;
apt-get install mysql-server&lt;br /&gt;
apt-get install ldapscripts&lt;br /&gt;
apt-get install php-xml&lt;br /&gt;
apt-get install slapd&lt;br /&gt;
apt-get install ldap-utils&lt;br /&gt;
a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
* Voer de laatste stappen uit, zoals beschreven in de Hobbynet wiki: *&lt;br /&gt;
&lt;br /&gt;
- openldap moet lid zijn van de groep ssl-cert!&lt;br /&gt;
apt-get install ssl-cert&lt;br /&gt;
adduser openldap ssl-cert&lt;br /&gt;
(of vi /etc/group&lt;br /&gt;
    ssl-cert:x:116:openldap)&lt;br /&gt;
&lt;br /&gt;
- Zorg dat de LDAP daemon bij de certificaten kan komen. &lt;br /&gt;
LET OP: op alle hobbynet servers staan de certificaten in /disk/site/etc/ssl/hobby.nl/&lt;br /&gt;
 chgrp ssl-cert /disk/site/etc/ssl/hobby.nl/hobby.nl.*&lt;br /&gt;
 chmod 440      /disk/site/etc/ssl/hobby.nl/hobby.nl.key&lt;br /&gt;
en dus niet langer&lt;br /&gt;
 chgrp ssl-cert /etc/ssl/private/hobby.nl.*&lt;br /&gt;
 chmod 440      /etc/ssl/private/hobby.nl.key&lt;br /&gt;
&lt;br /&gt;
- Vertel LDAP (en PHP) clients welke certificaten toegestaan zijn&lt;br /&gt;
(2017-09-23: verouderde info, niet langer in gebruik)&lt;br /&gt;
 vi /etc/ldap/ldap.conf&lt;br /&gt;
 TLS_CERT        /etc/ssl/private/hobby.nl.crt&lt;br /&gt;
 TLS_KEY         /etc/ssl/private/hobby.nl.key&lt;br /&gt;
 TLS_REQCERT     allow&lt;br /&gt;
&lt;br /&gt;
- mysql laat het bestand ibdata1 ongelimiteerd groeien (InnoDB bestanden)&lt;br /&gt;
 /etc/mysql/mysql.conf.d/innodb_file_per_table.cnf&lt;br /&gt;
 [mysql]&lt;br /&gt;
 innodb_file_per_table&lt;br /&gt;
&lt;br /&gt;
=============&lt;br /&gt;
Hobbynet aanpassingen&lt;br /&gt;
/etc/bash.bashrc&lt;br /&gt;
export http_proxy=http://squid-int.hobby.nl:3128&lt;br /&gt;
export https_proxy=http://squid-int.hobby.nl:3128&lt;br /&gt;
export ftp_proxy=http://squid-int.hobby.nl:3128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Locatie bestanden===&lt;br /&gt;
Om de benodigde bestanden op de server te krijgen zal scp gebruikt moet worden. Upload alles in een privé subdirectory. Copiëer daarna alles naar de juiste plaats en verander de owner in root.&lt;br /&gt;
&lt;br /&gt;
* Alle ldif em tmpl bestanden gaan naar /usr/local/hobbynet/lib&lt;br /&gt;
* init_ldap en andere scripts gaan naar /usr/local/hobbynet/bin&lt;br /&gt;
* alle data bestanden (dumps) en update ldifs gaan naar /usr/local/hobbynet/data&lt;br /&gt;
* etc/ldap/schema/hcc_schema.* gaan naar /etc/ldap/schema&lt;br /&gt;
* etc/ldap/schema/ppolicy.ldif gaat naar /etc/ldap/schema&lt;br /&gt;
&lt;br /&gt;
==Initiële database==&lt;br /&gt;
Direct na installatie (of na dpkg-reconfigure slapd) staat er een werkende doch lege directory in OpenLDAP. Access is alleen geregeld voor root. Dit heeft te maken met het feit dat vanaf Karmic Koala OpenLDAP alleen het minst noodzakelijke bevat om slapd te starten. Wordt echter init_ldap gebruikt dan wordt een werkende directory gemaakt met alle statische data (in diverse ou&#039;s) erin. Alleen zijn er geen leden geladen in de ou=leden en ou=inactieve_leden.&lt;br /&gt;
===slapd.init.ldif ===&lt;br /&gt;
Bij installatie/reconfiguratie wordt /usr/share/slapd/slapd.init.ldif ingelezen. Zie aldaar indien nodig.&lt;br /&gt;
&lt;br /&gt;
==init_ldap script==&lt;br /&gt;
Het lokale script init-ldap doet een reset van de initiële Openldap configuratie. Dit heeft tot gevolg dat de DIT dc=hcc,dc=nl met een rootDN &#039;&#039;&#039;cn=admin,dc=hcc,dc=nl&#039;&#039;&#039; steeds opnieuw aangemaakt wordt. Alles wat we toegevoegd/gewijzigd willen hebben in de cn=config volgt daarna. Dit wordt afgesloten met een restart van de slapd server. Het script &#039;&#039;&#039;restore_ldap&#039;&#039;&#039; laadt vervolgens de laatste dump terug. Bij wijzigingen aan het schema is het raadzaam altijd een &#039;&#039;&#039;dump_ldap&#039;&#039;&#039; te doen zodat een later een actuele dump kan worden teruggeladen.&lt;br /&gt;
&lt;br /&gt;
Het (plain text) password van cn=admin,dc=hcc,dc=nl moet bij het aanroepen van &#039;&#039;&#039;init_ldap&#039;&#039;&#039; op de commandline worden meegegeven. Tijdens de dpkg-reconfigure moet het password nog 2x gegeven worden. Lees eventueel ook de [http://www.openldap.org/doc/admin/ OpenLDAP Admin Guide].&lt;br /&gt;
&lt;br /&gt;
Het init_ldap script bevat allerlei logica om op meerdere ldap servers gedraaid te kunnen worden. In grote lijnen valt het script in een aantal blokken uiteen:&lt;br /&gt;
* voorbereidingen om &amp;quot;dpkg-reconfigure slapd&amp;quot; te draaien&lt;br /&gt;
* definities van input files&lt;br /&gt;
* check host&lt;br /&gt;
* bouwen van het skelet van de nieuwe directory&lt;br /&gt;
Zie voor details van de scripts &#039;&#039;&#039;init_ldap&#039;&#039;&#039;, &#039;&#039;&#039;dump_ldap&#039;&#039;&#039; en &#039;&#039;&#039;restore_ldap&#039;&#039;&#039; op een van de servers (in /usr/local/hobbynet/bin).&lt;br /&gt;
&lt;br /&gt;
==onderdelen van init_ldap==&lt;br /&gt;
Init_ldap is opgezet om stap voor stap de database op te bouwen. Hieronder een beschrijving van de losse ldif bestanden die ingelezen worden. Incidenteel wordt een ldif gewijzigd; kijk altijd in de actuele bestanden!&lt;br /&gt;
&lt;br /&gt;
===add-schema.ldif===&lt;br /&gt;
Omdat wij een aantal eigen attributes en Objectclasses hebben toegevoegd aam het schema, moeten deze aan OpenLDAP worden toegevoegd. Het schema moet nog worden omgezet naar ldif format. &lt;br /&gt;
* Hiertoe wordt het onderstaande schema in /etc/ldap/schema geplaatst als hcc_schema.schema. &lt;br /&gt;
* Vervolgens worden de stappen uitgevoerd zoals beschreven in de [https://help.ubuntu.com/11.10/serverguide/C/openldap-server.html Ubuntu Server guide], onder &#039;&#039;&#039;Modifying the slapd Configuration Database&#039;&#039;&#039;. &lt;br /&gt;
* De resulterende output file &#039;&#039;&#039;cn=hcc_schema.ldif&#039;&#039;&#039; moet dan nog naar /etc/ldap/schema/hcc_schema.ldif gecopieerd worden. &lt;br /&gt;
Als dit proces herhaald moet worden, start dan met een lege output directory en verwijder een eventueel achtergebleven cn=hcc_schema.ldif bestand. &lt;br /&gt;
&lt;br /&gt;
De extra schema&#039;s worden middels een &#039;&#039;&#039;include&#039;&#039;&#039; toegevoegd. &#039;&#039;&#039;Ppolicy&#039;&#039;&#039; is op gelijke wijze als &#039;&#039;&#039;hcc_schema&#039;&#039;&#039; tot .ldif geconverteerd. Alle stappen om een nieuwe &#039;&#039;&#039;hcc-schema.ldif&#039;&#039;&#039; te maken zijn gescript in &#039;&#039;&#039;upd_schema&#039;&#039;&#039;. In &#039;&#039;&#039;init_ldap&#039;&#039;&#039; wordt het eigen schema en de password policy geladen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## add-schema.ldif                   ##&lt;br /&gt;
#######################################&lt;br /&gt;
include: file:///etc/ldap/schema/hcc_schema.ldif&lt;br /&gt;
include: file:///etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
include: file:///etc/ldap/schema/ldapns.ldif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====schema updates====&lt;br /&gt;
Soms wordt een attribute toegevoegd of gewijzigd. Hiertoe dient het bestand hcc_schema.schema in /usr/local/hobbynet/etc/ldap/schema, gewijzigd te worden. Daarna dient er een ldif versie van gemaakt te worden. Gebruik hiervoor &#039;&#039;&#039;upd_schema.sh&#039;&#039;&#039; in dezelfde directory. De resulterende hcc_schema.ldif wordt in dit script naar /etc/ldap/schema gecopieërd. Bij grote wijzigingen is het aan te bevelen door de hele rebuild cycle te gaan (dump, init, restore). Bij triviale aanpassingen zou hcc_schema.ldif ook &#039;&#039;&#039;direct&#039;&#039;&#039; in de actieve directory geplaatst kunnen worden, gevolgd door slechts een &#039;&#039;&#039;service slapd restart&#039;&#039;&#039;. Gebruik hiervoor (blijf in de lokale schema directory):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;ldif_output/cn=config/cn=schema/cn={14}hcc_schema.ldif&amp;quot; &amp;quot;/etc/ldap/slapd.d/cn=config/cn=schema/cn={4}hcc_schema.ldif&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
LET OP: De nummers tussen accolades zijn bepaald door de volgorde van andere scripts! Zolang geen andere schema&#039;s worden toegevoegd zullen ze niet veranderen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ook kan met de ldap-tools gewerkt worden. Gebruik ldapsearch en ldapmodify, eventueel met de -f optie om een voorbereide serie opdrachten uit te voeren. Gebruik ldapsearch om eerst de structuur te vinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn={4}hcc_schema,cn=schema,cn=config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier een voorbeeld om een objectClass aan te passen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat pas_aan.ldif&lt;br /&gt;
dn: cn={4}hcc_schema,cn=schema,cn=config&lt;br /&gt;
changetype: modify&lt;br /&gt;
delete: olcObjectClasses&lt;br /&gt;
olcObjectClasses: {7}( 1.3.6.1.4.1.12795.2.8 NAME &#039;hccRelatieNaam&#039; \&lt;br /&gt;
   DESC &#039;Naam van een klant of partner&#039; SUP top STRUCTURAL MUST ( cn $userPassword )&lt;br /&gt;
MAY ( hccXmlIp4 $ hccXmlIp6 $ hccXmlAllow $ description ) )&lt;br /&gt;
-&lt;br /&gt;
add: olcObjectClasses&lt;br /&gt;
olcObjectClasses: {7}( 1.3.6.1.4.1.12795.2.8 NAME &#039;hccRelatieNaam&#039; \&lt;br /&gt;
   DESC &#039;Naam van een klant of partner&#039; SUP top STRUCTURAL MUST ( cn $userPassword )&lt;br /&gt;
MAY ( hccXmlIp4 $ hccXmlIp6 $ hccXmlAllow $ description $ hccIg ) )&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
$sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f pas_aan.ldif &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===modify_config.ldif===&lt;br /&gt;
Dit template dient om de SSL/TLS instelling toe te voegen in de ldap configuratie. Toegevoegd worden de certificaat gegevens om met TLS te kunnen werken. Het loglevel wordt op &#039;&#039;&#039;STATS&#039;&#039;&#039; gezet. Dit geeft niet teveel logging maar is toch goed bruikbaar. Om extra logging te krijgen op b.v. ACL&#039;s, verander olcLogLevel dan in &amp;quot;stats ACL&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Dit template wordt tijdens het draaien van het init_ldap script gecopieerd naar modify-config.ldif. Eventueel kan met place holders gewerkt worden (@...@), dit om op alle servers (ook test servers) één en hetzelfde script te kunnen gebruiken. Er zijn nog enkele van deze templates. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## modify-config.hobbynet            ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: cn=config&lt;br /&gt;
replace: olcLogLevel&lt;br /&gt;
olcLogLevel: stats&lt;br /&gt;
-&lt;br /&gt;
replace: olcTLSCACertificateFile&lt;br /&gt;
olcTLSCACertificateFile: /disk/site/etc/ssl/hobby.nl/CA-bundel.crt&lt;br /&gt;
-&lt;br /&gt;
replace: olcTLSCertificateFile&lt;br /&gt;
olcTLSCertificateFile: /disk/site/etc/ssl/hobby.nl/hobby.nl.crt&lt;br /&gt;
-&lt;br /&gt;
replace: olcTLSCertificateKeyFile&lt;br /&gt;
olcTLSCertificateKeyFile: /disk/site/etc/ssl/hobby.nl/hobby.nl.key&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Om de logging in een apart bestand te krijgen moet in /etc/rsyslog.d een extra bestand &#039;&#039;&#039;openldap.conf&#039;&#039;&#039; geplaatst worden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
local4.*   -/var/log/openldap.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tevens willen we logrotate op dit bestand. Plaats in /etc/logrotate.d het bestand &#039;&#039;&#039;openldap&#039;&#039;&#039; met de volgende inhoud&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/var/log/openldap.log&lt;br /&gt;
{&lt;br /&gt;
        rotate 4&lt;br /&gt;
        weekly&lt;br /&gt;
        missingok&lt;br /&gt;
        notifempty&lt;br /&gt;
        compress&lt;br /&gt;
        delaycompress&lt;br /&gt;
        sharedscripts&lt;br /&gt;
        postrotate&lt;br /&gt;
                reload rsyslog &amp;gt;/dev/null 2&amp;gt;&amp;amp;1 || true&lt;br /&gt;
        endscript&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===modify-hdb.ldif===&lt;br /&gt;
Hier worden de wijzigingen op de backend db gemaakt. Er worden een aantal attributes ge-indexeerd en de search SizeLimit wordt op &#039;&#039;&#039;unlimited&#039;&#039;&#039; gezet. De waarden die in DB_CONFIG moeten komen (Berkely DB parameters) staan ook in dit bestand. Deze versie is outdated. De ACL regels zijn drastisch gewijzigd. Raadpleeg altijd de laatste versie op de server zelf.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## modify-hdb.ldif                   ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: olcDatabase={1}hdb,cn=config&lt;br /&gt;
replace: olcAccess&lt;br /&gt;
#&lt;br /&gt;
# hobbynetlogin heeft lees rechten op ou=users&lt;br /&gt;
olcAccess: to attrs=@posixAccount,@posixGroup,@shadowAccount,@hostObject&lt;br /&gt;
  by dn=&amp;quot;cn=hobbynetlogin,ou=applicaties,dc=hcc,dc=nl&amp;quot; read&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# drupal/test moet hccOptIn kunnen schrijven vanaf de&lt;br /&gt;
# profiel pagina. Overige klanten kunnen hccOptin&lt;br /&gt;
# alleen lezen. self mag schrijven&lt;br /&gt;
olcAccess: to attrs=hccOptIn&lt;br /&gt;
  by self write&lt;br /&gt;
  by dn=&amp;quot;cn=drupal-hcc-nl,ou=klanten,dc=hcc,dc=nl&amp;quot; write&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# anonieme klanten moeten kunnen inloggen&lt;br /&gt;
# en mogen hun eigen password wijzigen&lt;br /&gt;
olcAccess: to attrs=userPassword,shadowLastChange&lt;br /&gt;
  by self write&lt;br /&gt;
  by anonymous auth&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# user mag enkele eigen attr wijzigen&lt;br /&gt;
olcAccess: to attrs=hccLogin,hccPseudoniem,hccKaderPassword&lt;br /&gt;
  by self write&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# beheerders hebben schrijfrechten op alles (updateDN)&lt;br /&gt;
# klanten hebben alleen lees rechten op alles (readDN)&lt;br /&gt;
# self mag  lezen&lt;br /&gt;
olcAccess: to *&lt;br /&gt;
  by self read&lt;br /&gt;
  by dn=&amp;quot;cn=xml-hoge-rechten,ou=applicaties,dc=hcc,dc=nl&amp;quot; write&lt;br /&gt;
  by dn=&amp;quot;cn=xml-lage-rechten,ou=applicaties,dc=hcc,dc=nl&amp;quot; read&lt;br /&gt;
  by dn.one=&amp;quot;ou=beheer,dc=hcc,dc=nl&amp;quot; write&lt;br /&gt;
  by dn.one=&amp;quot;ou=klanten,dc=hcc,dc=nl&amp;quot; read&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# helpdesk heeft leesrechten op ou=leden&lt;br /&gt;
olcAccess: to attrs=@hccOrgPerson,@hccKaderFunctie&lt;br /&gt;
  by dn.one=&amp;quot;ou=helpdesk,dc=hcc,dc=nl&amp;quot; read&lt;br /&gt;
  by * break&lt;br /&gt;
#&lt;br /&gt;
# partners mogen een paar attrs lezen&lt;br /&gt;
olcAccess: to attrs=hccLidNummer,hccPostcode,hccPostcodeZoekveld&lt;br /&gt;
  by dn.one=&amp;quot;ou=partners,dc=hcc,dc=nl&amp;quot; read&lt;br /&gt;
#&lt;br /&gt;
# iedereen moet (pseudo attr) entry en objectClass kunnen lezen&lt;br /&gt;
olcAccess: to attrs=entry,objectClass&lt;br /&gt;
  by * read&lt;br /&gt;
#&lt;br /&gt;
# vangnet: blokkeer alle toegang tot de overige attrs.&lt;br /&gt;
olcAccess: to *&lt;br /&gt;
  by * none&lt;br /&gt;
-&lt;br /&gt;
replace: olcDbDirectory&lt;br /&gt;
olcDbDirectory: /var/lib/ldap&lt;br /&gt;
-&lt;br /&gt;
replace: olcSizeLimit&lt;br /&gt;
olcSizeLimit: 100000&lt;br /&gt;
-&lt;br /&gt;
replace: olcDbCachesize&lt;br /&gt;
olcDbCachesize: 200000&lt;br /&gt;
-&lt;br /&gt;
replace: olcDbCheckpoint&lt;br /&gt;
olcDbCheckpoint: 1024 5&lt;br /&gt;
-&lt;br /&gt;
replace: olcDbConfig&lt;br /&gt;
olcDbConfig: set_cachesize 0 536870912 0&lt;br /&gt;
olcDbConfig: set_lk_max_objects 1000&lt;br /&gt;
olcDbConfig: set_lk_max_locks 1000&lt;br /&gt;
olcDbConfig: set_lk_max_lockers 1000&lt;br /&gt;
olcDbConfig: set_flags DB_LOG_AUTOREMOVE&lt;br /&gt;
olcDbConfig: set_flags DB_TXN_NOSYNC&lt;br /&gt;
-&lt;br /&gt;
replace: olcDbIDLcacheSize&lt;br /&gt;
olcDbIDLcacheSize: 600000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===modify_index.ldif===&lt;br /&gt;
Een kale configuratie is heel snel voor wat betreft het opnieuw vullen met gegevens. Bij het aanmaken van een verse LDAP database worden er dan ook zo min mogelijk indexen aangemaakt.&amp;lt;br&amp;gt;&lt;br /&gt;
Zodra de inhoud is ingelezen kunnen de &#039;echte&#039; indexen aangemaakt worden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## modify-index.ldif                 ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: olcDatabase={1}hdb,cn=config&lt;br /&gt;
replace: olcDbIndex&lt;br /&gt;
olcDbIndex: default pres,eq&lt;br /&gt;
olcDbIndex: objectClass,entryUUID,entryCSN eq&lt;br /&gt;
olcDbIndex: hccLidNummer,hccLogin,hccForumLogin eq&lt;br /&gt;
olcDbIndex: uid,uidNumber,gidNumber,memberUid,member eq&lt;br /&gt;
olcDbIndex: cn,host,hccPseudoniem,hccOptin,hccLocatie eq&lt;br /&gt;
olcDbIndex: sn,hccPostcodeZoekveld,hccIg,hccRegio eq,subfinal&lt;br /&gt;
olcDbIndex: hccRol,hccBezoek eq,pres,subfinal&lt;br /&gt;
olcDbIndex: hccBulletins pres&lt;br /&gt;
olcDbIndex: aboNummer eq&lt;br /&gt;
olcDbIndex: aboPostcodeZoekveld eq,subfinal&lt;br /&gt;
olcDbIndex: mail,mailHccnet,hccKaderMail pres,eq&lt;br /&gt;
olcDbIndex: hccProfiel pres&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ppolicy overlay===&lt;br /&gt;
* vanuit LDAP de minimale lengte van een wachtwoord afdwingen&lt;br /&gt;
* in LDAP SSHA versleuteling activeren&amp;lt;br&amp;gt;&lt;br /&gt;
(olcPPolicyHashCleartext: TRUE)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## add-ppolicy.ldif                  ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: cn=module, cn=config&lt;br /&gt;
cn: module&lt;br /&gt;
objectClass: olcModuleList&lt;br /&gt;
objectClass: top&lt;br /&gt;
olcModuleLoad: ppolicy&lt;br /&gt;
olcmodulepath: /usr/lib/ldap&lt;br /&gt;
&lt;br /&gt;
dn: olcOverlay=ppolicy,olcDatabase={1}hdb,cn=config&lt;br /&gt;
objectClass: olcOverlayConfig&lt;br /&gt;
objectClass: olcPPolicyConfig&lt;br /&gt;
olcOverlay: ppolicy&lt;br /&gt;
olcPPolicyDefault: cn=default,ou=policies,dc=hcc,dc=nl&lt;br /&gt;
olcPPolicyUseLockout: TRUE&lt;br /&gt;
olcPPolicyHashCleartext: TRUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The default ppolicy looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dn: cn=default,ou=policies,dc=hcc,dc=nl&lt;br /&gt;
objectClass: pwdPolicy&lt;br /&gt;
objectClass: device&lt;br /&gt;
cn: default&lt;br /&gt;
pwdCheckQuality: 1&lt;br /&gt;
pwdMinLength: 8&lt;br /&gt;
pwdAttribute: 2.5.4.35&lt;br /&gt;
pwdAllowUserChange: TRUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Syncrepl overlay===&lt;br /&gt;
Om twee servers met elkaar in sync te houden is nog wat aanvullende configuratie nodig. In onze situatie zal altijd maar één server bevraagd worden; bij een failover van de loadbancer zal dus de andere server gebruikt worden. Bij het teruggaan naar server 1 zal de directory bijgewerkt worden. Wij gebruiken de z.g. Mirror Mode. Zie de [http://www.openldap.org/doc/admin/ LDAP Admin Guide]. &#039;&#039;&#039;Mirror configuratie is specifiek per server!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## add-syncrepl.tmpl                 ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: cn=config&lt;br /&gt;
changetype: modify&lt;br /&gt;
replace: olcServerID&lt;br /&gt;
olcServerID: @SID@&lt;br /&gt;
&lt;br /&gt;
dn: cn=module{0},cn=config&lt;br /&gt;
changetype: modify&lt;br /&gt;
add: olcModuleLoad&lt;br /&gt;
olcModuleLoad: syncprov&lt;br /&gt;
&lt;br /&gt;
dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config&lt;br /&gt;
changetype: add&lt;br /&gt;
objectClass: olcOverlayConfig&lt;br /&gt;
objectClass: olcSyncProvConfig&lt;br /&gt;
olcOverlay: syncprov&lt;br /&gt;
olcSpCheckpoint: 100 5&lt;br /&gt;
olcSpSessionlog: 100&lt;br /&gt;
&lt;br /&gt;
dn: olcDatabase={1}hdb,cn=config&lt;br /&gt;
changetype: modify&lt;br /&gt;
add: olcSyncRepl&lt;br /&gt;
olcSyncRepl: rid=@RID@&lt;br /&gt;
  provider=ldap://@PROVIDER@&lt;br /&gt;
  binddn=&amp;quot;cn=admin,dc=hcc,dc=nl&amp;quot; bindmethod=simple credentials=&amp;quot;@PASSWORD@&amp;quot;&lt;br /&gt;
  searchbase=&amp;quot;dc=hcc,dc=nl&amp;quot;&lt;br /&gt;
  type=refreshAndPersist&lt;br /&gt;
  interval=00:00:00:10&lt;br /&gt;
  retry=&amp;quot;5 5 300 5&amp;quot;&lt;br /&gt;
  timeout=1&lt;br /&gt;
  starttls=yes&lt;br /&gt;
-&lt;br /&gt;
add: olcMirrorMode&lt;br /&gt;
olcMirrorMode: TRUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
De andere server krijgt ServerID 2 en de provider is het IP adres van de andere server.&lt;br /&gt;
&lt;br /&gt;
===Unique overlay===&lt;br /&gt;
Deze overlay dient er voor te zorgen dat o.a het attribuut hccLogin een unieke waarde bevat.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################&lt;br /&gt;
## add-unique.ldif                   ##&lt;br /&gt;
#######################################&lt;br /&gt;
dn: cn=module,cn=config&lt;br /&gt;
cn: module&lt;br /&gt;
objectclass: olcModuleList&lt;br /&gt;
objectclass: top&lt;br /&gt;
olcmoduleload: unique&lt;br /&gt;
olcmodulepath: /usr/lib/ldap&lt;br /&gt;
&lt;br /&gt;
dn: olcOverlay=unique,olcDatabase={1}hdb,cn=config&lt;br /&gt;
objectClass: olcOverlayConfig&lt;br /&gt;
objectClass: olcUniqueConfig&lt;br /&gt;
olcOverlay: unique&lt;br /&gt;
olcUniqueAttribute: uid uidNumber hccLogin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==SSL/TLS beveiliging==&lt;br /&gt;
Gebruik de juiste .pem bestanden in /etc/ssl/certs en /etc/ssl/private.&lt;br /&gt;
&lt;br /&gt;
We maken gebruik van een RapidSSL certificaat. Als dit niet standaard in Ubuntu bekend is, zet dan eerst GeoTrust_RapidSSL_-_ca-bundle.pem in de map /etc/ssl/certs neer. Voer nu een &#039;&#039;&#039;c_rehash .&#039;&#039;&#039; uit in /etc/ssl/certs om de cache te updaten (omdat GeoTrust_RapidSSL_-_ca-bundle.pem nieuw werd toegevoegd). &lt;br /&gt;
&lt;br /&gt;
De ownership is belangrijk. Hiertoe wordt de groep &amp;quot;openldap&amp;quot; toegevoegd aan de groep ssl-cert.&lt;br /&gt;
 adduser openldap ssl-cert&lt;br /&gt;
&lt;br /&gt;
Als dit fout gaat, doe dan eerst:&lt;br /&gt;
 apt-get install ssl-cert&lt;br /&gt;
&lt;br /&gt;
Zet het certificaat en de private key in de juiste groep:&lt;br /&gt;
 chgrp ssl-cert /etc/ssl/private/hobby.nl.*&lt;br /&gt;
 chmod 440      /etc/ssl/private/hobby.nl.key&lt;br /&gt;
&lt;br /&gt;
Het resultaat is dan als volgt:&lt;br /&gt;
 root@hcc-ldap-lb1:~# ls -l /etc/ssl/private/hcc* &lt;br /&gt;
 -rw-r--r-- 1 root     ssl-cert 1724 Nov 22 20:47 hobby.nl.crt&lt;br /&gt;
 -r--r----- 1 root     ssl-cert 1679 Nov 22 20:25 hobby.nl.key&lt;br /&gt;
&lt;br /&gt;
 root@hcc-ldap-lb1:~# grep openldap /etc/group&lt;br /&gt;
 ssl-cert:x:114:openldap&lt;br /&gt;
 openldap:x:118:&lt;br /&gt;
&lt;br /&gt;
Per september 2017 staan de certificaten in /disk/site/etc/ssl/hobby.nl, net als op alle andere servers. Omdat apparmor actief is moet deze directory worden toegevoegd aan /etc/apparmor.d/local/usr.sbin.slapd. Die file ziet er dan als volgt uit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Site-specific additions and overrides for usr.sbin.slapd.&lt;br /&gt;
# For more details, please see /etc/apparmor.d/local/README.&lt;br /&gt;
#include &amp;lt;abstractions/ssl_certs&amp;gt;&lt;br /&gt;
/disk/site/etc/ssl/hobby.nl/ r,&lt;br /&gt;
/disk/site/etc/ssl/hobby.nl/* r,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Als Openldap ook op poort 636 benaderd wordt (naast TLS op 389), moet in /etc/default/slapd ldaps:/// opgenomen worden bij de SLAPD_SERVICES. Netstat -a dient dan 636 te laten zien voor zowel IPv4 als IPv6.&lt;br /&gt;
&lt;br /&gt;
Om de cn=config te zien kan je het volgende commando gebruiken:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config&lt;br /&gt;
&lt;br /&gt;
of, wat botter maar korter:&lt;br /&gt;
cat /etc/ldap/slapd.d/cn\=config.ldif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Backup, initialize, restore==&lt;br /&gt;
Om het hele skelet van ldap in één keer te herstellen dient &#039;&#039;&#039;init_ldap&#039;&#039;&#039; gebruikt te worden. Als argument &#039;&#039;&#039;moet&#039;&#039;&#039; het admin beheer wachtwoord mee gegeven worden.&lt;br /&gt;
&lt;br /&gt;
===lokaal===&lt;br /&gt;
Backups kunnen gemaakt worden terwijl slapd draait maar geadviseerd wordt slapd te stoppen. Voor dumpen moet &#039;&#039;&#039;slapcat&#039;&#039;&#039; gebruikt worden. Backups kunnen gemaakt worden per database of een filter daarop, naar een ldif bestand.&lt;br /&gt;
 slapcat -l hcc-dump.ldif -b &amp;quot;dc=hcc,dc=nl&amp;quot;&lt;br /&gt;
Dit maakt een dump van alles onder &#039;&#039;&#039;dc=hcc,dc=nl&#039;&#039;&#039; naar het bestand hcc-dump.ldif. Ook is het mogelijk het database nummer te gebruiken, config is altijd nummer 0, hdb is gewoonlijk 1.&lt;br /&gt;
&lt;br /&gt;
Het &#039;&#039;&#039;dump_ldap&#039;&#039;&#039; script dumpt alle ou&#039;s in aparte .ldif bestanden; het omgekeerde doet &#039;&#039;&#039;restore_ldap&#039;&#039;&#039;.  &lt;br /&gt;
Terug inlezen kan alleen in een lege directory, dus direct nadat &#039;&#039;&#039;init_ldap&#039;&#039;&#039; is gedaan. Gebruik voor het terugplaatsen &#039;&#039;&#039;slapadd&#039;&#039;&#039;. Aan te bevelen is &#039;&#039;&#039;-c&#039;&#039;&#039; mee te geven zodat ondanks fouten doorgegaan wordt. &lt;br /&gt;
&lt;br /&gt;
Voor slapadd &#039;&#039;&#039;moet&#039;&#039;&#039; slapd gestopt zijn. Denk er om alvorens te slapd starten het ownership van de bestanden in /var/lib/ldap recht te zetten! (dit lijkt niet meer nodig te zijn vbs20130526)&lt;br /&gt;
 /etc/init.d/slapd stop&lt;br /&gt;
 slapadd -l hcc-dump.ldif -w -c &amp;gt;errors.txt&lt;br /&gt;
 chown openldap:openldap /var/lib/ldap/*&lt;br /&gt;
 /etc/init.d/slapd start&lt;br /&gt;
&lt;br /&gt;
===remote===&lt;br /&gt;
Er wordt dagelijks een encrypted remote backup gemaakt naar backup2bit. Zie voor meer info [[Encrypted_backup]]. Dit script maakt gebruik van unieke gpg keys. Op elke server is dus een eigen versie nodig van &#039;&#039;&#039;backup-encrypted&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Recente lokale backups zijn te vinden in &#039;&#039;&#039;/usr/local/hobbynet/tmp&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Verse ldap maken===&lt;br /&gt;
Transactie log bij het toevoegen van b.v. een nieuwe ou:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Op beide servers:&lt;br /&gt;
schema van test server gecopieerd en geactiveerd&lt;br /&gt;
dump-ldap gedraaid&lt;br /&gt;
systemctl stop slapd.service &lt;br /&gt;
&lt;br /&gt;
Er is nu géén ldap service! Werk dus snel...&lt;br /&gt;
&lt;br /&gt;
op ldap-lb1:&lt;br /&gt;
init-ldap.sh &amp;lt;adminpw&amp;gt;&lt;br /&gt;
restore-ldap.sh&lt;br /&gt;
wacht op indexering (tot slapd uit top verdwijnt)&lt;br /&gt;
Slapd service is nu in de lucht op ldap-lb1&lt;br /&gt;
systemctl stop slapd.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
op ldap-lb2:&lt;br /&gt;
init-ldap.sh &amp;lt;adminpw&amp;gt;&lt;br /&gt;
restore-ldap.sh&lt;br /&gt;
wacht op indexering (tot slapd uit top verdwijnt)&lt;br /&gt;
Slapd service is nu in de lucht op ldap-lb2&lt;br /&gt;
&lt;br /&gt;
op ldap-lb1:&lt;br /&gt;
systemctl start slapd.service&lt;br /&gt;
Beide slapd servers zijn in de lucht en moeten synchroniseren.&lt;br /&gt;
&lt;br /&gt;
op beide servers:&lt;br /&gt;
check replicatie (netstat en functioneel)&lt;br /&gt;
&lt;br /&gt;
root@ldap-lb1:/usr/local/hobbynet/bin# netstat -n | grep 389&lt;br /&gt;
tcp        0      0 172.31.8.4:36838        172.31.8.5:389          ESTABLISHED&lt;br /&gt;
tcp        0      0 172.31.8.4:36836        172.31.8.5:389          ESTABLISHED&lt;br /&gt;
tcp        0      0 172.31.8.4:389          172.31.8.5:58112        ESTABLISHED&lt;br /&gt;
tcp        0      0 172.31.8.4:389          172.31.8.5:58114        ESTABLISHED&lt;br /&gt;
&lt;br /&gt;
Functioneel door met ADS op beide servers in te loggen en een willekeurig veld in je eigen entry te wijzigen op lb1. Kijk of het gebeurd is op lb2 en wijzig het daar terug. Check op de andere server of het gebeurd is. Er kan een zekere vertraging in optreden.&lt;br /&gt;
&lt;br /&gt;
Stel er is een nieuwe ou gemaakt: denk aan het bij werken van de dump en restore scripts.&lt;br /&gt;
&lt;br /&gt;
update dump-ldap.sh en restore-ldap.sh met de nieuwe ou&lt;br /&gt;
&lt;br /&gt;
op ldap-lb1:&lt;br /&gt;
export tarieven.ldif op test server en import op ldap-lb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==crontab==&lt;br /&gt;
 # script dat updates ophaalt (maar niet installeert), zodat nagios ze ook detecteert&lt;br /&gt;
 0 9 * * * /usr/local/hobbynet/bin/upd_srv &amp;gt;/dev/null&lt;br /&gt;
 0 18 * * * /usr/local/hobbynet/bin/upd_srv &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
==LDAP Clients==&lt;br /&gt;
Er zijn meerdere LDAP clients. De meest populaire zijn Apache Directory Studio (&amp;quot;ADS&amp;quot;) en phpLdapAdmin (&amp;quot;PLA&amp;quot;).&amp;lt;br&amp;gt;&lt;br /&gt;
De eerste is veel uitgbreider maar vereist een Java Runtime Environment (&amp;quot;JRE&amp;quot;). Onder Windows is dat JRE(13) of (open)JDK-(13).&amp;lt;br&amp;gt;&lt;br /&gt;
PhpLdapAdmin draait onder apache. Beide clients hebben wat configuratie nodig; Bij ADS gaat alles stapsgewijs in de GUI. Voor PLA moet /etc/phpldapadmin/config.php aangepast worden. &lt;br /&gt;
&lt;br /&gt;
Binnen Hobbynet wordt uitsluitend gebruik gemaakt van ADS.&lt;br /&gt;
&lt;br /&gt;
===StartTLS===&lt;br /&gt;
Aanbevolen wordt StartTLS op poort 389 te gebruiken. Alternatief is LDAPS op poort 636 maar dat is deprecated. &lt;br /&gt;
&lt;br /&gt;
Voor beide clients is het belangrijk dat de root certificaten gevonden kunnen worden. Als Apache al een server cert kent zou PLA geen probleem mogen zijn. ADS maakt deel uit van de JRE. JRE moet dus de root certificaten kunnen vinden.&lt;br /&gt;
&lt;br /&gt;
===ADS onder Windows===&lt;br /&gt;
&amp;lt;i&amp;gt;2019-10-31 HJV: Oude info, als referentie leuk, maar niet meer relevant&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Onder Windows moet met &#039;&#039;&#039;keytool.exe&#039;&#039;&#039; gewerkt worden. De uitleg heb ik van  [http://www.talkingtree.com/blog/index.cfm?mode=entry&amp;amp;entry=25AA75A4-45A6-2844-7CA3EECD842DB576 hier]. Het komt erop neer dat de .pem of .der certificaten van CAcert in de keystore gezet worden. Kopieer deze certificaat bestanden in C:\Program Files\Java\jre6\lib\security (jre6 kan ondertussen jre7 zijn in Vista of W7). Doe dan in een terminal window:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Haal de benodigde bestanden op (op een Linux systeem):&lt;br /&gt;
wget http://www.cacert.org/certs/root.der -O root.der&lt;br /&gt;
wget http://www.cacert.org/certs/class3.der -O class3.der&lt;br /&gt;
copieer de bestanden naar de Windows omgeving in C:\Program Files (x86)\Java\jre6\lib\security.&lt;br /&gt;
&lt;br /&gt;
Open een commandwindow:&lt;br /&gt;
cd C:\Program Files (x86)\Java\jre6\lib\security&lt;br /&gt;
..\..\bin\keytool -import -trustcacerts -keystore cacerts -storepass changeit -noprompt -alias cacertclass1 -file root.der&lt;br /&gt;
..\..\bin\keytool -import -trustcacerts -keystore cacerts -storepass changeit -noprompt -alias cacertclass3 -file class3.der&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
De Windows JRE is ook te managen via het Java applet in het configuratiescherm. Toevoegen van root certificaten lijkt niet mogelijk voor system; wel voor user. Niet verder naar gezocht.&lt;br /&gt;
&lt;br /&gt;
===ADS onder Linux===&lt;br /&gt;
Apache Directory Studio laat zich uit een tarball installeren. Dit kan geheel in userspace; er is geen make install o.i.d. nodig. ADS loopt vanuit de lokatie waar het uitgepakt is.&lt;br /&gt;
&lt;br /&gt;
===ADS gebruik===&lt;br /&gt;
ADS kan erg handig zijn voor het snel dumpen van hele ou&#039;s in .ldif formaat. Zo&#039;n dump kan direct op een andere server worden ingelezen.&lt;br /&gt;
&lt;br /&gt;
===PhpLdapAdmin onder Linux===&lt;br /&gt;
Voor ldap clients (phpldapadmin) dient de client configuratie goed te zijn. Deze bevindt zich in /etc/ldap/ldap.conf. Het is voldoende als de directory met de root certificaten bekend is. Deze client configuratie is meer php-ldap gebonden dan alleen voor PLA. Ook de Drupal LDAPauth module werkt met ditzelfde beatand. Zie ook de [http://phpldapadmin.sourceforge.net/wiki/index.php/Server:server:tls phpldapadmin wiki].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# LDAP Defaults&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# See ldap.conf(5) for details&lt;br /&gt;
# This file should be world readable but not world writable.&lt;br /&gt;
&lt;br /&gt;
#BASE   dc=example,dc=com&lt;br /&gt;
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666&lt;br /&gt;
&lt;br /&gt;
#SIZELIMIT      12&lt;br /&gt;
#TIMELIMIT      15&lt;br /&gt;
#DEREF          never&lt;br /&gt;
TLS_CACERT      /etc/ssl/certs/CAcert_org.pem&lt;br /&gt;
TLS_CERT        /etc/ssl/private/hobby.nl.crt&lt;br /&gt;
TLS_KEY         /etc/ssl/private/hobby.nl.key&lt;br /&gt;
TLS_REQCERT     allow&lt;br /&gt;
#TLS_REQCERT never&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Denk er wel aan na wijzigingen Apache te herstarten.&lt;br /&gt;
===PAM en NSS via LDAP===&lt;br /&gt;
Het inloggen van gebruikers kan ook via een LDAP server en client geschieden. Hiervoor dienen enkele pakketten geïnstalleerd en geconfigureerd te worden. Er zijn wijzigingen nodig in /etc/nsswitch.conf en de /etc/pam.d/common-* bestanden. Beide zijn via dedicated tools aan te passen.&lt;br /&gt;
&lt;br /&gt;
Installeer &#039;&#039;&#039;libnss-ldapd&#039;&#039;&#039; om de benodigde libraries te verkrijgen. Apt-get zal tevens &#039;&#039;&#039;libpam-ldapd&#039;&#039;&#039;, &#039;&#039;&#039;nslcd&#039;&#039;&#039; en &#039;&#039;&#039;nscd&#039;&#039;&#039; binnen brengen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install libnss-ldapd auth-client-config ldap-utils&lt;br /&gt;
The following extra packages will be installed:&lt;br /&gt;
    libpam-ldapd nscd nslcd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Libnss-ldapd is een doorontwikkeling van libnss-ldap en bevat meerdere verbeteringen. Zie: [http://arthurdejong.org/nss-pam-ldapd/ deze site] van de ontwikkelaar. Bij de installatie wordt een user &#039;&#039;&#039;nslcd&#039;&#039;&#039; aangemaakt; denk erom die in de .tmpl bestanden te zetten!&lt;br /&gt;
  &lt;br /&gt;
nsswitch.conf laat zich configureren via &#039;&#039;&#039;auth-client-config&#039;&#039;&#039; maar lac_ldap is alleen aanwezig als &#039;&#039;&#039;ldap-auth-config&#039;&#039;&#039; ook is geinstalleerd. Zo niet gebruik dan de tweede regel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth-client-config -t nss -p lac_ldap&lt;br /&gt;
auth-client-config -t nss -p ldap_example&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Het resultaat is dat nsswitch.conf zowel in files (/etc/passwd etc.) zoekt als in ldap.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /etc/nsswitch.conf&lt;br /&gt;
#&lt;br /&gt;
# Example configuration of GNU Name Service Switch functionality.&lt;br /&gt;
# If you have the `glibc-doc-reference&#039; and `info&#039; packages installed, try:&lt;br /&gt;
# `info libc &amp;quot;Name Service Switch&amp;quot;&#039; for information about this file.&lt;br /&gt;
&lt;br /&gt;
# pre_auth-client-config # passwd:         compat&lt;br /&gt;
passwd: files ldap&lt;br /&gt;
# pre_auth-client-config # group:          compat&lt;br /&gt;
group: files ldap&lt;br /&gt;
# pre_auth-client-config # shadow:         compat&lt;br /&gt;
shadow: files ldap&lt;br /&gt;
&lt;br /&gt;
hosts:          files dns&lt;br /&gt;
networks:       files&lt;br /&gt;
&lt;br /&gt;
protocols:      db files&lt;br /&gt;
services:       db files&lt;br /&gt;
ethers:         db files&lt;br /&gt;
rpc:            db files&lt;br /&gt;
&lt;br /&gt;
# pre_auth-client-config # netgroup:       nis&lt;br /&gt;
netgroup: nis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Het aanpassen van de PAM bestanden gaat sinds enige releases met &#039;&#039;&#039;pam-auth-update&#039;&#039;&#039;. Kies in het menu voor zowel unix als ldap. Default wordt nu ldap authenticatie gebruikt voor uid &amp;gt;= 1000. Bij Hobbynet willen we vanaf 300 ldap gebruiken. Door een licht gemodificeerde versie van /usr/share/pam-configs/ldap te maken (ldap-hobbynet), kan ook voor de hobbynet instelling gekozen worden. Dit is de ldap-hobbynet versie:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: LDAP Authentication (uid&amp;gt;300)&lt;br /&gt;
Default: yes&lt;br /&gt;
Priority: 128&lt;br /&gt;
Auth-Type: Primary&lt;br /&gt;
Auth-Initial:&lt;br /&gt;
        [success=end default=ignore]    pam_ldap.so minimum_uid=300&lt;br /&gt;
Auth:&lt;br /&gt;
        [success=end default=ignore]    pam_ldap.so minimum_uid=300 use_first_pass&lt;br /&gt;
Account-Type: Additional&lt;br /&gt;
Account:&lt;br /&gt;
        [success=ok new_authtok_reqd=done ignore=ignore user_unknown=ignore authinfo_unavail=ignore default=bad]        pam_ldap.so minimum_uid=300&lt;br /&gt;
Password-Type: Primary&lt;br /&gt;
Password-Initial:&lt;br /&gt;
        [success=end default=ignore]    pam_ldap.so minimum_uid=300&lt;br /&gt;
Password:&lt;br /&gt;
        [success=end default=ignore]    pam_ldap.so minimum_uid=300 try_first_pass&lt;br /&gt;
Session-Type: Additional&lt;br /&gt;
Session:&lt;br /&gt;
        [success=ok default=ignore]     pam_ldap.so minimum_uid=300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dit is in een standaard opzet van LDAP voldoende om zowel lokale gebruikers als gebruikers opgeslagen in LDAP, te laten inloggen en hun password te laten wijzigen. In de Hobbynet setup moet er echter nog meer gebeuren in de ACL&#039;s van de LDAP server configuratie. Omdat Hobbynet de laatste ACL regel heeft gewijzigd in een &#039;&#039;&#039;deny-all&#039;&#039;&#039;, is er een helper of proxy account nodig dat read access heeft of een aantal cruciale velden in de posixAccount objectClass. Zie verder de lsiting van nslcd.conf.&lt;br /&gt;
&lt;br /&gt;
Libnss-ldapd en libpam-ldapd hebben een gezamelijke daemon &#039;&#039;&#039;nslcd&#039;&#039;&#039; die z&#039;n configuratie uit &#039;&#039;&#039;/etc/nslcd.conf&#039;&#039;&#039; haalt. Hierin is ook een voorziening voor het helper account. Aan het eind vande &#039;&#039;&#039;nslcd.conf&#039;&#039;&#039; staat de voorziening voor host-based login. Als het attribute &#039;&#039;&#039;host&#039;&#039;&#039; de fqdn of alleen de host naam bevat, bepaald dat of inloggen op die host mogelijk is. &#039;&#039;&#039;*&#039;&#039;&#039; staat inloggen op alle hosts toe.&lt;br /&gt;
&lt;br /&gt;
Eventueel kan het daemon proces voor debugging doeleinden ook als command (&#039;&#039;&#039;nslcd -d&#039;&#039;&#039;) gestart worden. Om de bevragingen van de LDAP server wat te verminderen, kan &#039;&#039;&#039;nscd&#039;&#039;&#039; voor caching zorgen. Deze cache daemon heeft zijn eigen configuratie bestand: &#039;&#039;&#039;/etc/nslcd.conf&#039;&#039;&#039;. De default instellingen zijn goed; eventueel kan de logging naar een bestand gestuurd worden.&lt;br /&gt;
&lt;br /&gt;
Verbinding met de LDAP server kan met StartTLS beveiligd worden. Hier de inhoud van nslcd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /etc/nslcd.conf&lt;br /&gt;
# nslcd configuration file. See nslcd.conf(5)&lt;br /&gt;
# for details.&lt;br /&gt;
&lt;br /&gt;
# The user and group nslcd should run as.&lt;br /&gt;
uid nslcd&lt;br /&gt;
gid nslcd&lt;br /&gt;
&lt;br /&gt;
# log location and level&lt;br /&gt;
#log /var/log/nslcd.log debug&lt;br /&gt;
&lt;br /&gt;
# The location at which the LDAP server(s) should be reachable.&lt;br /&gt;
uri ldap://ldap2-int.hobby.nl/&lt;br /&gt;
&lt;br /&gt;
# The search base that will be used for all queries.&lt;br /&gt;
base dc=hcc,dc=nl&lt;br /&gt;
&lt;br /&gt;
# Other base mappings&lt;br /&gt;
base   group  ou=groups,dc=hcc,dc=nl&lt;br /&gt;
base   passwd ou=users,dc=hcc,dc=nl&lt;br /&gt;
base   shadow ou=users,dc=hcc,dc=nl&lt;br /&gt;
&lt;br /&gt;
# The search scope.&lt;br /&gt;
#scope sub&lt;br /&gt;
&lt;br /&gt;
# The LDAP protocol version to use.&lt;br /&gt;
ldap_version 3&lt;br /&gt;
&lt;br /&gt;
# The DN to bind with for normal lookups.&lt;br /&gt;
#binddn cn=annonymous,dc=example,dc=net&lt;br /&gt;
#bindpw secret&lt;br /&gt;
binddn cn=hobbynetlogin,ou=applicaties,dc=hcc,dc=nl&lt;br /&gt;
bindpw xxxxxxxxxxxxxxxxx&lt;br /&gt;
&lt;br /&gt;
# The DN used for password modifications by root.&lt;br /&gt;
#rootpwmoddn cn=admin,dc=example,dc=com&lt;br /&gt;
&lt;br /&gt;
# SSL options&lt;br /&gt;
ssl off&lt;br /&gt;
ssl start_tls&lt;br /&gt;
#tls_reqcert never&lt;br /&gt;
tls_cacertfile /etc/ssl/certs/cacert.org.pem&lt;br /&gt;
#tls_cert /etc/ssl/private/server.crt&lt;br /&gt;
#tls_key /etc/ssl/private/server.key&lt;br /&gt;
&lt;br /&gt;
# The minimum uid&lt;br /&gt;
nss_min_uid 300&lt;br /&gt;
&lt;br /&gt;
pam_authz_search (&amp;amp;(objectClass=posixAccount)(uid=$username)(|(host=$hostname)(host=$fqdn)(host=\\*)))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===users en groepen toevoegen===&lt;br /&gt;
Hiervoor moet &#039;&#039;&#039;ldapscripts&#039;&#039;&#039; zijn geïnstalleerd. Dit is het geval op de ldap-lb1 server. Dat levert de volgende extra commando&#039;s op:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldaprenamemachine&lt;br /&gt;
ldapadduser&lt;br /&gt;
ldapdeleteuserfromgroup&lt;br /&gt;
ldapfinger&lt;br /&gt;
ldapid&lt;br /&gt;
ldapgid&lt;br /&gt;
ldapmodifyuser&lt;br /&gt;
ldaprenameuser&lt;br /&gt;
lsldap&lt;br /&gt;
ldapaddusertogroup&lt;br /&gt;
ldapsetpasswd&lt;br /&gt;
ldapinit&lt;br /&gt;
ldapaddgroup&lt;br /&gt;
ldapdeletegroup&lt;br /&gt;
ldapmodifygroup&lt;br /&gt;
ldapdeletemachine&lt;br /&gt;
ldaprenamegroup&lt;br /&gt;
ldapaddmachine&lt;br /&gt;
ldapmodifymachine&lt;br /&gt;
ldapsetprimarygroup&lt;br /&gt;
ldapdeleteuser&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Meest gebruikt zijn &#039;&#039;&#039;ldapaddgroup, ldapadduser, ldapsetpasswd&#039;&#039;&#039;.  &lt;br /&gt;
Er zijn manpages maar er is ook uitgebreide uitleg in de [https://help.ubuntu.com/14.04/serverguide/openldap-server.html Ubuntu server guide]. Omdat wij het automatisch maken van de home dir uit hebben staan, moet die met de hand aangemaakt worden en moet de owner goed gezet worden.&lt;br /&gt;
&lt;br /&gt;
===host-based login===&lt;br /&gt;
Met een kleine uitbreiding in het schema van de LDAP server, kan host-based login gerealiseerd worden. Ook in de &#039;&#039;&#039;nslcd.conf&#039;&#039;&#039; is een uitbreiding nodig.&lt;br /&gt;
&lt;br /&gt;
In de LDAP server dient de objectClass &#039;&#039;&#039;hostObject&#039;&#039;&#039; aan de entries in de ou=users toegevoegd te worden. Deze (auxilary) objectClass brengt slechts één attribute met zich mee: &#039;&#039;&#039;host&#039;&#039;&#039;. De regel in nslcd.conf checkt of één van de waarden van &#039;&#039;&#039;host&#039;&#039;&#039; gelijk is aan de naam van de server waarop ingelogd wordt. De waarde &#039;&#039;&#039;*&#039;&#039;&#039; geldt als wildcard. Zie de regel &#039;&#039;&lt;br /&gt;
&#039;pam_authz_search&#039;&#039;&#039;&#039; in &#039;&#039;&#039;nslcd.conf&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Password aanpassen===&lt;br /&gt;
Via LDAP ingelogde gebruikers kunnen net als lokale gebruikers hun wachtwoord met &#039;&#039;&#039;passwd&#039;&#039;&#039; wijzigen. Wel moet aan de eisen in de LDAP ppolicy module voldaan worden.&lt;br /&gt;
&lt;br /&gt;
==PHP scripting==&lt;br /&gt;
Initieel worden alle leden op basis van hun hcc lidnummer ingelezen. Zodra de profielwizard doorlopen is, zal het lidnummer vervangen moeten worden door de gebruikersnaam. Er zijn verschillende php-scripts gemaakt, o.a. om snel alle kaderrollen te verwijderen. Php-scripts staan in de &#039;&#039;&#039;/usr/local/hobbynet/bin&#039;&#039;&#039; directory.&lt;br /&gt;
Voor de php-scripting zijn enkele php7.x pakketten nodig. Installeer deze met apt-get. Het gaat om:&lt;br /&gt;
* php-cli&lt;br /&gt;
* php-ldap&lt;br /&gt;
&lt;br /&gt;
== Apache authenticatie via LDAP ==&lt;br /&gt;
In plaats van .htpassword authenticatie, kan ook LDAP gebruikt worden. Activeer daartoe de Apache module&lt;br /&gt;
&#039;authnz_ldap&#039;.&lt;br /&gt;
 a2enmod authnz_ldap&lt;br /&gt;
Denk er om dat dit in een loadbalanced situatie op beide servers gedaan dient te worden!&lt;br /&gt;
&lt;br /&gt;
=== Voorbeeld van een LDAP configuratie in de Apache config ===&lt;br /&gt;
(alleen als voorbeeld, niet zo gebruiken!)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# // 1) Hobbynet webmaster&lt;br /&gt;
# // 2) Vraagbaak medewerker van een willekeurige groepering&lt;br /&gt;
# (|(hccRol=*#VRBK)(hccRol=HN#WM))&lt;br /&gt;
  &amp;lt;Location &amp;quot;/apps/vraagbaak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;RequireAll&amp;gt;&lt;br /&gt;
      Authname &amp;quot;HCC!vraagbaak (gebruik uw hcc.nl gebruikersnaam/wachtwoord)&amp;quot;&lt;br /&gt;
      AuthType Basic&lt;br /&gt;
      AuthBasicProvider ldap&lt;br /&gt;
      AuthLDAPUrl ldap://hcc-ldap-int.hobby.nl/ou=leden,dc=hcc,dc=nl?hccLogin??(|(hccRol=*#VRBK)(hccRol=HN#WM))(hccProfiel=TRUE) TLS&lt;br /&gt;
      require valid-user&lt;br /&gt;
    &amp;lt;/RequireAll&amp;gt;&lt;br /&gt;
  &amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hoe kan LDAP veilig gebruikt worden vanuit Apache===&lt;br /&gt;
Zet een script neer in de gebruikersomgeving, en gebruik mod_authz_external. Doe de controle vervolgens via de XML-RPC server.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zie [[Kadernet]] voor een voorbeeld.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== TODO lijst ==&lt;br /&gt;
&#039;&#039;Dit is een lijst in wording, graag aanvullen&#039;&#039; &lt;br /&gt;
* &#039;dun&#039; loadbalancer script maken om te controleren dat LDAP echt luistert&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=LDAP_groeperings_vlaggen&amp;diff=78518</id>
		<title>LDAP groeperings vlaggen</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=LDAP_groeperings_vlaggen&amp;diff=78518"/>
		<updated>2020-06-23T09:21:02Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= doel = &lt;br /&gt;
Een overzicht van vlaggen die er zijn voor &#039;&#039;&#039;ou=interessegroepen&#039;&#039;&#039; in ldap en wat ze doen&lt;br /&gt;
= hccTariefGroep =&lt;br /&gt;
Deze vlag zorgt er voor dat juiste bedrag wordt getoond in joomla.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Interessegroepen met een 2-letter code worden beschouwd als een IG waar je lid van kunt worden. &lt;br /&gt;
IG&#039;s met een langere code worden altijd buiten beschouwing gelaten.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039; tarief groep &#039;&#039;&#039; Ook groeperingen met &#039;&#039;&#039;tarief groep 0&#039;&#039;&#039; worden niet op de lid-worden pagina getoond.&lt;br /&gt;
&lt;br /&gt;
= hccToonInJoomla =&lt;br /&gt;
Als deze vlag is gezet wordt hij niet in de joomla login module getoond&lt;br /&gt;
&lt;br /&gt;
= hccToonInOverzichten =&lt;br /&gt;
Als deze vlag is wordt hij niet opgenomen in statistieken etc etc &lt;br /&gt;
&lt;br /&gt;
= hccToonOpKadernet = &lt;br /&gt;
Als deze vlag is gezet wordt hij niet getoond in de kadernetmutatie module, uitgezonderd hobbynet beheerders en LA&lt;br /&gt;
&lt;br /&gt;
= hccFunctionalEmail = &lt;br /&gt;
Als deze vlag is gezet worden er geen functionele e-mail adressen aangemaakt of kader e-mail adressen voor kader/kern leden&lt;br /&gt;
&lt;br /&gt;
= hccBulletins = &lt;br /&gt;
Als deze vlag is gezet worden er geen nieuwsbrieven voor deze groepering gemaakt&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=LDAP_groeperings_vlaggen&amp;diff=78516</id>
		<title>LDAP groeperings vlaggen</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=LDAP_groeperings_vlaggen&amp;diff=78516"/>
		<updated>2020-06-23T09:10:35Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= doel = &lt;br /&gt;
Een overzicht van vlaggen die er zijn voor &#039;&#039;&#039;ou=interessegroepen&#039;&#039;&#039; in ldap en wat ze doen&lt;br /&gt;
= hccTariefGroep =&lt;br /&gt;
Deze vlag zorgt er voor dat juiste bedrag wordt getoond in joomla.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039; tarief groep &#039;&#039;&#039; Groepering met tarief groep 0 worden niet op de aanmeld pagina getoond&lt;br /&gt;
&lt;br /&gt;
= hccToonInJoomla =&lt;br /&gt;
Als deze vlag is gezet wordt hij niet in de joomla login module getoond&lt;br /&gt;
&lt;br /&gt;
= hccToonInOverzichten =&lt;br /&gt;
Als deze vlag is wordt hij niet opgenomen in statistieken etc etc &lt;br /&gt;
&lt;br /&gt;
= hccToonOpKadernet = &lt;br /&gt;
Als deze vlag is gezet wordt hij niet getoond in de kadernetmutatie module, uitgezonderd hobbynet beheerders en LA&lt;br /&gt;
&lt;br /&gt;
= hccFunctionalEmail = &lt;br /&gt;
Als deze vlag is gezet worden er geen functionele e-mail adressen aangemaakt of kader e-mail adressen voor kader/kern leden&lt;br /&gt;
&lt;br /&gt;
= hccBulletins = &lt;br /&gt;
Als deze vlag is gezet worden er geen nieuwsbrieven voor deze groepering gemaakt&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Wij_jitsi_server&amp;diff=78504</id>
		<title>Wij jitsi server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Wij_jitsi_server&amp;diff=78504"/>
		<updated>2020-05-28T06:25:36Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= doel =&lt;br /&gt;
&lt;br /&gt;
De server wij.hcc.nl verzorgt een jitsi server voor hcc&lt;br /&gt;
&lt;br /&gt;
= opzet =&lt;br /&gt;
[[File:Jitsi diagram.png|thumb]]&lt;br /&gt;
[[File:Jitsi diagram.dia]]&lt;br /&gt;
De jitsi frontend fungeert als dirigent: hij bepaalt welke sessie op welke videobridge plaats vindt, hij is sessie broker. &lt;br /&gt;
Elke videobridge handelt zijn eigen video verkeer af&lt;br /&gt;
&lt;br /&gt;
Het cluster bestaat uit 4 servers&amp;lt;br&amp;gt;&lt;br /&gt;
   1.     Frontend           : deze is zeg maar de sessie broker&lt;br /&gt;
   2,3,4. Videobridge 1 t/m 3: deze handelen al het video verkeer rechtstreeks af&lt;br /&gt;
&lt;br /&gt;
= update van jitsi = &lt;br /&gt;
Nadat updates van jitsi zijn geweest moet het volgende script gedraaid worden&lt;br /&gt;
   /usr/local/hobbynet/home/jitsi-images/update-jitsi.sh&lt;br /&gt;
Dit zorgt er voor dat het hcc logo etc etc wordt teruggezet, samen met nog wat settings.&lt;br /&gt;
&lt;br /&gt;
== update script jitsi-frontend==&lt;br /&gt;
Bij apt upgrade/full-upgrade wordt automatisch door middel van een hook bepaalde settings goed gezet na de upgrade, dit gebeurt altijd, ook al is er geen jitsi update.&lt;br /&gt;
&lt;br /&gt;
Het update script vindt je hier: &amp;lt;code&amp;gt;/etc/apt/apt.conf.d/80upgradehook&amp;lt;/code&amp;gt; en ziet er als volgt uit:&lt;br /&gt;
 DPkg::Post-Invoke {&amp;quot;/usr/local/hobbynet/local/jitsi/update-jitsi.sh&amp;quot;;};&lt;br /&gt;
&lt;br /&gt;
Het script wat hij aanroep is /usr/local/hobbynet/local/jitsi/update-jitsi.sh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
echo &amp;quot;Jitsi frontend bijwerken&amp;quot;&lt;br /&gt;
echo &amp;quot;plaats watermark&amp;quot;&lt;br /&gt;
cp /usr/local/hobbynet/local/jitsi/Logo_hcc_RGB_png.png /usr/share/jitsi-meet/images/watermark.png&lt;br /&gt;
echo &amp;quot;plaats favoicoonen&amp;quot;&lt;br /&gt;
cp /usr/local/hobbynet/local/jitsi/favicon.ico /usr/share/jitsi-meet/images/favicon.ico&lt;br /&gt;
cp /usr/local/hobbynet/local/jitsi/favicon.ico /usr/share/jitsi-meet/favicon.ico&lt;br /&gt;
echo &amp;quot;backup oude interface config&amp;quot;&lt;br /&gt;
cp /usr/share/jitsi-meet/interface_config.js /usr/local/hobbynet/local/jitsi/interface_config.js.old&lt;br /&gt;
echo &amp;quot;vervang nodige variable in interface config, ipv oude config herbruiken&amp;quot;&lt;br /&gt;
cat /usr/share/jitsi-meet/interface_config.js |sed &amp;quot;s/&#039;Jitsi Meet&#039;/&#039;Wij HCC&#039;/g&amp;quot;|sed &amp;quot;s/PROVIDER_NAME: &#039;Jitsi&#039;/PROVIDER_NAME: &#039;Wij HCC&#039;/g&amp;quot;|sed &amp;quot;s/&#039;Jitsi Meet&#039;/&#039;Wij HCC&#039;/g&amp;quot;|sed &amp;quot;s/DISABLE_JOIN_LEAVE_NOTIFICATIONS: false/DISABLE_JOIN_LEAVE_NOTIFICATIONS: true/g&amp;quot; &amp;gt;/usr/local/hobbynet/local/jitsi/interface_config.js.new&lt;br /&gt;
echo &amp;quot;plaats nieuwe interface config&amp;quot;&lt;br /&gt;
cp /usr/local/hobbynet/local/jitsi/interface_config.js.new /usr/share/jitsi-meet/interface_config.js&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Het script plaatst het watermark en favicon op de juiste plek. Daarnaast doet hij de nodige aanpassingen in interface_config.js file met sed. Gebruik sed omdat er nog steeds nieuwe config opties bij komen en op deze manier gaan die niet verloren.&lt;br /&gt;
&lt;br /&gt;
== wanneer kan server herstart worden ==&lt;br /&gt;
Er is geen &#039;nette&#039; manier om te zien hoeveel er van de server gebruik gemaakt wordt.&lt;br /&gt;
Maar er is wel een betrouwbare truc: kijk hoeveel sessies er naar TCP poort 443 ESTABLISHED zijn.&lt;br /&gt;
&lt;br /&gt;
 #netstat -an|grep ESTABLISHED&lt;br /&gt;
 tcp        0      0 212.72.229.44:443       80.101.34.193:48418     ESTABLISHED&lt;br /&gt;
 tcp        0      0 212.72.229.44:443       80.101.34.193:48421     ESTABLISHED&lt;br /&gt;
 tcp        0      0 127.0.0.1:5347          127.0.0.1:50736         ESTABLISHED&lt;br /&gt;
 tcp        0      0 127.0.0.1:5222          127.0.0.1:59836         ESTABLISHED&lt;br /&gt;
 tcp        0      0 172.31.1.44:742         172.31.1.210:2049       ESTABLISHED&lt;br /&gt;
 tcp        0      0 127.0.0.1:5222          127.0.0.1:59838         ESTABLISHED&lt;br /&gt;
 tcp        0      0 172.31.1.44:22          172.31.1.34:52706       ESTABLISHED&lt;br /&gt;
 tcp6       0      0 127.0.0.1:59836         127.0.0.1:5222          ESTABLISHED&lt;br /&gt;
 tcp6       0      0 127.0.0.1:59838         127.0.0.1:5222          ESTABLISHED&lt;br /&gt;
 tcp6       0      0 ::1:45414               ::1:5280                ESTABLISHED&lt;br /&gt;
 tcp6       0      0 ::1:5280                ::1:45414               ESTABLISHED&lt;br /&gt;
 tcp6       0      0 127.0.0.1:50736         127.0.0.1:5347          ESTABLISHED&lt;br /&gt;
In bovenstaand voorbeeld zie je voornamelijk interne IP adressen, dan wel &#039;eigen&#039; 212.72.229 IP adressen. De server is dus in rust, er zijn geen actieve bijeenkomsten. Maar waarom heeft 80.101.34.193 dan 2 sessies? Waarschijnlijk is dit een presentator, die alvast een kanaal geopend heeft, om later vandaag een presentatie te verzorgen. We weten niet wie het is, we weten niet welk kanaal hij geopend heeft. &lt;br /&gt;
&lt;br /&gt;
Black box dus, niet te beheren.&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Wij_jitsi_server&amp;diff=78482</id>
		<title>Wij jitsi server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Wij_jitsi_server&amp;diff=78482"/>
		<updated>2020-05-20T09:21:09Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= doel =&lt;br /&gt;
&lt;br /&gt;
De server wij.hcc.nl verzorgt een jitsi server voor hcc&lt;br /&gt;
&lt;br /&gt;
= update van jitsi = &lt;br /&gt;
Nadat updates van jitsi zijn geweest moet het volgende script gedraaid worden&lt;br /&gt;
   /usr/local/hobbynet/home/jitsi-images/update-jitsi.sh&lt;br /&gt;
&lt;br /&gt;
Dit zorgt er voor dat het hcc logo etc etc wordt teruggezet, samen met nog wat settings.&lt;br /&gt;
&lt;br /&gt;
== update script ==&lt;br /&gt;
In de root directory op wij-int staat het script &#039;upd&#039;. Dit zorgt voor het bijwerken van alle software, en sluit af met het updaten van de jitsi omgeving.&lt;br /&gt;
&lt;br /&gt;
 root@wij:~# cat upd&lt;br /&gt;
 apt update&lt;br /&gt;
 apt full-upgrade -y&lt;br /&gt;
 apt autoremove -y&lt;br /&gt;
 /usr/local/hobbynet/home/jitsi-images/update-jitsi.sh&lt;br /&gt;
&lt;br /&gt;
== wanneer kan server herstart worden ==&lt;br /&gt;
Er is geen &#039;nette&#039; manier om te zien hoeveel er van de server gebruik gemaakt wordt.&lt;br /&gt;
Maar er is wel een betrouwbare truc: kijk hoeveel sessies er naar TCP poort 443 ESTABLISHED zijn.&lt;br /&gt;
&lt;br /&gt;
 #netstat -an|grep ESTABLISHED&lt;br /&gt;
 tcp        0      0 212.72.229.44:443       80.101.34.193:48418     ESTABLISHED&lt;br /&gt;
 tcp        0      0 212.72.229.44:443       80.101.34.193:48421     ESTABLISHED&lt;br /&gt;
 tcp        0      0 127.0.0.1:5347          127.0.0.1:50736         ESTABLISHED&lt;br /&gt;
 tcp        0      0 127.0.0.1:5222          127.0.0.1:59836         ESTABLISHED&lt;br /&gt;
 tcp        0      0 172.31.1.44:742         172.31.1.210:2049       ESTABLISHED&lt;br /&gt;
 tcp        0      0 127.0.0.1:5222          127.0.0.1:59838         ESTABLISHED&lt;br /&gt;
 tcp        0      0 172.31.1.44:22          172.31.1.34:52706       ESTABLISHED&lt;br /&gt;
 tcp6       0      0 127.0.0.1:59836         127.0.0.1:5222          ESTABLISHED&lt;br /&gt;
 tcp6       0      0 127.0.0.1:59838         127.0.0.1:5222          ESTABLISHED&lt;br /&gt;
 tcp6       0      0 ::1:45414               ::1:5280                ESTABLISHED&lt;br /&gt;
 tcp6       0      0 ::1:5280                ::1:45414               ESTABLISHED&lt;br /&gt;
 tcp6       0      0 127.0.0.1:50736         127.0.0.1:5347          ESTABLISHED&lt;br /&gt;
In bovenstaand voorbeeld zie je voornamelijk interne IP adressen, dan wel &#039;eigen&#039; 212.72.229 IP adressen. De server is dus in rust, er zijn geen actieve bijeenkomsten. Maar waarom heeft 80.101.34.193 dan 2 sessies? Waarschijnlijk is dit een presentator, die alvast een kanaal geopend heeft, om later vandaag een presentatie te verzorgen. We weten niet wie het is, we weten niet welk kanaal hij geopend heeft. &lt;br /&gt;
&lt;br /&gt;
Black box dus, niet te beheren.&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Wij_jitsi_server&amp;diff=78481</id>
		<title>Wij jitsi server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Wij_jitsi_server&amp;diff=78481"/>
		<updated>2020-05-19T11:46:38Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= doel =&lt;br /&gt;
&lt;br /&gt;
De server wij.hcc.nl verzorgt een jitsi server voor hcc&lt;br /&gt;
&lt;br /&gt;
= update van jitsi = &lt;br /&gt;
Nadat updates van jitsi zijn geweest moet het volgende script gedraaid worden&lt;br /&gt;
   /usr/local/hobbynet/home/jitsi-images/update-jitsi.sh&lt;br /&gt;
&lt;br /&gt;
Dit zorgt er voor dat het hcc logo etc etc wordt teruggezet, samen met nog wat settings.&lt;br /&gt;
&lt;br /&gt;
== update script ==&lt;br /&gt;
In de root directory op wij-int staat het script &#039;upd&#039;. Dit zorgt voor het bijwerken van alle software, en sluit af met het updaten van de jitsi omgeving.&lt;br /&gt;
&lt;br /&gt;
 root@wij:~# cat upd&lt;br /&gt;
 apt update&lt;br /&gt;
 apt full-upgrade -y&lt;br /&gt;
 apt autoremove -y&lt;br /&gt;
 /usr/local/hobbynet/home/jitsi-images/update-jitsi.sh&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Wij_jitsi_server&amp;diff=78479</id>
		<title>Wij jitsi server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Wij_jitsi_server&amp;diff=78479"/>
		<updated>2020-05-18T17:55:44Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= doel =&lt;br /&gt;
&lt;br /&gt;
De server wij.hcc.nl verzorgt een jitsi server voor hcc&lt;br /&gt;
&lt;br /&gt;
= update van jitsi = &lt;br /&gt;
Nadat updates van jitsi zijn geweest moet het volgende script gedraaid worden&lt;br /&gt;
   /usr/local/hobbynet/home/jitsi-images/update-jitsi.sh&lt;br /&gt;
&lt;br /&gt;
dit zorgt er voor dat het hcc logo etc etc wordt teruggezet, samen met nog wat settings&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Cron_jobs&amp;diff=78474</id>
		<title>Cron jobs</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Cron_jobs&amp;diff=78474"/>
		<updated>2020-05-14T12:43:30Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Beschrijving =&lt;br /&gt;
Op deze pagina staan de door hobbynet aangemaakte cronjobs, met een korte omschrijving en wanneer het draait zodat je in 1 overzicht kan zien waar wat en wanneer draait.&lt;br /&gt;
&lt;br /&gt;
= servers specifiek=&lt;br /&gt;
&lt;br /&gt;
== scripting ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| scripting&lt;br /&gt;
| /usr/local/hobbynet/bin/upd_servers&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze, en herstart de firewalls en memcache&lt;br /&gt;
| 06:45&amp;lt;br&amp;gt;18:45&lt;br /&gt;
| 2x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| scripting&lt;br /&gt;
| /usr/local/hobbynet/bin/sync_all&lt;br /&gt;
| root&lt;br /&gt;
| Update de gecentraliseerde webserver config op loadbalanced servers&lt;br /&gt;
| 06:30&amp;lt;br&amp;gt;23:00&lt;br /&gt;
| 2x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| scripting&lt;br /&gt;
| /usr/local/hobbynet/bin/resetmemcached&lt;br /&gt;
| root&lt;br /&gt;
| Herstart memcache op niet-loadbalanced webservers&lt;br /&gt;
| 02:00&amp;lt;br&amp;gt;07:00&lt;br /&gt;
| 2x per dag&lt;br /&gt;
| &#039;&#039;&#039;uitgeschakeld&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| scripting&lt;br /&gt;
| /usr/local/hobbynet/bin/sync_fw&lt;br /&gt;
| root&lt;br /&gt;
| Update en herstart firewall op machines die geen nfs mount hebben&lt;br /&gt;
| 00:15&amp;lt;br&amp;gt;06:15&amp;lt;br&amp;gt;12:15&amp;lt;br&amp;gt;18:15&lt;br /&gt;
| 4x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| scripting&lt;br /&gt;
| /usr/local/hobbynet/bin/download_amazonaws-ipranges&lt;br /&gt;
| root&lt;br /&gt;
| Haal de actuele IP ranges op van amazoneaws. Veel joomla plugin&#039;s componenten etc draaien in amazone clouds, daarom halen we die IP ranges op zodat ze zelf kunnen updaten&lt;br /&gt;
| 06:25&amp;lt;br&amp;gt;22:50&lt;br /&gt;
| 2x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| scripting&lt;br /&gt;
| /usr/sbin/nsdc notify&lt;br /&gt;
| root&lt;br /&gt;
| Verstuur notify naar alle nameservers van het actuele serie nr van alle zones&lt;br /&gt;
| 03:33&lt;br /&gt;
| 1x per dag&lt;br /&gt;
| &#039;&#039;&#039;VERHUIZEN NAAR domein&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| scripting&lt;br /&gt;
| /usr/local/hobbynet/opendnssec/ods-dsseen-firstksk&lt;br /&gt;
| root&lt;br /&gt;
| Activeer nog niet geactiveerde dnssec sleutels voor eerste keer&lt;br /&gt;
| *:29&lt;br /&gt;
| 24x per dag&lt;br /&gt;
| &#039;&#039;&#039;VERHUIZEN NAAR domein&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| scripting&lt;br /&gt;
| /usr/local/hobbynet/opendnssec/generate_keys&lt;br /&gt;
| root&lt;br /&gt;
| Vul vooraad dnssec sleutels aan in key opslag&lt;br /&gt;
| 04:45,10:45,16:45,22:45&lt;br /&gt;
| 4x per dag&lt;br /&gt;
| &#039;&#039;&#039;VERHUIZEN NAAR domein&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| scripting&lt;br /&gt;
| /usr/local/hobbynet/opendnssec/update-dnsseczones&lt;br /&gt;
| root&lt;br /&gt;
| Update alle dnssec zones bij registry&#039;s&lt;br /&gt;
| 05:00,11:00,17:00,23:00&lt;br /&gt;
| 1x per dag&lt;br /&gt;
| &#039;&#039;&#039;VERHUIZEN NAAR domein&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== domein ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| domein&lt;br /&gt;
| /usr/sbin/nsd-control write&lt;br /&gt;
| root&lt;br /&gt;
| Schrijf alle slave zones uit geheugen naar file&lt;br /&gt;
| ieder uur &lt;br /&gt;
| 24x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| domein&lt;br /&gt;
| /usr/local/hobbynet/opendnssec/ods-dsseen --all&lt;br /&gt;
| root&lt;br /&gt;
| Activeer nog niet geactiveerde dnssec sleutels&lt;br /&gt;
| *:30&lt;br /&gt;
| 24x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| domein&lt;br /&gt;
| /usr/local/hobbynet/opendnssec/ods-dsseen --really-all&lt;br /&gt;
| root&lt;br /&gt;
| Activeer nog niet geactiveerde dnssec sleutels voor eerste keer en loop echt alle zones na&lt;br /&gt;
| 01:20&lt;br /&gt;
| 1x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| domein&lt;br /&gt;
| /usr/local/hobbynet/opendnssec/sidn/update-prod-from-live.php&lt;br /&gt;
| root&lt;br /&gt;
| Update alle DNS zones op basis gegevens van SIDN&lt;br /&gt;
| 22:15&lt;br /&gt;
| 1x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| domein&lt;br /&gt;
| /usr/local/hobbynet/opendnssec/transip/update-prod-from-transip.php&lt;br /&gt;
| root&lt;br /&gt;
| Update alle DNS zones op basis gegevens van Transip&lt;br /&gt;
| 22:15&lt;br /&gt;
| 1x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ldap-lb1 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/sync_hobbynetfw_2.sh&lt;br /&gt;
| root&lt;br /&gt;
| Synchroniseer firewall regels van ldap-lb1 naar ldap-lb2 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039; moet draaien voor de firewall restart &#039;&#039;&#039;&lt;br /&gt;
| 05:55&amp;lt;br&amp;gt;11:55&amp;lt;br&amp;gt;17:55&amp;lt;br&amp;gt;23:55&lt;br /&gt;
| 4 x per dag &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /etc/init.d/hobby-firewall restart&lt;br /&gt;
| root&lt;br /&gt;
| Herstart Firewall &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039; moet draaien na de firewall synchronisatie job &#039;&#039;&#039;&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;12:00&amp;lt;br&amp;gt;18:00&amp;lt;br&amp;gt;00:00&lt;br /&gt;
| 4 x per dag &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y &amp;gt;/dev/null&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/local/backup-encrypted.bash &amp;gt;&amp;gt;/var/log/backup_encrypted.log&lt;br /&gt;
| root&lt;br /&gt;
| Encrypted backup naar Backup2bit&lt;br /&gt;
| 23:45&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/sync_hobbynetbin_2.sh&lt;br /&gt;
| root&lt;br /&gt;
| Sync bin dir naar ldap-lb2&lt;br /&gt;
| 23:50&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/sync_hobbynetetc_2.sh&lt;br /&gt;
| root&lt;br /&gt;
| Sync etc dir naar ldap-lb2&lt;br /&gt;
| 23:51&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/sync_hobbynetlib_2.sh&lt;br /&gt;
| root&lt;br /&gt;
| Sync lib dir naar ldap-lb2&lt;br /&gt;
| 23:52&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== extra op ldap-lb1 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/cron_joomla.sh&lt;br /&gt;
| root&lt;br /&gt;
| Draai joomla cron job voor joomla sites met login module zodat er zo min mogelijk lid gegevens in backup zitten&lt;br /&gt;
| 00:15&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/LDAP_export_passwords.sh&lt;br /&gt;
| root&lt;br /&gt;
| Zet de (door LA/de gebruiker) aangepaste wachtwoorden over naar het CRM&lt;br /&gt;
| 23:20&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/gen_iplist_partners.sh&lt;br /&gt;
| root&lt;br /&gt;
| Maak /usr/local/hobbynet/apache2conf/iplists/iplist-partners-24 aan&lt;br /&gt;
| 03:07&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/LDAP_cronjob.sh&lt;br /&gt;
| root&lt;br /&gt;
| Doe alle processing CRM-&amp;gt;LDAP&lt;br /&gt;
| 03:10&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/run_tripolis_import.sh &amp;gt;/var/log/run_tripolis_import.log&lt;br /&gt;
| root&lt;br /&gt;
| Haal de opt-outs op van Tripolis&lt;br /&gt;
| 03:15&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/mail_tripolis_import_report.sh&lt;br /&gt;
| root&lt;br /&gt;
| Haal de handmatige tripolis opt-outs op, en mail die naar de ledenadministratie&lt;br /&gt;
| 03:31&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/upd_mailserver.sh &amp;gt;/var/log/upd_mailserver.log&lt;br /&gt;
| root&lt;br /&gt;
| Ververs postfixadmin op mail-lb1 en mail-lb2&lt;br /&gt;
| 03:26&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/mail_upd_mail_report.sh&lt;br /&gt;
| root&lt;br /&gt;
| Mail resultaat van upd_mailserver naar Egbert&lt;br /&gt;
| 03:30&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/upload_leden_csv.sh&lt;br /&gt;
| root&lt;br /&gt;
| Maak en plaats de ledenlijst voor Kantoor&lt;br /&gt;
| 03:35&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/upload_kader_csv.sh&lt;br /&gt;
| root&lt;br /&gt;
| Maak en plaats de kaderlijst voor Kantoor&lt;br /&gt;
| 03:40&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/unblock_joomla.sh&lt;br /&gt;
| root&lt;br /&gt;
| De-blokkeer actieve users&lt;br /&gt;
| 03:45&lt;br /&gt;
| 1x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/upload_bezoekersstatistiek.sh&lt;br /&gt;
| root&lt;br /&gt;
| Haal de aantallen bezoekers, en zet die over naar de Joomla kadersite (en de beta-site)&lt;br /&gt;
| 03:47&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/run_tripolis_export.sh &amp;gt;/var/log/run_tripolis_export.log&lt;br /&gt;
| root&lt;br /&gt;
| Maak overzicht van alle opt-ins voor Tripolis&lt;br /&gt;
| 03:50&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/mail_tripolis_export_report.sh&lt;br /&gt;
| root&lt;br /&gt;
| Mail de resultaten van de Tripolis export run naar Egbert&lt;br /&gt;
| 03:52&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/renameusers_joomla.sh&lt;br /&gt;
| root&lt;br /&gt;
| Hernoem de users die hernoemd zijn in ldap in de joomla sites&lt;br /&gt;
| 03:50&lt;br /&gt;
| 1x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/statistiek_xml.sh&lt;br /&gt;
| root&lt;br /&gt;
| Maak en plaats statistiek overzicht van alle HCC groeperingen&lt;br /&gt;
| 03:55&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/cron_joomla.sh&lt;br /&gt;
| root&lt;br /&gt;
| Draai voordat update_joomla.php draait nogmaals de cron job, zodat ook in de user backup zo min mogelijk lid gegevens zitten, en dat alle sites zijn bijgewerkt aan de hand van de laatste ldap import&lt;br /&gt;
| 03:55&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| php /usr/local/hobbynet/bin/update_joomla.php&lt;br /&gt;
| root&lt;br /&gt;
| Voer dagelijkse Joomla onderhoud uit op alle Joomla template sites&lt;br /&gt;
| 04:00&lt;br /&gt;
| 1x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/run_maand_rapport.sh&lt;br /&gt;
| root&lt;br /&gt;
| Doe de Hobbynet maand rapportage&lt;br /&gt;
| 04:00&lt;br /&gt;
| 1e van de maand&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/tel_unieke_bezoekers-volgens-LDAP.sh&lt;br /&gt;
| root&lt;br /&gt;
| Bepaal het aantal unieke bezoekers volgens LDAP, mail dat aan VB&lt;br /&gt;
| 04:05&lt;br /&gt;
| 1e van de maand&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/huisgenoot_lidmaatschappen.sh&lt;br /&gt;
| root&lt;br /&gt;
| Maak een lijst van onjuiste huisgenoot-lidmaatschappen&lt;br /&gt;
| 04:10&lt;br /&gt;
| 1e van de maand&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/schoon_alles_op.sh&lt;br /&gt;
| root&lt;br /&gt;
| Schoon mySQL en LDAP op&lt;br /&gt;
| 04:05&lt;br /&gt;
| 2e van de maand&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ldap-lb2 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb2&lt;br /&gt;
| /etc/init.d/hobby-firewall restart&lt;br /&gt;
| root&lt;br /&gt;
| Herstart Firewall&lt;br /&gt;
| 06:15&amp;lt;br&amp;gt;12:15&amp;lt;br&amp;gt;18:15&amp;lt;br&amp;gt;00:15&lt;br /&gt;
| 4 x per dag &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb2&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-lb2&lt;br /&gt;
| /usr/local/hobbynet/local/backup-encrypted.bash&lt;br /&gt;
| root&lt;br /&gt;
| Encrypted backup naar Backup2bit&lt;br /&gt;
| 23:30&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ldap-test ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ldap-test&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== xml-lb1, xml-lb2 en xml-test ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| xml-lb1&lt;br /&gt;
| /etc/init.d/hobby-firewall restart&lt;br /&gt;
| root&lt;br /&gt;
| Herstart Firewall&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;12:00&amp;lt;br&amp;gt;18:00&amp;lt;br&amp;gt;00:00&lt;br /&gt;
| 4 x per dag &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| xml-lb1&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| xml-lb1&lt;br /&gt;
| /usr/local/hobbynet/local/backup-encrypted.bash &amp;gt;&amp;gt;/var/log/backup_encrypted.log&lt;br /&gt;
| root&lt;br /&gt;
| Encrypted backup naar Backup2bit&lt;br /&gt;
| 23:45&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| xml-lb2&lt;br /&gt;
| /usr/local/hobbynet/local/backup-encrypted.bash &amp;gt;&amp;gt;/var/log/backup_encrypted.log&lt;br /&gt;
| root&lt;br /&gt;
| Encrypted backup naar Backup2bit&lt;br /&gt;
| 23:30&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| xml-lb2&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| xml-test&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== userstore 1 en 2 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| userstore1 of userstore2&lt;br /&gt;
| /sbin/defragdisk&lt;br /&gt;
| root&lt;br /&gt;
| Defragmenteer de /disk partitie op de actieve storage server&lt;br /&gt;
| 03:00&lt;br /&gt;
| Elke 13e en 28e van de maand&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| userstore1 en userstore2&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| userstore1&lt;br /&gt;
| /bin/bash /root/show_jch.sh &amp;gt;/dev/null&lt;br /&gt;
| root&lt;br /&gt;
| Controleer het aantal jch bestanden (Joomla cache bestanden)&lt;br /&gt;
| 10:55&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| userstore1&lt;br /&gt;
| /usr/local/hobbynet/local/backup2bas&lt;br /&gt;
| root&lt;br /&gt;
| Backup van /disk naar nas bij Bas&amp;lt;br&amp;gt;&lt;br /&gt;
| 02:01&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| userstore1&lt;br /&gt;
| /usr/local/hobbynet/local/backup2nas&lt;br /&gt;
| root&lt;br /&gt;
| Backup van /disk naar nas in het rack&amp;lt;br&amp;gt;&lt;br /&gt;
| 06:01&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== nagios-lb1 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| nagios-lb1&lt;br /&gt;
| /usr/local/hobbynet/bin/sync_nagios&lt;br /&gt;
| root&lt;br /&gt;
| Synchroniseer nagios-lb1 naar nagios-lb2&lt;br /&gt;
| 00:00&amp;lt;br&amp;gt;06:00&amp;lt;br&amp;gt;12:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 6 x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== nagios-lb2 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== db01 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| db01&lt;br /&gt;
| /usr/local/hobbynet/bin/database-onderhoud &amp;gt;/dev/null&lt;br /&gt;
| root&lt;br /&gt;
| Database onderhoud&lt;br /&gt;
| 02:36&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== db02 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| db02&lt;br /&gt;
| /usr/local/hobbynet/bin/database-onderhoud &amp;gt;/dev/null&lt;br /&gt;
| root&lt;br /&gt;
| Database onderhoud&lt;br /&gt;
| 00:36&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== hcc-db03 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| hcc-db03&lt;br /&gt;
| /usr/local/hobbynet/bin/database-onderhoud &amp;gt;/dev/null&lt;br /&gt;
| root&lt;br /&gt;
| Database onderhoud&lt;br /&gt;
| 02:36&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== hcc-db04 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| hcc-db04&lt;br /&gt;
| /usr/local/hobbynet/bin/database-onderhoud &amp;gt;/dev/null&lt;br /&gt;
| root&lt;br /&gt;
| Database onderhoud&lt;br /&gt;
| 00:36&lt;br /&gt;
| 1 x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== backup2bit ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_db01&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 00:05&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_db02&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 12:10&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_db03&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 00:40&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_db04&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 12:10&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_domein&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 12:12&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_otrs&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 00:35&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_mail-lb1&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 00:40&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_mail-lb2&lt;br /&gt;
| root&lt;br /&gt;
| Maak database dump en Rsync databases naar backup2bit&lt;br /&gt;
| 12:40&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_server_configs&lt;br /&gt;
| root&lt;br /&gt;
| Backup server configs van alle servers&lt;br /&gt;
| 23:01&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/sync_www.hobby.nl&lt;br /&gt;
| root&lt;br /&gt;
| Sync backup.hcc.nl www.hobby.nl naar ns3&lt;br /&gt;
| 06:01&amp;lt;br&amp;gt;12:01&amp;lt;br&amp;gt;18:01&lt;br /&gt;
| 3x per dag&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_usrlocalhobbynet&lt;br /&gt;
| root&lt;br /&gt;
| Backup /usr/local/hobbynet naar /disk/backup/hobbynet&lt;br /&gt;
| 00:00&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| backup2bit&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_pxe&lt;br /&gt;
| root&lt;br /&gt;
| Backup /var/lib/tftpboot (van de PXE server) naar /disk/backup/pxe-int/pxe&lt;br /&gt;
| 23:55&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== sftp ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| sftp&lt;br /&gt;
| /usr/local/hobbynet/local/backup &amp;gt;&amp;gt;/var/log/backup.log&lt;br /&gt;
| root&lt;br /&gt;
| Backup server config naar backup2bit-int&lt;br /&gt;
| 23:45&lt;br /&gt;
| Elke dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| sftp&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==logging==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| logging&lt;br /&gt;
| apt-get clean -y &amp;gt;/dev/null ; apt-get update &amp;gt;/dev/null ;apt-get upgrade -d -y&lt;br /&gt;
| root&lt;br /&gt;
| Check op updates en download deze alvast ivm Nagios detectie&lt;br /&gt;
| 06:00&amp;lt;br&amp;gt;18:00&lt;br /&gt;
| 2 x per dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| logging&lt;br /&gt;
| /usr/local/hobbynet/bin/backup_etc&lt;br /&gt;
| root&lt;br /&gt;
| Trek een backup van de etc map, en zet die over naar backup2bit&lt;br /&gt;
| 22:00&amp;lt;br&amp;gt;&lt;br /&gt;
| Elke dag&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= alle servers =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  Server:&lt;br /&gt;
| &#039;&#039;&#039;Crontab entry&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;user&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;doel&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe laat&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;hoe vaak&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Opmerking&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| alle servers&lt;br /&gt;
| /home/bas/baskeys&lt;br /&gt;
| bas&lt;br /&gt;
| Update ssh keys voor bas&lt;br /&gt;
| &lt;br /&gt;
| Elk uur&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=78348</id>
		<title>XML-RPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=78348"/>
		<updated>2020-04-10T11:46:39Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XML-RPC interface =&lt;br /&gt;
&lt;br /&gt;
De LDAP server kan direct gemuteerd worden via een LDAP koppeling. Zie&lt;br /&gt;
de standaard LDAP pagina voor de uitleg welke poorten daarvoor gebruikt&lt;br /&gt;
kunnen worden.&lt;br /&gt;
&lt;br /&gt;
Daarnaast is er de wens ontstaan om via een standaard protocol met de&lt;br /&gt;
LDAP omgeving te kunnen communiceren. Er is hiertoe een XML-RPC&lt;br /&gt;
koppeling ontwikkeld. XML-RPC is een standaard interface, waarmee het&lt;br /&gt;
mogelijk is om vanuit diverse omgevingen op een gestandaardiseerde&lt;br /&gt;
manier te communiceren.&lt;br /&gt;
&lt;br /&gt;
== Globale functie omschrijving ==&lt;br /&gt;
* Algemene aanroepen&lt;br /&gt;
** Controleer of een gebruiker bestaat&lt;br /&gt;
** Wijzig het wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
** Zoek een gebruiker (t.b.v. kantoor en/of LA-akties groeperingssecretaris)&lt;br /&gt;
** Maak een gebruiker aan (geef gebruiker een andere hccLogin waarde, maak ook bij HCCnet deze gebruiker aan)&lt;br /&gt;
** Controleer of een gebruiker zijn profiel al doorlopen heeft&lt;br /&gt;
** Haal de lijst met opgeheven accounts op&lt;br /&gt;
** Haal de lijst met bulletins van een hcc lid (OptIn)&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. hcc partners&lt;br /&gt;
** Controleer of lidnummer/postcode correct is&lt;br /&gt;
** Controleer of lidnummer/postcode correct is, en tevens ingeschreven staat bij een specifieke IG&lt;br /&gt;
&lt;br /&gt;
* Joomla template site functies (op basis van JoomlaToken)&lt;br /&gt;
** Maak een JoomlaToken&lt;br /&gt;
** Ruim een JoomlaToken op&lt;br /&gt;
** Pas mijn OptIn (bulletin inschrijving) aan&lt;br /&gt;
** Regel alles rondom Onderwerpen en de autorisatie hiervan&lt;br /&gt;
** Pas mijn wachtwoord aan&lt;br /&gt;
&lt;br /&gt;
* Joomla kadernet site functies (op basis van JoomlaToken)&lt;br /&gt;
** Zoek een hcc kaderlid (t.b.v. de kaderleden zoekpagina)&lt;br /&gt;
** Pas mijn kadermail forwarding aan en toon ja/nee mijn GSM nummer&lt;br /&gt;
** Pas het kadernet e-mail wachtwoord aan&lt;br /&gt;
** Haal de lijst met alle groeperingen op&lt;br /&gt;
** Haal de lijst met alle kaderrollen op&lt;br /&gt;
&lt;br /&gt;
* Joomla hcc.nl site (op basis van JoomlaToken)(mijn.hcc.nl vervanging)&lt;br /&gt;
** Pas mijn adresgegevens aan&lt;br /&gt;
** Pas mijn voorletters, voornaam, pseudoniem, telefoonnummer, GSM nummer etcetera aan&lt;br /&gt;
** Schrijf me in of uit op een bulletin&lt;br /&gt;
** Toon info over de kosten van een IG lidmaatschap&lt;br /&gt;
** Voer een wachtwoord reset uit op basis van een PWResetToken (een variant op JoomlaToken)&lt;br /&gt;
** Vraag een nieuwe HCC code aan, en stuur die per SMS&lt;br /&gt;
&lt;br /&gt;
* Joomla hobby.nl site (op basis van JoomlaToken)(t.b.v. IDEAL betaling)&lt;br /&gt;
** Haal het aantal hobbyDomains op&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. CRM (Microsoft Dynamics Cloud) koppeling&lt;br /&gt;
** Haal de dagelijkse synchronisatie bestanden op&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de NAW gegevens bij&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de IG gegevens van een lid bij&lt;br /&gt;
&lt;br /&gt;
* HenZ&lt;br /&gt;
** Haal de lijst met opzeggers op&lt;br /&gt;
** Valideer de opzegdatum van een opgegeven gebruiker&lt;br /&gt;
&lt;br /&gt;
=== Authenticatie ===&lt;br /&gt;
&lt;br /&gt;
Alle aanroepen gebeuren op basis van authenticatie vanuit de aanroeper.&lt;br /&gt;
Dit valt uiteen in de volgende categorieën:&lt;br /&gt;
* gebruikersnaam (&#039;hccLogin&#039;) en wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;), Joomla token (&#039;JoomlaToken&#039;) en website (&#039;siteID&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;) en hcc code (&#039;hccCode&#039;)&lt;br /&gt;
* beheerders-DN (&#039;beheerLogin&#039;) en beheerders wachtwoord (&#039;beheerPassword&#039;)&lt;br /&gt;
* partner-DN (&#039;partnerLogin&#039;) en partner wachtwoord (&#039;partnerPassword&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Aanroepen, gedaan via de bezoekersregistratie-proxy ===&lt;br /&gt;
(de bezoekersregistratie proxy is een mislukt project tbv de Android app van René Prins)&lt;br /&gt;
(deze proxy bestaat niet meer)&amp;lt;br&amp;gt;&lt;br /&gt;
Diverse aanroepen kunnen ook via de bezoekersregistratie-proxy aangeroepen worden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
* GeefAlleGroeperingen&lt;br /&gt;
* GeefAlleKaderRollen&lt;br /&gt;
* GeefLocaties&lt;br /&gt;
* GeefLocatieNamen&lt;br /&gt;
De bezoekersregistratie aanroepen hebben &#039;JoomlaToken&#039; als extra parameter nodig:&lt;br /&gt;
* LidBezoektBijeenkomst&lt;br /&gt;
* GeefBezoekersOverzicht&lt;br /&gt;
* GeefBezoekersAantallen&lt;br /&gt;
De aanroepen die over de proxy uitgevoerd worden dienen voorafgegaan te worden door een aanroep naar&lt;br /&gt;
* GeefMijnGegevens (dit geeft na validatie immers &#039;JoomlaToken&#039; terug)&lt;br /&gt;
&lt;br /&gt;
=== Resultaten ===&lt;br /&gt;
&lt;br /&gt;
Alle aanroepen geven de volgende elementen terug:&lt;br /&gt;
* Naam van de uitgevoerde procedure (&#039;Action&#039;)&lt;br /&gt;
* Resultaat van de uitgevoerde procedure (&#039;Status&#039;)&lt;br /&gt;
* Een tekstuele vertaling van het resultaat dan wel de foutmelding (&#039;Message&#039;)&lt;br /&gt;
* Tijdens de ontwikkelfase kan er debug-info teruggeleverd worden (&#039;ExtraInfo&#039;)&lt;br /&gt;
Daarnaast geven specifieke aanroepen extra resultaten terug&lt;br /&gt;
&lt;br /&gt;
== Technische omschrijving ==&lt;br /&gt;
XML-RPC beschrijving van acties in hcc.nl LDAP database&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2020.04.10 HaVe&lt;br /&gt;
XML-RPC Hobbynet versie 64.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kort overzicht ===&lt;br /&gt;
Dit is een lijst met alle XML-RPC aanroepen. In het volgende hoofdstuk worden ze in detail besproken.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo				(partners)&lt;br /&gt;
ExpandeerPostcode               (Joomla module Bas, tbv verhuizingen)&lt;br /&gt;
GebruikerBestaatControle	(Joomla sites)&lt;br /&gt;
GeefAantalDomeinen              (Joomla module Bas)&lt;br /&gt;
GeefAlleBulletins               (Joomla module Bas)&lt;br /&gt;
GeefAlleGroeperingen		(kadersite, forum, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefAlleKaderRollen		(forum, secr. portal, kantoor portal, hobbynet portal, Joomla module Bas)&lt;br /&gt;
GeefBezoekersOverzicht		(bezoekersregistratie)&lt;br /&gt;
GeefBezoekersAantallen		(bezoekersregistratie)&lt;br /&gt;
GeefhccEindDatum		(HenZ)&lt;br /&gt;
GeefKadermailGegevens		(kantoor portal)&lt;br /&gt;
GeefLocatieNamen		(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefLocaties			(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefMijnGegevens		(Joomla inlog module Bas)&lt;br /&gt;
GeefMijnLidnummer		(beheer.hcc.nl secretaris portal)&lt;br /&gt;
GeefOnderwerpen                 (Joomla template sites)&lt;br /&gt;
GeefSSOUrls			(Joomla module Bas)&lt;br /&gt;
GeefUitgeschrevenLeden		(Joomla sites, HenZ)&lt;br /&gt;
HaalIGBedragenOp                (Joomla module Bas)&lt;br /&gt;
HaalOptInKeuzen			(kantoor portal)&lt;br /&gt;
HaalTariefGroepenOp		(kantoor portal)&lt;br /&gt;
HCCpartner			(Partner aanroep)&lt;br /&gt;
HCCpartners			(Partner aanroep)&lt;br /&gt;
IsDezeNaamNogBeschikbaar	(aangeroepen vanuit de CRM omgeving)&lt;br /&gt;
IsDezePseudoniemNogBeschikbaar	(kantoor portal)&lt;br /&gt;
IsHCCLid			(vraagbaak aanroep)&lt;br /&gt;
IsKaderLid			(in veel apps gebruikt)&lt;br /&gt;
LidBezoektBijeenkomst		(bezoekersregistratie)&lt;br /&gt;
MaakGebruikerAan		(mijnhcc.nl, maak hccnet account aan en ldap gebruikersnaam)&lt;br /&gt;
MaakOnderwerp                   (Joomla template sites)&lt;br /&gt;
MaakPWResetToken                (Joomla module Bas)&lt;br /&gt;
MuteerGroeperingSamenstelling   (Joomla kadernet module Bas)&lt;br /&gt;
MuteerOnderwerp                 (Joomla template sites)&lt;br /&gt;
MuteerOnderwerpAutorisatie      (Joomla template sites)&lt;br /&gt;
NormaliseerTelefoon             (Joomla module Bas)&lt;br /&gt;
PasHccLoginAan			(Joomla module Bas)(enkel Hobbynet)&lt;br /&gt;
PasInteressegroepAan            (Joomla module Bas)&lt;br /&gt;
PasKaderGegevensAan		(kadersite, Joomla module Bas)&lt;br /&gt;
PasOptInKeuzeAan		(Joomla module Bas)&lt;br /&gt;
PasPseudoniemAan		(Joomla module Bas)&lt;br /&gt;
PasUserWachtwoordAan		(beheer.hcc.nl Hobbynet gebruikers portal)&lt;br /&gt;
PasWachtwoordAan		(Joomla module Bas)&lt;br /&gt;
RegistreerGast			(bezoekersregistratie)&lt;br /&gt;
ResetHCCCode                    (Joomla module Bas)&lt;br /&gt;
RuimJoomlaTokenOp               (Joomla module Bas)&lt;br /&gt;
SchrijfNietlidInOpBulletin      (Joomla site bulletin module Bas)&lt;br /&gt;
SchrijfNieuwLidIn               (Joomla CRM module Bas)&lt;br /&gt;
ToonOnderwerpAutorisatie        (Joomla template sites)&lt;br /&gt;
UpdateMobiel                    (Joomla module Bas)&lt;br /&gt;
UpdateNAW                       (Joomla module Bas)&lt;br /&gt;
Upload_CSV_bestand              (CRM webproxy)&lt;br /&gt;
ValideerPWResetToken            (Joomla module Bas)&lt;br /&gt;
ValideerWachtwoordEisen		(Joomla module Bas)&lt;br /&gt;
Verwerk_JSON_mutatie            (CRM webproxy)&lt;br /&gt;
VerwijderNietLidRecord          (Joomla beheer module Bas)&lt;br /&gt;
VerwijderOnderwerp              (Joomla template sites)&lt;br /&gt;
VraagLidgegevensTokenAan	(bezoekersregistratie)&lt;br /&gt;
WijzigGebruikersGegevens	(kantoor en Joomla template sites, ww aanpassen van gebruiker)&lt;br /&gt;
ZoekGroeperingsLid		(secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
ZoekHCCLid			(VZ portal)&lt;br /&gt;
ZoekKaderLeden			(Joomla kadernet module Bas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-ldap en/of HCC-net aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** Joomla sites, www.hcc.nl **&lt;br /&gt;
// 1.1 controleer of een gebruiker bestaat - optie 1&lt;br /&gt;
// (authenticatie op basis van hccLidnr en hccCode)&lt;br /&gt;
// Alleen bedoeld om gebruikers op www.hcc.nl op basis van het lidnr het ww te laten wijzigen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GebruikerBestaatControle&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039; =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;  =&amp;gt; $hccCode,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $method,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;);&lt;br /&gt;
    if ($hccLidnr      != &#039;&#039;) { $reply[&#039;hccLidnr&#039;]      = $hccLidnr;      }&lt;br /&gt;
    if ($hccLogin      != &#039;&#039;) { $reply[&#039;hccLogin&#039;]      = $hccLogin;      }&lt;br /&gt;
    if ($hccPseudoniem != &#039;&#039;) { $reply[&#039;hccPseudoniem&#039;] = $hccPseudoniem; }&lt;br /&gt;
    if ($cn            != &#039;&#039;) { $reply[&#039;cn&#039;]            = $cn;            }&lt;br /&gt;
    if ($sn            != &#039;&#039;) { $reply[&#039;sn&#039;]            = $sn;            }&lt;br /&gt;
    if ($mail          != &#039;&#039;) { $reply[&#039;mail&#039;]          = $mail;          }&lt;br /&gt;
    if ($mailHccnet    != &#039;&#039;) { $reply[&#039;mailHccnet&#039;]    = $mailHccnet;    }&lt;br /&gt;
    if ($hccRegio      != &#039;&#039;) { $reply[&#039;hccRegio&#039;]      = $hccRegio;      }&lt;br /&gt;
    if ($hccIG         != &#039;&#039;) { $reply[&#039;hccIG&#039;]         = $hccIG;         }&lt;br /&gt;
    if ($hccRol        != &#039;&#039;) { $reply[&#039;hccRol&#039;]        = $hccRol;        }&lt;br /&gt;
    if ($ProfielBekend != &#039;&#039;) { $reply[&#039;ProfielBekend&#039;] = $ProfielBekend; }&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
// op basis van hccLidnummer en hccCode &lt;br /&gt;
// Essentiele aanroep, gebruikt vanuit mijnhcc.nl (lidnr + hccCode)&lt;br /&gt;
// Ook gebruikt t.b.v. wachtwoord-vergeten procedure op de Joomla template sites&lt;br /&gt;
// Als de profielpagina nog niet is doorlopen wordt deze aanroep afgekeurd.&lt;br /&gt;
//&lt;br /&gt;
// Ook gebruikt om gebruiker rechtstreeks vanaf Joomla template sites wachtwoord te&lt;br /&gt;
// laten aanpassen (op basis van lidnummer en hcc code)&lt;br /&gt;
//&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;            =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Gebruikersgegevens gewijzigd&#039;,&lt;br /&gt;
    &#039;hccLogin&#039; =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;cn&#039;       =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;       =&amp;gt; $sn);&lt;br /&gt;
&lt;br /&gt;
// 2.3 wijzig wachtwoord - optie 3&lt;br /&gt;
// (t.b.v. VZ-portal)&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
// * Als hccLidnr gevuld is, dan wordt hccLidnr gebruikt om het juiste record te zoeken&lt;br /&gt;
//   Als hccLidnr leeg   is, dan wordt hccLogin gebruikt om het juiste record te zoeken&lt;br /&gt;
//   1 van beide velden MOET aanwezig zijn&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;        =&amp;gt; $beheerLogin,    // beheerder lidnummer&lt;br /&gt;
      &#039;beheerPassword&#039;     =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
     [&#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,]&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. ophalen van de opt-in keuzes op de beheer pagina **&lt;br /&gt;
// 2.6 Geef de complete lijst met opt-ins van dit lid&lt;br /&gt;
// (LET OP: authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
     [&#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;       =&amp;gt; $hccLogin,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptInLijst opgehaald&#039;,&lt;br /&gt;
    &#039;hccOptIn&#039; =&amp;gt; $hccOptIn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gebruikersnaam, pseudoniem &lt;br /&gt;
//     en wachtwoord tevens in LDAP op&lt;br /&gt;
// (authenticatie op basis van hcc lidnummer en hcc-code)&lt;br /&gt;
// ** Deze gegevens worden doorgezet naar hccnet.nl (action=4) **&lt;br /&gt;
// &lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;             =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_hccLogin&#039;      =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
      &#039;nieuw_userPassword&#039;  =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem,&lt;br /&gt;
     [&#039;ServerID&#039;            =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;              =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;       =&amp;gt; &#039;Gebruiker aangemaakt&#039;,&lt;br /&gt;
    &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
    &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;       |&lt;br /&gt;
                 &#039;Gebruikersnaam bestaat al&#039;  |&lt;br /&gt;
                 &#039;Pseudoniem bestaat al&#039;      |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.3 Haal al mijn gegevens&lt;br /&gt;
// (wordt gebruikt door de Joomla inlogmodule)&lt;br /&gt;
// Voor gebruik over de proxy t.b.v. de Android app kan compact=TRUE meegegeven worden.&lt;br /&gt;
// In dat geval worden enkel de meest essentiele gegevens teruggestuurd&lt;br /&gt;
// Voor gebruik na MaakGebruikerAan kan deze functie ook op basis van hccLidnr en JoomlaToken&lt;br /&gt;
// worden aangeroepen&lt;br /&gt;
// De optionele parameter &#039;PrevSiteID&#039; is bedoeld voor single-sign-on. Op basis van JoomlaToken,&lt;br /&gt;
// hccLidnr en PrevSiteID worden dan de credentials gevalideerd. Als die kloppen, geeft deze aanroep&lt;br /&gt;
// een 2e JoomlaToken terug, maar dan uitgegeven op basis van SiteID.&lt;br /&gt;
// Als PrevSiteID leeg is, dan wordt het token op basis van siteID gevalideerd.&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,]&lt;br /&gt;
     [&#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;PrevSiteID&#039;   =&amp;gt; $PrevSiteID,]&lt;br /&gt;
     [&#039;compact&#039;      =&amp;gt; $compact,]        // leeg of &#039;TRUE&#039;&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccRegio&#039;           =&amp;gt; $hccRegio,&lt;br /&gt;
    &#039;hccIG&#039;              =&amp;gt; $hccIG,&lt;br /&gt;
    &#039;hccRol&#039;             =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;hccAutorisatie&#039;     =&amp;gt; $hccAutorisatie,&lt;br /&gt;
    &#039;cn&#039;                 =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;                 =&amp;gt; $sn,&lt;br /&gt;
    &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
   [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccPseudoniem&#039;      =&amp;gt; $hccPseudoniem,&lt;br /&gt;
    &#039;givenname&#039;          =&amp;gt; $givenname,&lt;br /&gt;
    &#039;hccAanhef&#039;          =&amp;gt; $hccAanhef,&lt;br /&gt;
    &#039;hccGeslacht&#039;        =&amp;gt; $hccGeslacht,&lt;br /&gt;
    &#039;hccTussenVoegsels&#039;  =&amp;gt; $hccTussenVoegsels,&lt;br /&gt;
    &#039;hccAchternaam&#039;      =&amp;gt; $hccAchternaam,&lt;br /&gt;
    &#039;hccStraatnaam&#039;      =&amp;gt; $hccStraatnaam,&lt;br /&gt;
    &#039;hccHuisnummer&#039;      =&amp;gt; $hccHuisnummer&lt;br /&gt;
    &#039;hccPostcode&#039;        =&amp;gt; $hccPostcode,&lt;br /&gt;
    &#039;hccWoonplaats&#039;      =&amp;gt; $hccWoonplaats,&lt;br /&gt;
    &#039;hccLand&#039;            =&amp;gt; $hccLand,&lt;br /&gt;
    &#039;hccTelefoon&#039;        =&amp;gt; $hccTelefoon,&lt;br /&gt;
    &#039;mail&#039;               =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;         =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;       =&amp;gt; $hccKaderMail, &lt;br /&gt;
    &#039;hccKaderForward&#039;    =&amp;gt; $hccKaderForward,&lt;br /&gt;
    &#039;hccKaderToonMobiel&#039; =&amp;gt; $hccKaderToonMobiel,&lt;br /&gt;
    &#039;hccOptIn&#039;           =&amp;gt; $hccOptIn,&lt;br /&gt;
    &#039;ProfielBekend&#039;      =&amp;gt; $ProfielBekend,&lt;br /&gt;
    &#039;hccBeginDatum&#039;      =&amp;gt; $hccBeginDatum,&lt;br /&gt;
   [&#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,     // in Mb&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald;]]);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de opt-in keuzes op een Joomla site **&lt;br /&gt;
// H.4 Pas 1 opt-in van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// Als hccLidnummer gevuld is, dan is dat het lidnummer waar de mutatie op moet worden uitgevoerd.&lt;br /&gt;
// Dat kan alleen als de aanvrager HCC#LAD of HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,]&lt;br /&gt;
      &#039;hccOptIn&#039;     =&amp;gt; $hccOptIn,&lt;br /&gt;
      &#039;actie&#039;        =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptIn aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
    &lt;br /&gt;
// H.5 Zoek kaderleden NAW (t.b.v. de Joomla kadersite)&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
//&lt;br /&gt;
// * Er dient minstens 1 zoekcriterium opgegeven te worden.&lt;br /&gt;
// * Als zowel hccRegio als tegelijk ook hccIG opgegeven worden is de uitkomst onvoorspelbaar.&lt;br /&gt;
// * Als compact=TRUE worden enkel lidnummer, cn en sn in het antwoord gezet&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
     [&#039;hccIG&#039;       =&amp;gt; $hccIG,]&lt;br /&gt;
     [&#039;hccRol&#039;      =&amp;gt; $hccRol,]&lt;br /&gt;
     [&#039;hccLocatie&#039;  =&amp;gt; $hccLocatie,]&lt;br /&gt;
     [&#039;achternaam&#039;  =&amp;gt; $achternaam,]&lt;br /&gt;
     [&#039;compact&#039;     =&amp;gt; $compact]));        // leeg of &#039;TRUE&#039;&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Kaderleden opgevraagd&#039;&lt;br /&gt;
    &#039;Kaderleden&#039;      =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidNummer&#039;  =&amp;gt; $hccLidNummer,&lt;br /&gt;
      &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccAanhef&#039;     =&amp;gt; $hccAanhef,&lt;br /&gt;
      &#039;givenname&#039;     =&amp;gt; $givenname,&lt;br /&gt;
      &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
      &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
      &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;]);&lt;br /&gt;
&lt;br /&gt;
// H.9 PasKaderGegevensAan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
// Om de kaderleden hun forward in te laten stellen,&lt;br /&gt;
// en tegelijkertijd de opt-in / opt-out voor hccToonMobiel te laten regelen&lt;br /&gt;
// Kan tevens het kader email wachtwoord aanpassen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;         =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;            =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;              =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;hccKaderForward&#039;     =&amp;gt; $hccKaderForward,    // &#039;&#039; | $mail | $mailHccNet&lt;br /&gt;
      &#039;hccKaderToonMobiel&#039;  =&amp;gt; $hccKaderToonMobiel, // &#039;TRUE&#039; | &#039;FALSE&#039; | &#039;NULL&#039;&lt;br /&gt;
     [&#039;nieuw_kaderPassword&#039; =&amp;gt; $nieuw_kaderPassword]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;kadergegevens aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;|&#039;Alleen kaderleden mogen deze aanroep uitvoeren&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** Portal beheer.hcc.nl&lt;br /&gt;
// ** H.10 PasUserWachtwoordAan&lt;br /&gt;
// ** Betalende Hobbynet gebruikers kunnen hiermee hun wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van hccLogin en userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;         =&amp;gt; $username,&lt;br /&gt;
      &#039;userpassword&#039;     =&amp;gt; $password,&lt;br /&gt;
      &#039;hobbynetAccount&#039;  =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;nieuw_wachtwoord&#039; =&amp;gt; $nieuw_wachtwoord,&lt;br /&gt;
      &#039;ServerID&#039;         =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;           =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;         =&amp;gt; $remoteAddr));        &lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;     |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij gebruiker $hccLogin&#039; |&lt;br /&gt;
                 &#039;Kan ww van account $hobbynetAccount niet aanpassen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.11 Pas het pseudoniem van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Pseudoniem aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039; | &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.12 Controleer of een opgegeven wachtwoord aan de minimum eisen voldoet&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Wachtwoord voldoet aan de minimale eisen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Wachtwoord voldoet niet aan de minimale eisen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit een Joomla template site kunnen gebruikers hiermee hun eigen wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van JoomlaToken, lidnummer, siteID. Extra controle via userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;userpassword&#039;       =&amp;gt; $password,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13.1 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee hun eigen wachtwoord resetten&lt;br /&gt;
// (authenticatie op basis van PWResetToken en hccLogin).&lt;br /&gt;
// (Als de aanroep geslaagd is, dan is daarna het PWResetToken ongeldig)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039;       =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.14 MaakPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee een wachtwoord reset aanvragen&lt;br /&gt;
//    Deze aanroep geeft naast het PWResetToken ook het contact emailadres mee terug,&lt;br /&gt;
//    zodat Joomla een reset-mail kan sturen&lt;br /&gt;
// (acties op basis van gebruikersnaam)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;   =&amp;gt; $username,&lt;br /&gt;
      &#039;ServerID&#039;   =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;     =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;   =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
    &#039;mail&#039;         =&amp;gt; $mail,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token aangemaakt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.15 ValideerPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers een wachtwoord reset aanvragen&lt;br /&gt;
//    Controleer dat het hier om een bestaand (en nog niet gebruikt) token gaat&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token gevonden&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;hccLogin bestaat niet&#039; | &#039;PWResetToken bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.16 Ruim een bestaand JoomlaToken op&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;JoomlaToken opgeruimd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuist JoomlaToken&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.17 GeefAantalDomeinen&lt;br /&gt;
// ** Vraag het aantal domeinen op van een betalende Hobbynet gebruiker (t.b.v. IDEAL betaling)&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;     =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;ServerID&#039;        =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;          =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;        =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
    &#039;AantalDomeinen&#039;  =&amp;gt; $aantalDomeinen,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;aantal domeinen opgevraagd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij deze gebruiker&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18 ResetHCCCode&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // geheime credentials van de site&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // geheime credentials van de site&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18.1 ResetHCCCode (hcc kantoor aanroep)&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,    // Het Joomla token van de sessie van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,       // Het lidnummer van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de hccLogin van een gebruiker (Hobbynet functie op Joomla site)  **&lt;br /&gt;
// H.19 Pas de hccLogin van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// hccLidnummer is het lidnummer waar de mutatie op moet worden uitgevoerd&lt;br /&gt;
// Kan alleen als de aanvrager HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,     // lidnummer van de aanvrager&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,  // JoomlaToken van de aanvrager&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer, // pas de hccLogin van dit lidnummer aan&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,     // dit is de gewenste nieuwe hccLogin&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;hccLogin aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039;       | &lt;br /&gt;
                 &#039;Gebruikersnaam al in gebruik&#039;);&lt;br /&gt;
&lt;br /&gt;
// 3.1 Geef mijn lidnummer&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Lidnummer opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039; =&amp;gt; $hccLidnr);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Deze gegevens worden opgevraagd bij hccnet.nl (action=3)       **&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccLogin&#039; =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Enkel voor gebruik vanaf de kantoor portal **&lt;br /&gt;
// **  t.b.v. het hernoemen van accounts in CRM  **&lt;br /&gt;
// 8.3 Controleer of een Pseudoniem op dit moment bestaat		??? NIET GEBRUIKT ??&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken zoekpagina **&lt;br /&gt;
// A.1 Zoek alle bij de query passende hcc leden&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;ZoekMethode&#039;    =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;     =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;     =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $Groepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (eerste deel van) de naam               |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | emailadres          | (eerste deel van) e-mail adres          |&lt;br /&gt;
 | gebruikersnaam      | (eerste deel van) de login naam         |&lt;br /&gt;
 | pseudoniem          | (eerste deel van) het pseudoniem        |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | niet_leden          | het volledige niet-lid lidnummer        |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
   [&#039;ExtraInfo&#039;   =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;     =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidnummer&#039;      =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;hccBeginDatum&#039;     =&amp;gt; $hccBeginDatum,&lt;br /&gt;
      &#039;hccEindDatum&#039;      =&amp;gt; $hccEindDatum,&lt;br /&gt;
      &#039;sn&#039;                =&amp;gt; $sn,&lt;br /&gt;
      &#039;givenName&#039;         =&amp;gt; $givenName,&lt;br /&gt;
      &#039;hccGeslacht&#039;       =&amp;gt; $hccGeslacht,&lt;br /&gt;
      &#039;hccStraatnaam&#039;     =&amp;gt; $hccStraatnaam,&lt;br /&gt;
      &#039;hccHuisnummer&#039;     =&amp;gt; $hccHuisnummer&lt;br /&gt;
      &#039;hccHuisToevoeging&#039; =&amp;gt; $hcchuisToevoeging,&lt;br /&gt;
      &#039;hccPostcode&#039;       =&amp;gt; $hccPostcode,&lt;br /&gt;
      &#039;hccWoonplaats&#039;     =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccLand&#039;           =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;hccTelefoon&#039;       =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;         =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;mail&#039;              =&amp;gt; $mail,&lt;br /&gt;
      &#039;mailHccnet&#039;        =&amp;gt; $mailHccnet,&lt;br /&gt;
      &#039;hccIG&#039;             =&amp;gt; $hccIG,&lt;br /&gt;
      &#039;hccRol&#039;            =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccLogin&#039;          =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;hccPseudoniem&#039;     =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ProfielBekend&#039;     =&amp;gt; &#039;TRUE&#039; | &#039;FALSE&#039;])*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. beheer.hcc.nl **&lt;br /&gt;
// A.3 Zoek alle bij de query passende hcc leden van deze groepering&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
      &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;  =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;  =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,] // Alleen voor gebruik op de&lt;br /&gt;
                                      // bijeenkomsten aanwezigheidsregistratie pagina&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (deel van) de naam                      |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | nieuwe_leden        | YYYYMMDD vanaf waar gezocht moet worden |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | kaderleden          | n.v.t.                                  |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;   =&amp;gt;&lt;br /&gt;
      [array(&lt;br /&gt;
         &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
         &#039;hccBeginDatum&#039; =&amp;gt; $hccBeginDatum,&lt;br /&gt;
         &#039;hccEindDatum&#039;  =&amp;gt; $hccEindDatum,&lt;br /&gt;
         &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
         &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
         &#039;givenName&#039;     =&amp;gt; $givenName,&lt;br /&gt;
         &#039;hccAchternaam&#039; =&amp;gt; $hccAchternaam,&lt;br /&gt;
         &#039;hccTussenVoegsels =&amp;gt; hccTussenVoegsels,  &lt;br /&gt;
         &#039;hccGeslacht&#039;   =&amp;gt; $hccGeslacht,&lt;br /&gt;
         &#039;hccStraatnaam&#039; =&amp;gt; $hccStraatnaam,&lt;br /&gt;
         &#039;hccHuisnummer&#039; =&amp;gt; $hccHuisnummer, &lt;br /&gt;
         &#039;hccPostcode&#039;   =&amp;gt; $hccPostcode,&lt;br /&gt;
         &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
         &#039;hccLand&#039;       =&amp;gt; $hccLand, &lt;br /&gt;
         &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
         &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
         &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
         &#039;mailHccnet&#039;    =&amp;gt; $mailHccnet,&lt;br /&gt;
         &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail,&lt;br /&gt;
         &#039;hccRegio&#039;      =&amp;gt; $hccRegio,&lt;br /&gt;
         &#039;hccIG&#039;         =&amp;gt; $hccIG,&lt;br /&gt;
         &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
         &#039;hccLogin&#039;      =&amp;gt; $hccLogin,&lt;br /&gt;
         &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem)]*));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) niet gevonden&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten **&lt;br /&gt;
// A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,    // lid dat aanwezig gemeld moet worden&lt;br /&gt;
     [&#039;correctie&#039;   =&amp;gt; $hccLidnr,]   // lid dat gecorrigeerd moet worden&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Bezoeker weggeschreven&#039;,&lt;br /&gt;
    &#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
      // info van deze bezoeker&lt;br /&gt;
      &#039;cn&#039;               =&amp;gt; $cn,                // cn (Verbeek, H.J.)&lt;br /&gt;
      &#039;hccGeslacht&#039;      =&amp;gt; $hccGeslacht,       // hccGeslacht van de bezoeker&lt;br /&gt;
      &#039;groeperingslid&#039;   =&amp;gt; $groeperingslid,    // TRUE of FALSE: is deze persoon lid van deze groepering&lt;br /&gt;
      &#039;mijnGroeperingen&#039; =&amp;gt; $mijnGroeperingen,  // komma-gescheiden lijst (regio, [hccIG]*)&lt;br /&gt;
      &#039;aantalBezoeken&#039;   =&amp;gt; $aantalBezoeken,    // hoe vaak heeft dit lid deze bijeenkomst bezocht&lt;br /&gt;
      // info van de bijeenkomst&lt;br /&gt;
      &#039;AantalBezoekers&#039;  =&amp;gt; $AantalBezoekers);  // aantal bezoekers van deze bijeenkomst&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.5 Vraag Lidgegevens token aan (geldig voor dit lid, en deze groepering, op deze datum)&lt;br /&gt;
// Als geen datum gegeven is, dan is het token vandaag geldig&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnummer, // vraag het token voor dit lid aan&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering,   // zoek binnen deze groepering&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]       // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;     =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;     =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;    =&amp;gt; &#039;Token opgevraagd&#039;,&lt;br /&gt;
    &#039;groepering&#039; =&amp;gt; $Groepering,&lt;br /&gt;
    &#039;token&#039;      =&amp;gt; $token,&lt;br /&gt;
    &#039;sn&#039;         =&amp;gt; $sn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.6 Toon bezoekersoverzicht&lt;br /&gt;
// (authenticatie op basis van lidnummer en bezoekersregistratie token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bezoekersoverzicht opgevraagd&#039;,&lt;br /&gt;
    &#039;Bezoekers&#039; =&amp;gt; $bezoekers,&lt;br /&gt;
   [&#039;Locatie&#039;   =&amp;gt; $Locatie]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// A.7 Geef het array met alle locaties&lt;br /&gt;
// (of beperk dit tot de locaties van de groepering $Groepering)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij hccToonInJoomla aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij ToonOpKaderNet aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocaties&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $hccGroepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;       =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;      =&amp;gt; &#039;Geen locaties gevonden voor groepering $hccGroepering&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// A.8 Registreer een niet-hcclid als bezoeker tijdens een bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RegistreerGast&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039;   =&amp;gt; $lidnr,        // credentials&lt;br /&gt;
      &#039;AccountCode&#039;   =&amp;gt; $AccountCode,  // credentials&lt;br /&gt;
      &#039;token&#039;         =&amp;gt; $token,        // credentials&lt;br /&gt;
      &#039;Bijeenkomst&#039;   =&amp;gt; $groepering,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;naam&#039;          =&amp;gt; $naam,&lt;br /&gt;
      &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;buitenland&#039;    =&amp;gt; $buitenland,&lt;br /&gt;
     [&#039;nietLidNummer&#039; =&amp;gt; $nietLidNummer,]&lt;br /&gt;
     [&#039;instructies&#039;   =&amp;gt; $instructies,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $aanroep,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid als bezoeker geregistreerd&#039;,&lt;br /&gt;
    &#039;Result&#039;  =&amp;gt; $result_array);&lt;br /&gt;
&lt;br /&gt;
// A.9 Geef het array met alle locatienamen&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;           =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locatienamen niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;          =&amp;gt; &#039;Geen locatienamen gevonden&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
// A.10 Schrijf een niet-lid in op een bulletin&lt;br /&gt;
// (2019.12.05: wordt actief gebruikt in Joomla module)&lt;br /&gt;
//      Deze aanroep mag *ook* worden gebruikt om een wel-lid in te schrijven.&lt;br /&gt;
//      Voorwaarde is dat bewezen is dat er controle bestaat over het opgegeven email adres&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
      &#039;hccOptin&#039;       =&amp;gt; $hccOptin,       // bulletin waarop ingeschreven wordt&lt;br /&gt;
      &#039;hccOptinSource&#039; =&amp;gt; $hccOptinSource, // site waar aanmelding vandaan komt&lt;br /&gt;
      &#039;Email&#039;          =&amp;gt; $Email,          // niet-lid: email adres&lt;br /&gt;
      &#039;Naam&#039;           =&amp;gt; $Naam,           // niet-lid: naam&lt;br /&gt;
     [&#039;hccLidNummer&#039;   =&amp;gt; $hccLidNummer,]  // optioneel: ik ben lid, dit is mijn lidnummer&lt;br /&gt;
     [&#039;Postcode&#039;       =&amp;gt; $Postcode,]      // optioneel: niet-lid: postcode&lt;br /&gt;
     [&#039;Huisnummer&#039;     =&amp;gt; $Huisnummer,]    // optioneel: niet-lid: huisnummer&lt;br /&gt;
     [&#039;hccGeslacht&#039;    =&amp;gt; $hccGeslacht,] // optioneel: niet-lid: geslacht (M/V/O)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Inschrijving op bulletin gelukt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                   &#039;Gegevenscombinatie onjuist&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid DN syntax&#039;    |&lt;br /&gt;
                   &#039;Invalid credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.11 Toon bezoekers aantallen&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]      // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;BezoekersAantallen opgevraagd&#039;,&lt;br /&gt;
    &#039;Datum&#039;       =&amp;gt; $datum,&lt;br /&gt;
    &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,&lt;br /&gt;
    &#039;Bezoekers&#039;   =&amp;gt; array(&lt;br /&gt;
      [HCC!seniorenacademie] =&amp;gt; Array(&lt;br /&gt;
        [Gorinchem] =&amp;gt; 15&lt;br /&gt;
        [Woerden]   =&amp;gt; 36)&lt;br /&gt;
      ...));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.12 GeefAlleBulletins&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Bulletins opgevraagd&#039;,&lt;br /&gt;
    &#039;bulletins&#039;       =&amp;gt; $bulletins);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.13 ExpandeerPostcode&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Postcode opgevraagd&#039;,&lt;br /&gt;
    &#039;detailgegevens&#039;  =&amp;gt; $detailgegevens);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.25 UpdateNAW&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateNAW&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;toevoeging&#039;    =&amp;gt; $toevoeging,&lt;br /&gt;
      &#039;straat&#039;        =&amp;gt; $straat,&lt;br /&gt;
      &#039;woonplaats&#039;    =&amp;gt; $woonplaats,&lt;br /&gt;
      &#039;landcode&#039;      =&amp;gt; $landcode,&lt;br /&gt;
      &#039;email&#039;         =&amp;gt; $email,&lt;br /&gt;
      &#039;voornaam&#039;      =&amp;gt; $voornaam,&lt;br /&gt;
      &#039;voorletters&#039;   =&amp;gt; $voorletters,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateContactGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Contactgegevens bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.18 NormaliseerTelefoon&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLand&#039;        =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Telefoonnummer genormaliseerd&#039;,&lt;br /&gt;
    &#039;Telefoonnummer&#039;  =&amp;gt; $Telefoonnummer);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.20 UpdateMobiel&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateMobiel&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateMobiel&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Mobiel nummer bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.21 HaalIGBedragenOp&lt;br /&gt;
//      Geef alle IG&#039;s waar je zelf lid van kunt worden, inclusief het bijbehorende bedrag&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Interessegroepen en bedragen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.22 HaalTariefGroepenOp&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Tariefgroepen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.23 PasInteressegroepAan&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;nieuw&#039;         =&amp;gt; $IG_lijst_nieuw,]&lt;br /&gt;
     [&#039;weg&#039;           =&amp;gt; $IG_lijst_weg,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;IG keuzen aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.24 GeefSSOUrls&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;SSO_urls&#039;        =&amp;gt; $sso_urls,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Single Sign On URLs opgevraagd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken beheer pagina **&lt;br /&gt;
// A.26 Verwijder een niet-lid record&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnummer,   // het te verwijderen niet-lid nummer&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Niet-lid record verwijderd&#039;,&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid record niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VerwijderNietLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** HenZ **&lt;br /&gt;
// ** t.b.v. daily cron job  **&lt;br /&gt;
// ** t.b.v. dagelijkse opschoon jobs Joomla template sites **&lt;br /&gt;
// C.1 Vraag de lijst met uitgeschreven leden op&lt;br /&gt;
//     Dit kan beperkt worden tot een bepaalde regio of interessegroep&lt;br /&gt;
//     Daarnaast kan het tijdvak waarin gezocht wordt vrij gekozen worden&lt;br /&gt;
//     (gesteld dat de LDAP database nog leden uit die periode bevat)&lt;br /&gt;
//     Antwoord: lijst met (lidnummer, hccLogin, sn,&lt;br /&gt;
//                          datum einde lidmaatschap (formaat:YYYYMMDD))&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; GeefUitgeschrevenLeden &amp;lt;== (oud: GeefOpgezegdeLeden)&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccRegio&#039;       =&amp;gt; $hccRegio,    // of leeg&lt;br /&gt;
      &#039;hccIg&#039;          =&amp;gt; $hccIg,       // of leeg&lt;br /&gt;
      &#039;datum_vanaf&#039;    =&amp;gt; $datum_sinds, // YYYY-MM-DD of YYYYMMDD of leeg (leeg: 3 dagen geleden)&lt;br /&gt;
      &#039;datum_tot&#039;      =&amp;gt; $datum_tot,   // YYYY-MM-DD of YYYYMMDD of leeg (leeg: vandaag)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Uitgeschreven leden&#039;,&lt;br /&gt;
   [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
   [&#039;hccIg&#039;       =&amp;gt; $hccIg,]&lt;br /&gt;
   [&#039;datum_vanaf&#039; =&amp;gt; $datum_vanaf,]&lt;br /&gt;
   [&#039;datum_tot&#039;   =&amp;gt; $datum_tot,]&lt;br /&gt;
   [&#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
     [array(&lt;br /&gt;
        &#039;hccLogin&#039;               =&amp;gt; $hccLogin,&lt;br /&gt;
        &#039;hccLidNummer&#039;           =&amp;gt; $hccLidnummer,&lt;br /&gt;
        &#039;sn&#039;                     =&amp;gt; $sn,&lt;br /&gt;
        &#039;DatumEindeLidmaatschap&#039; =&amp;gt; $DatumEindeLidmaatschap)]*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCCpartner aanroepen ===&lt;br /&gt;
(interface versie 1)&amp;lt;br&amp;gt;&lt;br /&gt;
(oude interface, niet meer gebruiken!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.1 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    array(&#039;partnerLogin&#039;,    $partnerLogin),&lt;br /&gt;
    array(&#039;partnerPassword&#039;, $partnerPassword),&lt;br /&gt;
    array(&#039;hccLidnummer&#039;,    $hcclidnummer),&lt;br /&gt;
    array(&#039;postcode&#039;,        $postcode)));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;TRUE&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;FALSE&#039;));&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Onjuiste credentials&#039;));&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
     &#039;HCCpartner&#039;,&lt;br /&gt;
     array(&lt;br /&gt;
       &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
       array(&#039;parameter&#039;, $iets)));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;OnbekendeAanroep&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Opdracht onbekend&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCCpartners aanroepen ===&lt;br /&gt;
(interface versie 2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.2 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;          =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
      &#039;partnerLogin&#039;    =&amp;gt; $partnerLogin,&lt;br /&gt;
      &#039;partnerPassword&#039; =&amp;gt; $partnerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hcclidnummer,&lt;br /&gt;
      &#039;postcode&#039;        =&amp;gt; $postcode,&lt;br /&gt;
     [&#039;ServerID&#039;        =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;          =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;        =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;groepering=$groepering&#039;]); // als de partner beperkt is tot 1 groepering&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;FALSE&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;    =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
      &#039;parameter&#039; =&amp;gt; $iets));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Opdracht onbekend&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-kader aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** beheer.hcc.nl **&lt;br /&gt;
// F.2 Controleer of dit een kaderlid is&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsKaderLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Is kaderlid&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;cn&#039;              =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;              =&amp;gt; $sn,&lt;br /&gt;
    &#039;hccRol&#039;          =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;mail&#039;            =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;      =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;    =&amp;gt; $hccKaderMail,&lt;br /&gt;
    &#039;hccKaderForward&#039; =&amp;gt; $hccKaderForward);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Is geen kaderlid&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.4 Vraag alle groeperingen op&lt;br /&gt;
// Het is mogelijk om een groepering te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  ToonInOverzichtenFilter : attribuut &#039;hccToonInOverzichten&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  BulletinsFilter         : attribuut &#039;hccBulletins&#039;&lt;br /&gt;
//  EmailFilter             : attribuut &#039;hccFunctionalEmail&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;                =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;                  =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;                =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;          =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;BulletinsFilter&#039;         =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;EmailFilter&#039;             =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;&#039; | &#039;TRUE&#039;));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;                  =&amp;gt; &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    &#039;Status&#039;                  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;                 =&amp;gt; &#039;Lijst met groeperingen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;                  =&amp;gt; $groeperingen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;          =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.5 Vraag alle kaderrollen op&lt;br /&gt;
// Het is mogelijk om een kaderrol  te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Lijst met kaderrollen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;             =&amp;gt; $kaderrollen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de kantoor-beheerpagina **&lt;br /&gt;
// F.9 Geef de gevevens van de mailbox van dit kaderlid&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;     =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039;  =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039;));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de Joomla Kadernet module **&lt;br /&gt;
//  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID en als extra hccCode van de aanvrager)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccCode&#039;        =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
      &#039;hccLidnummer    =&amp;gt; $hccLidnummer, // lidnummer van het te muteren hcc lid&lt;br /&gt;
      &#039;hccRol&#039;         =&amp;gt; $hccRol,       // de nieuwe dan wel op te heffen rol&lt;br /&gt;
                                         // de rol &#039;ALLES_WEG&#039; ruimt alle rollen van dit hcc lid voor deze groepering op&lt;br /&gt;
      &#039;actie&#039;          =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Groepering samenstelling aangepast&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Bedankmail gestuuurd aan ex-kaderlid&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Oude rol niet gevonden&#039; |&lt;br /&gt;
		   &#039;Nieuwe rol kan niet samen met bestaande rol&#039; |&lt;br /&gt;
		   &#039;Alleen voorzitter of secretaris kan kadermutaties uitvoeren&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-groepering aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// I.2 controleer of een gebruiker bestaat op basis van de combinatie&lt;br /&gt;
//     lidnummer + postcode + huisnummer&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
// (alternatieve authenticatie mogelijk door lidnummer + hcc-code in te vullen)&lt;br /&gt;
//&lt;br /&gt;
// Aan de aanroeper worden zekere eisen gesteld:&lt;br /&gt;
// * dient een rol te vervullen binnen de groepering &#039;FOR&#039;(forum)&lt;br /&gt;
// * dan wel dient de rol &#039;VRBK&#039; (vraagbaak) te vervullen binnen een groepering&lt;br /&gt;
//&lt;br /&gt;
// Er wordt door de gehele leden-database gezocht, waarna terug wordt gegeven &lt;br /&gt;
// * of dit hcc lid inderdaad bestaat&lt;br /&gt;
// en, als het om een aanvraag van een vraagbaak vrijwilliger gaat, &lt;br /&gt;
// * tevens of het gezochte hcc lid deel uitmaakt van zijn groepering&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;        =&amp;gt; [$hccLogin | $hccLidnummer],&lt;br /&gt;
      &#039;userPassword&#039;    =&amp;gt; [$userPassword | $hccCode],&lt;br /&gt;
      &#039;zoekhccLidnr&#039;    =&amp;gt; $zoekhccLidnr,&lt;br /&gt;
      &#039;zoekhccPostcode&#039; =&amp;gt; $zoekhccPostcode,&lt;br /&gt;
      &#039;zoekhccHuisnr&#039;   =&amp;gt; $zoekhccHuisnr,&lt;br /&gt;
      &#039;zoekgroepering&#039;  =&amp;gt; $zoekgroepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens gecontroleerd&#039;,&lt;br /&gt;
   [&#039;Groeperingslid&#039; =&amp;gt; $IsGroeperingLid]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker bestaat niet&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Wel HCC lid, maar geen lid van groepering $groepering&#039; |&lt;br /&gt;
                 &#039;Onvoldoende rechten&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HenZ aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// I.3 Geef de einddatum van een actief dan wel uitgeschreven lid&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
    &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccEindDatum&#039; =&amp;gt; $hccEindDatum (&#039;yyyymmdd&#039; | &#039;&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;Lidnummer niet gevonden&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== (Forum,vraagbaak) onderwerpen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// L.1 MaakOnderwerp&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is aangemaakt&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.2 VerwijderOnderwerp&lt;br /&gt;
&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is verwijderd&#039;,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039;            |&lt;br /&gt;
                   &#039;Geen webmaster&#039;                 |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;         |&lt;br /&gt;
		   &#039;Ruim eerst alle geautoriseerde gebruikers op&#039; |&lt;br /&gt;
		   &#039;Kan onderwerp niet verwijderen&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.3 GeefOnderwerpen &lt;br /&gt;
// Geef het array met de lijst van onderwerpen voor de betreffende groepering&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerpen opgevraagd&#039;,&lt;br /&gt;
    &#039;onderwerpen&#039; =&amp;gt; $onderwerpen); // het array met onderwerpen&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.4 MuteerOnderwerp&lt;br /&gt;
// Pas de description van een onderwerp aan&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
   &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
   array(&lt;br /&gt;
     &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
     &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
     &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
     &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     &#039;groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
     &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
     &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp aangepast&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039; |&lt;br /&gt;
		   &#039;Onderwerp behoort bij andere groepering&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
// Geef kaderlid $kaderLidNr de autorisatie MOD, VRBK of RED bij onderwerp $onderwerp&lt;br /&gt;
// (of haal die autorisatie weg)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
    &#039;onderwerp&#039;      =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;kaderLidNr&#039;     =&amp;gt; $kaderLidNr,&lt;br /&gt;
    &#039;hccAutorisatie&#039; =&amp;gt; &#039;MOD&#039; | &#039;VRBK&#039; | &#039;RED&#039;,&lt;br /&gt;
   [&#039;verwijder&#039;      =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp autorisatie aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Onjuiste autorisatie opgegeven&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Autorisaties opgehaald&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;    =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039;  =&amp;gt; $description,&lt;br /&gt;
    &#039;autorisaties&#039; =&amp;gt; &lt;br /&gt;
      [Array(&lt;br /&gt;
        &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer&lt;br /&gt;
        &#039;cn&#039;              =&amp;gt; $cn&lt;br /&gt;
        &#039;hccAutorisatie&#039;  =&amp;gt; {komma-gescheiden autorisaties})]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Dynamics Cloud (Cayentis) onderwerpen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// M.1 Upload_CSV_bestand&lt;br /&gt;
// De CRM proxy upload de dagelijkse CSV synchronisatie-bestanden naar de XML-RPC server&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;      =&amp;gt; $beheerLogin,     // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039;   =&amp;gt; $beheerPassword,  // xml-rpc password&lt;br /&gt;
    &#039;CSV_bestand_type&#039; =&amp;gt; &#039;1&#039; | &#039;2&#039; | &#039;3&#039; , // 1=Contactpersonen/Hoofdlidmaatschappen&lt;br /&gt;
                                            // 2=Gremiumlidmaatschap codes&lt;br /&gt;
                                            // 3=Gremiumlidmaatschappen&lt;br /&gt;
    &#039;CSV_bestand&#039;      =&amp;gt; $CSV_bestand));   // het CSV bestand (base64 encoded)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bestand opgeslagen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.2 SchrijfNieuwLidIn&lt;br /&gt;
// &lt;br /&gt;
// Maak in het CRM een nieuw HCC lid aan&lt;br /&gt;
// De NAW gegevens worden in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;NAWgegevens&#039;    =&amp;gt; $NAW_Array,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress);&lt;br /&gt;
// $NAW_array = array(&lt;br /&gt;
//   &#039;GeboorteDatum&#039;         =&amp;gt; $geboortedatum,&lt;br /&gt;
//   &#039;Geslacht&#039;              =&amp;gt; $geslacht,&lt;br /&gt;
//   &#039;Voornaam&#039;              =&amp;gt; $voornaam,&lt;br /&gt;
//   &#039;Voorletters&#039;           =&amp;gt; $voorletters,&lt;br /&gt;
//   &#039;Tussenvoegsel&#039;         =&amp;gt; $tussenvoegsel,&lt;br /&gt;
//   &#039;Achternaam&#039;            =&amp;gt; $achternaam,&lt;br /&gt;
//   &#039;Straatnaam&#039;            =&amp;gt; $straatnaam,&lt;br /&gt;
//   &#039;Huisnummer&#039;            =&amp;gt; $huisnummer,&lt;br /&gt;
//   &#039;HuisnummerToevoeging&#039;  =&amp;gt; $huisnummertoevoeging,&lt;br /&gt;
//   &#039;Woonplaats&#039;            =&amp;gt; $woonplaats,&lt;br /&gt;
//   &#039;Postcode&#039;              =&amp;gt; $postcode,&lt;br /&gt;
//   &#039;Land&#039;                  =&amp;gt; $land,&lt;br /&gt;
//   &#039;Telefoonnummer&#039;        =&amp;gt; $telefoonnummer,&lt;br /&gt;
//   &#039;MobielNummer&#039;          =&amp;gt; $mobielnummer,&lt;br /&gt;
//   &#039;Mail&#039;                  =&amp;gt; $mail,&lt;br /&gt;
//   &#039;IBAN&#039;                  =&amp;gt; $IBAN,&lt;br /&gt;
//   &#039;Interessegroep&#039;        =&amp;gt; $IGs, // komma-gescheiden lijst met IG&#039;s&lt;br /&gt;
//   &#039;Geschenk&#039;              =&amp;gt; $geschenk,&lt;br /&gt;
//   &#039;Actiecode&#039;             =&amp;gt; $actiecode,&lt;br /&gt;
//   &#039;Voorwaarden&#039;           =&amp;gt; $Akkoord); // &#039;Akkoord&#039;&lt;br /&gt;
)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;nieuw lid ingeschreven&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;  =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccCode&#039;   =&amp;gt; $hccCode);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.3 Verwerk_JSON_mutatie&lt;br /&gt;
// De CRM proxy kan NAW en/of IG mutaties en/of hccCode mutaties live doorgeven&lt;br /&gt;
// Deze gegevens worden in JSON in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;mutatie_type&#039;   =&amp;gt; &#039;1&#039; | &#039;2&#039;,       // 1=Contactpersoon/Hoofdlidmaatschap&lt;br /&gt;
                                         // 2=Gremiumlidmaatschap&lt;br /&gt;
    &#039;JSON_mutatie&#039;   =&amp;gt; $JSON_mutatie)); // de JSON payload&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Mutatie verwerkt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.4 Vertaal landcode&lt;br /&gt;
// Het CRM werkt met numerieke landcodes, wij met cijfers&lt;br /&gt;
// Vertaal die&lt;br /&gt;
// Er moet in de aanroep 1 veld aanwezig zijn, beide waarden komen in het antwoord terug&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ISO_landcode&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    [&#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,]&lt;br /&gt;
    [&#039;ISO_code   &#039;  =&amp;gt; $ISO_code]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;ISO code lookup geslaagd&#039;,&lt;br /&gt;
    &#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,&lt;br /&gt;
    &#039;ISO_code   &#039;  =&amp;gt; $ISO_code,&lt;br /&gt;
    &#039;ISO_benaming&#039; =&amp;gt; $ISO_benaming); // de descriptive name van deze ISO code&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Kan geen bijpassende vertaling vinden&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
// M.5 MuteerAanmeldingsformulier&lt;br /&gt;
// Sla een JSON veld op in de XML-RPC server zodat deze weer opgehaald kan worden door de websites&lt;br /&gt;
// Authenticatie op basis van hccLidnummer en JoomlaToken&lt;br /&gt;
// Deze mutaties mogen alleen door HN#WM of SITE#WM gedaan worden.&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    MuteerAanmeldingsformulier,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;formulierdata&#039; =&amp;gt; $formulierdata, // JSON veld met alle gegevens voor het aanmeld formulier&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress ));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;MuteerAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;aanmeldingsformulier bijgewerkt&#039;;&lt;br /&gt;
 &lt;br /&gt;
// M.6 HaalAanmeldingsformulier&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    HaalAanmeldingsformulier,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;HaalAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;formulierdata&#039; =&amp;gt; $formulierdata); // JSON veld met alle gegevens voor het aanmeld formulier &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// M.7 GeefFactuurOverzicht&lt;br /&gt;
// (authenticatie op basis van hccLidnummer + JoomlaToken + siteID&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    GeefFactuurOverzicht,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),]&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID, &lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;           =&amp;gt; &#039;GeefFactuurOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;           =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;FactuurOverzicht&#039; =&amp;gt; $FactuurOverzicht); &lt;br /&gt;
//  $FactuurOverzicht =&lt;br /&gt;
//     array(&lt;br /&gt;
//       array(&lt;br /&gt;
//         &#039;FactuurID&#039;     =&amp;gt; &#039;a5b93460-4536-ea11-a813-000d3a2c53fa&#039;,&lt;br /&gt;
//         &#039;FactuurNummer&#039; =&amp;gt; &#039;200118673J5&#039;&lt;br /&gt;
//         &#039;FactuurDatum&#039;  =&amp;gt; &#039;2020-01-15&#039;&lt;br /&gt;
//         &#039;bedrag&#039;        =&amp;gt; 42.37&lt;br /&gt;
//         &#039;BetaalStatus&#039;  =&amp;gt; 0]));&lt;br /&gt;
//     )&lt;br /&gt;
&lt;br /&gt;
// M.8 HaalFactuur&lt;br /&gt;
// (authenticatie op basis van JoomlaToken of FactuurToken)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    HaalFactuur,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;FactuurToken&#039;  =&amp;gt; $FactuurToken,]&lt;br /&gt;
      &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalFactuur&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;factuur&#039; =&amp;gt; $factuurgegevens); &lt;br /&gt;
//  $factuurgegevens =&lt;br /&gt;
//    array(&lt;br /&gt;
//         &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
//         &#039;FactuurDatum&#039;  =&amp;gt; $FactuurDatum,&lt;br /&gt;
//         &#039;FactuurID&#039;     =&amp;gt; $FactuurID,&lt;br /&gt;
//         &#039;Bestandsnaam&#039;  =&amp;gt; $Bestandsnaam,&lt;br /&gt;
//         &#039;PDF&#039;           =&amp;gt; $PDF) // base64 encoded PDF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Echo test ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// t.b.v. controle of de verbinding met de XML-RPC server functioneert&lt;br /&gt;
// Eenvoudige echo test&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;echo&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;What&#039;     =&amp;gt; $string,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;echo&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; $string);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HenZ XML-RPC interface ===&lt;br /&gt;
&lt;br /&gt;
Overzicht van XML-RPC procedures die bij HenZ draaien&lt;br /&gt;
(worden via de Hobbynet XML-RPC server afgehandeld)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- Action=2&lt;br /&gt;
  wijzig gebruikersnaam en wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=3&lt;br /&gt;
  controleer of een gebruikersnaam bestaat&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.2)&lt;br /&gt;
&lt;br /&gt;
- Action=4&lt;br /&gt;
  creer een nieuwe gebruiker. Per lidnummer is er 1 account. Als er al een &lt;br /&gt;
  account voor dit lidnummer bestaat wordt het bestaande account hernoemd.&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.1)&lt;br /&gt;
&lt;br /&gt;
- Action=5&lt;br /&gt;
  wijzig wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=7&lt;br /&gt;
  Uitgeschreven lid is weer actief lid geworden&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&lt;br /&gt;
- Action=8&lt;br /&gt;
  Lid heeft een nieuwe hcc-code gekregen&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Release notes ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2012.02.08 Wijzigingen versie 5:&lt;br /&gt;
 - 4.1 verwijder_hcc_Lidnummer i.p.v. hcc_Lidnummer&lt;br /&gt;
 - 4.1 optionele extra parameter verwijder_hccLogin&lt;br /&gt;
 - Optionele parameters aangegeven&lt;br /&gt;
 - Vanwege de duidelijkheid de beheerLogin en beheerPassword velden&lt;br /&gt;
   bovenin de betreffende aanroepen gezet&lt;br /&gt;
   (De volgorde van de parameters is niet relevant, dus dit is geen&lt;br /&gt;
    interface-aanpassing)&lt;br /&gt;
2012.02.16 Wijzigingen versie 6:&lt;br /&gt;
 - 2.1/2.2/2.3 geef ook cn en sn terug na aanpassen van het wachtwoord&lt;br /&gt;
 - 3.1 geef cn en sn terug na aanmaken nieuwe gebruiker&lt;br /&gt;
2012.02.27 Wijzigingen versie 7:&lt;br /&gt;
 - Neem de XML-RPC interface van HenZ in deze XML-RPC server op&lt;br /&gt;
   8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gegevens tevens in LDAP op&lt;br /&gt;
 - 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.2 wijzig wachtwoord, optie 2&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * gebruikersnaam kan niet meer via deze interface aangepast worden&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.3 wijzig wachtwoord, optie 3&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
2012.03.26 Wijzigingen versie 8:&lt;br /&gt;
  - Breidt de XML-RPC interface van HenZ in deze XML-RPC server uit met&lt;br /&gt;
    8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
2012.04.09 Wijzigingen versie 9:&lt;br /&gt;
 - Vervang alle &#039;ldap&#039; aanroepen door &#039;HCCldap&#039; aanroepen&lt;br /&gt;
 - documentatie van HenZ call action=2 aangepast, action=5 toegevoegd&lt;br /&gt;
2012.05.03 Wijzigingen versie 10:&lt;br /&gt;
 - 1.1 / 1.2 / 1.3 geven nu ook &#039;ProfielBekend&#039; terug om uniek te bepalen&lt;br /&gt;
   of deze bezoeker een first-time-login pagina te zien dient te krijgen&lt;br /&gt;
 - documentatie van 2.1 (wijzig wachtwoord) aangepast: &lt;br /&gt;
   2.1 kan alleen als profiel is doorlopen&lt;br /&gt;
 - nieuwe procedure t.b.v. zoekscherm PC30&lt;br /&gt;
   * A.1 ZoekHCCLid &lt;br /&gt;
     - hiervoor is de database met diverse velden uitgebreid&lt;br /&gt;
       (postcode, e-mailadres, huisadres, woonplaats, land, telefoonnummer)&lt;br /&gt;
       Dit heeft impact op diverse andere procedures (t.b.s.)&lt;br /&gt;
 - nieuwe procedure t.b.v. &#039;gewone&#039; profielpagina&lt;br /&gt;
   * B.1 GeefDBFPersoonID&lt;br /&gt;
 - nieuwe procedure t.b.v. cron-job&lt;br /&gt;
   * C.1 GeefOpgezegdeLeden&lt;br /&gt;
2012.05.10 Wijzigingen versie 11&lt;br /&gt;
 - 1.3 GebruikerBestaatControle&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
   * nieuw veld in antwoord: hccPseudoniem&lt;br /&gt;
 - 2.3 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 2.4 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * nieuwe parameter: nieuw_hccPseudoniem&lt;br /&gt;
   * alle parameters zijn verplicht (niet langer optioneel)&lt;br /&gt;
   * nieuw antwoord: Gegevenscombinatie onjuist&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * Nieuwe procedure t.b.v. 1e keer doorlopen profielpagina&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * &#039;Zoeklimiet bereikt&#039; wordt als ExtraInfo meegegeven&lt;br /&gt;
   * nieuwe velden in antwoord: hccPseudoniem en hccLogin&lt;br /&gt;
 - B.1 GeefDBFPersoonID&lt;br /&gt;
   * Zoeken kan nu ook op hccLogin en op hccPseudoniem&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden&lt;br /&gt;
   * Geef nu ook hccLogin en hccPseudoniem terug&lt;br /&gt;
2012.05.14 Wijzigingen versie 12&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook DBFPersoonID terug&lt;br /&gt;
 - 4.1 Gooi een gebruiker weg.&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 5.1 Wijzig hccIG&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 6.1 Wijzig hccRegio&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 7.1 Wijzig hccRol&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
2012.05.20 Wijzigingen versie 13&lt;br /&gt;
 - A.1 ZoekHCCLid &lt;br /&gt;
   * Geef resultaten gestructureerder formaat&lt;br /&gt;
   * Geef in ExtraInfo weer hoeveel echte resultaten er gevonden zijn&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef resultaten in gestructureerder formaat&lt;br /&gt;
2012.06.03 Wijzigingen versie 14&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * Geef ook DBFPersoonID mee&lt;br /&gt;
2012.08.17 Wijzigingen versie 15&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef ook hccLogin in het antwoord terug&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.09.29 Wijzigingen versie 16&lt;br /&gt;
 - Alle cron gerelateerde opdrachten verwijderd&lt;br /&gt;
   * 3.1 NieuweGebruiker&lt;br /&gt;
   * 4.1 GooiGebruikerWeg&lt;br /&gt;
   * 5.1 WijzigHccIG&lt;br /&gt;
   * 6.1 WijzigHccRegio&lt;br /&gt;
   * 7.1 WijzigHccRol&lt;br /&gt;
2012.10.28 Wijzigingen versie 17&lt;br /&gt;
 - nieuwe procedure t.b.v. PC30 beheerpagina&lt;br /&gt;
   * A.2 HaalPC30Token&lt;br /&gt;
 - nieuwe procedure t.b.v. Drupal profielpagina&lt;br /&gt;
   * 2.4 vervallen &lt;br /&gt;
     (WijzigGebruikersGegevens op basis van pseudoniem)&lt;br /&gt;
   * 2.5 WijzigGebruikersGegevens&lt;br /&gt;
     Nieuwe keuze: wijzig pseudoniem&lt;br /&gt;
2012.11.14 Wijzigingen versie 18&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook mail in het antwoord terug&lt;br /&gt;
2012.11.30 Wijzigingen versie 19&lt;br /&gt;
 - E.1 HCCkader/WijzigGebruikersGegevens&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.1 / F.2 / F.3 ControleerKaderlid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.12.18 Wijzigingen versie 20&lt;br /&gt;
 - Haal DBFPersoonID weg uit alle aanroepen en alle resultaten&lt;br /&gt;
   * Antwoord van 1.x GebruikerBestaatControle&lt;br /&gt;
   * B.1 GeefDBFPersoonID opgeheven&lt;br /&gt;
 - A.1 ZoekHCCLid geeft nu ook hccMobiel terug (t.b.v. PC30 zoekpagina)&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden verder uitgewerkt:&lt;br /&gt;
   * Geeft alleen de door Drupal gebruikte velden &#039;hccLogin&#039; en &#039;hccEindDatum&#039;&lt;br /&gt;
     terug in het antwoord&lt;br /&gt;
   * Geeft nu &#039;echte&#039; antwoorden i.p.v. dummy resultaten&lt;br /&gt;
 - F.1 ControleerKaderlid geeft nu ook optioneel &#039;sn&#039; en &#039;givenName&#039; &lt;br /&gt;
     terug (in de beheer-variant)&lt;br /&gt;
2013.01.25 Wijzigingen versie 21&lt;br /&gt;
 - A.1 ZoekHCCLid uitgebreid&lt;br /&gt;
   * Geeft nu ook hccBeginDatum, hccEindDatum en hccRol terug&lt;br /&gt;
2013.02.02 Wijzigingen versie 22&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * Interface aangepast&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2013.03.01 Wijzigingen versie 23&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Geeft andere resultaten terug&lt;br /&gt;
 - 2.2 WijzigWachtwoord&lt;br /&gt;
   * Geeft nu ook hccLogin terug (voor ww-vergeten op de Drupal site)&lt;br /&gt;
 - HCCenquete implementatie&lt;br /&gt;
   * G.1 Expandeer NL postcode&lt;br /&gt;
   * G.2 Haal lidgegevens op&lt;br /&gt;
   * G.3 Pas lidgegevens aan&lt;br /&gt;
2013.03.18 Wijzigingen versie 24&lt;br /&gt;
 - ZoekGroeperingsLid op basis van token&lt;br /&gt;
 - A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - A.5 VraagLidgegevensTokenAan&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2013.04.07 Wijzigingen versie 25&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   Simpeler interface ontwikkeld (&#039;HCCpartners&#039; i.p.v. &#039;HCCpartner&#039;)&lt;br /&gt;
 - G.3 mag ook Tussenvoegsels aanpassen&lt;br /&gt;
2013.04.25 Wijzigingen versie 26&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   Nieuwe interface voor validatie vanaf groeperings websites&lt;br /&gt;
2013.05.03 Wijzigingen versie 27&lt;br /&gt;
 - 2.6 HaalOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.8 HaalOptInLijst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - HCCpartners aanroep nieuwe interface (&#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;)&lt;br /&gt;
2013.07.05 Wijzigingen versie 28&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * extra parameters (mail, hccPseudoniem) in het antwoord&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
2013.08.31 Wijzigingen versie 29&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / ControleerKaderlid&lt;br /&gt;
   * extra output parameter (hccKaderMail)&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccForumLogin)&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   * komma-gescheiden lijst met groeperingen mogelijk&lt;br /&gt;
   * extra output parameter (mailHccnet)&lt;br /&gt;
2013.12.26 Wijzigingen versie 30&lt;br /&gt;
 - 3.1 Geef mijn lidnummer&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * geef nu ook &#039;ProfielBekend&#039; terug om aan de PC30 omgeving door te geven&lt;br /&gt;
     dat het wachtwoord niet veranderd mag worden door PC30&lt;br /&gt;
 - A.6 GeefBezoekersOverzicht&lt;br /&gt;
   * geef nu ook &#039;Locatie&#039; terug indien van toepassing&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * parameters aangepast&lt;br /&gt;
   * authenticatie op basis van hccLogin + userPassword of lidnummer + hcc-code&lt;br /&gt;
   * geen algemene hcc-forum authenticatie meer mogelijk&lt;br /&gt;
 - F.7 ControleerKaderlidGroep&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2014.02.01 Wijzigingen versie 31&lt;br /&gt;
 - A.8 RegistreerGast&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - nieuwe interface (losse, unieke aanroepen, niet meer gegroepeerd)&lt;br /&gt;
2014.09.27 Wijzigingen versie 32&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden hernoemd naar GeefUitgeschrevenLeden&lt;br /&gt;
 - I.3 GeefhccEindDatum&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - Action=7 en Action=8 toegevoegd aan de HenZ interface&lt;br /&gt;
2014.12.12 Wijzigingen versie 33&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / IsKaderLid&lt;br /&gt;
   * extra output parameter (mail, mailHccnet, hccKaderForward)&lt;br /&gt;
 - F.8 HCC-kader / ZetKaderForward&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.05.06 Wijzigingen versie 34&lt;br /&gt;
 - GeefMijnGegevens&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - ValideerPCActiveAbonnee&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 1.4 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccKaderForward)&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * optionele extra output parameter (ExtraInfo)&lt;br /&gt;
2015.09.27 Wijzigingen versie 35&lt;br /&gt;
 - HeeftForumCredentials&lt;br /&gt;
   * vervallen&lt;br /&gt;
2015.11.20 Wijzigingen versie 36&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.12.13 Wijzigingen versie 37&lt;br /&gt;
 - serverID als optionele parameter&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * Maak velden optioneel&lt;br /&gt;
2016.01.05 Wijzigingen versie 38&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
2016.01.15 Wijzigingen versie 39&lt;br /&gt;
 - H.3 GeefMijnGegevens&lt;br /&gt;
   * geeft nu ook hccOptIn terug&lt;br /&gt;
   * geeft nu ook JoomlaToken terug&lt;br /&gt;
 - H.4 PasOptInKeuzeAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - SiteID en RemoteID als optionele parameter&lt;br /&gt;
2016.03.17 Wijzigingen versie 40&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.03.20 Wijzigingen versie 41&lt;br /&gt;
 - ServerID, SiteID en RemoteID als optionele parameters bij alle aanroepen&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - A.9 GeefLocatieNamen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.6 WijzigHccRol&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - F.7 IsGroeperingsKaderlid&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.5 WijzigGebruikersGegevens (hccPseudoniem)&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * vervallen&lt;br /&gt;
2016.04.02 Wijzigingen versie 42&lt;br /&gt;
 - H.6 GeefMijnKaderDetails&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.07.03 Wijzigingen versie 43&lt;br /&gt;
 - Ubuntu 16.04 aanpassingen (PHP versie 7) beschreven&lt;br /&gt;
2016.09.01 Wijzigingen versie 44&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * extra parameter &#039;hccMobiel&#039;&lt;br /&gt;
2016.10.13 Wijzigingen versie 45&lt;br /&gt;
 - H.3 GeefMijnGegevens (dedecated Joomla aanroep)&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
   * Als het om een webmaster gaat, vul dan eventueel hccRegio of hccIG aan &lt;br /&gt;
     met die groepering, ook als hij geen lid is van die groepering&lt;br /&gt;
 - I.4 GebruikerBestaatControle&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
2016.12.01 Wijzigingen versie 46&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar teruggezet&lt;br /&gt;
2017.05.28 Wijzigingen versie 47&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens (t.b.v. eenmalige kadermailing)&lt;br /&gt;
 - H.8 ZetMinimaleKaderGegevens  (t.b.v. eenmalige kadermailing)&lt;br /&gt;
2017.09.01 Wijzigingen versie 48&lt;br /&gt;
 - A.10 SchrijfNietlidInOpBulletin nu alleen voor 1 bulletin tegelijk&lt;br /&gt;
 - 2.2 WijzigGebruikersGegevens (op basis van gebruikersnaam en wachtwoord)&lt;br /&gt;
       is vervallen (was een oude Drupal aanroep)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens geeft ook hccKaderToonMobiel terug&lt;br /&gt;
2017.11.14 Wijzigingen versie 49&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft geen hccKaderToonMobiel meer terug&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft alleen hccMobiel als hccKaderToonMobiel dat toestaat&lt;br /&gt;
2018.02.18 Wijzigingen versie 50&lt;br /&gt;
 - H.6 GeefMijnKaderDetails geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.9 PasKaderGegevensAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft 3 extra parameters terug (hccKaderMail, hccKaderForward,&lt;br /&gt;
   hccKaderToonMobiel)&lt;br /&gt;
 - JoomlaTokens worden gevalideerd op siteID, niet langer op serverID&lt;br /&gt;
 - diverse aanroepen kunnen nu ook via de bezoekersregistratie-proxy aangeroepen worden. &lt;br /&gt;
   Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
   (GeefAlleGroeperingen, GeefAlleKaderRollen, GeefLocaties, GeefLocatieNamen)&lt;br /&gt;
   De bezoekersregistratie aanroepen hebben enkel JoomlaToken als extra parameter nodig:&lt;br /&gt;
   (LidBezoektBijeenkomst, GeefBezoekersOverzicht)&lt;br /&gt;
2018.02.26 Wijzigingen versie 51&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft extra parameter hccMobiel terug &lt;br /&gt;
 - H.9 PasKaderGegevensAan kan nu ook kadermail password aanpassen&lt;br /&gt;
 - K.1 ValideerToken&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - K.2 ValideerHCCCode&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2018.03.17 Wijzigingen versie 52&lt;br /&gt;
 - H.3 Haal al mijn gegevens&lt;br /&gt;
   Extra optie &#039;compact&#039; om alleen essentiele resultaten te verkrijgen&lt;br /&gt;
   (t.b.v. de Android bezoekersregistratie applicatie)&lt;br /&gt;
2018.03.25 Wijzigingen versie 53&lt;br /&gt;
 - I.2 IsHCCLid&lt;br /&gt;
   (Oude aanroep teruggezet, wordt nog in vraagbaak module gebruikt)&lt;br /&gt;
2018.07.01 Wijzigingen versie 54&lt;br /&gt;
   * A.1 beheer authenticatie op basis van lidnummer + hccCode (tbv VZ-portal)&lt;br /&gt;
   * A.2 HaalPC30Token weggehaald&lt;br /&gt;
2018.08.22 Wijzigingen versie 55&lt;br /&gt;
  * 1.2 GebruikerBestaatControle&#039; (op basis van hccLogin en userPassword) weggehaald&lt;br /&gt;
  * 1.4 GebruikerBestaatControle&#039; (op basis van zoekHccLogin of zoekHccLidnr) weggehaald&lt;br /&gt;
  * 2.8 HaalOptInLijst weggehaald&lt;br /&gt;
  * E.1 PasKaderWachtwoordAan weggehaald&lt;br /&gt;
  * F.1 IsKaderLid (op basis van hccLidnr en hccCode) weggehaald&lt;br /&gt;
  * F.3 IsKaderLid (op basis van beheerdernaam en beheerderwachtwoord) was al weg&lt;br /&gt;
  * F.8 ZetKaderForward weggehaald&lt;br /&gt;
  * H.1 IsGroeperingsLid weggehaald&lt;br /&gt;
  * H.6 GeefMijnKaderDetails weggehaald&lt;br /&gt;
  * H.7 GeefMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * H.8 ZetMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * K.1 ValideerHCCCode weggehaald&lt;br /&gt;
  * K.2 ValideerToken weggehaald&lt;br /&gt;
  * H.3 GeefMijnGegevens geeft omvang kader mailbox mee terug&lt;br /&gt;
2018.11.06 Wijzigingen versie 56&lt;br /&gt;
  Nieuwe aanroepen t.b.v. forum en vraagbaak autorisaties&lt;br /&gt;
  * L.1 MaakOnderwerp&lt;br /&gt;
  * L.2 VerwijderOnderwerp&lt;br /&gt;
  * L.3 GeefOnderwerpen&lt;br /&gt;
  * L.4 MuteerOnderwerp&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
  * L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
  * H.5 ZoekKaderLeden heeft compact optie&lt;br /&gt;
2018.11.16 Wijzigingen versie 57&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie kent nu ook RED(acteur)&lt;br /&gt;
2018.12.17 Wijzigingen versie 58&lt;br /&gt;
  * A.11 GeefBezoekersAantallen (nieuwe aanroep)&lt;br /&gt;
  * H.10 PasUserWachtwoordAan (nieuwe aanroep)&lt;br /&gt;
2019.02.21 Wijzigingen versie 59&lt;br /&gt;
  * A. 6 GeefBezoekersOverzicht geeft enkel lijst van bezoekers laatste bijeenkomst&lt;br /&gt;
2019.10.26 Wijzigingen versie 60&lt;br /&gt;
  * A.4 Schrijf bezoekers niet meer automatisch in op bulletins&lt;br /&gt;
  * H.4  PasOptInKeuzeAan kan ook door LA aangeroepen worden&lt;br /&gt;
  Nieuwe aanroepen t.b.v. eigen implementatie van mijn.hcc.nl in de Joomla modules&lt;br /&gt;
  * H.11 PasPseudoniemAan&lt;br /&gt;
  * H.12 ValideerWachtwoordEisen&lt;br /&gt;
  * H.13 PasWachtwoordAan (1: op JoomlaToken, 2: op PWResetToken)&lt;br /&gt;
  * H.14 MaakPWResetToken&lt;br /&gt;
  * H.15 ValideerPWResetToken&lt;br /&gt;
  * H.16 RuimJoomlaTokenOp&lt;br /&gt;
  * A.12 GeefAlleBulletins&lt;br /&gt;
  * A.13 ExpandeerPostcode&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.18 NormaliseerTelefoon&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  * A.21 HaalIGBedragenOp&lt;br /&gt;
  * A.22 HaalTariefGroepenOp&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
  * A.24 GeefSSOUrls&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  8.1 MaakGebruikerAan&lt;br /&gt;
  F.5 GeefAlleKaderRollen&lt;br /&gt;
2020.01.04 Wijzigingen versie 61&lt;br /&gt;
  Nieuwe aanroepen t.b.v. IDEAL betaling hobbynet abonnees&lt;br /&gt;
  H.17 GeefAantalDomeinen&lt;br /&gt;
2020.01.06 Wijzigingen versie 62&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Cayentis (CRM webproxy) implementatie&lt;br /&gt;
  * M.1  Upload_CSV_bestand&lt;br /&gt;
  * M.2  SchrijfNieuwLidIn&lt;br /&gt;
  * M.3  Verwerk_JSON_mutatie&lt;br /&gt;
  * M.4  ISO_landcode&lt;br /&gt;
  * M.5  MuteerAanmeldingsformulier&lt;br /&gt;
  * M.6  HaalAanmeldingsformulier&lt;br /&gt;
  * M.7  GeefFactuurOverzicht&lt;br /&gt;
  * M.8  HaalFactuur&lt;br /&gt;
  * A.25 UpdateNAW&lt;br /&gt;
  Vervallen aanroepen&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  Aangepaste aanroepen&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
2020.03.27 Wijzigingen versie 63&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.18 ResetHCCCode&lt;br /&gt;
  * H.19 PasHccLoginAan&lt;br /&gt;
2020.04.10 Wijzigingen versie 64&lt;br /&gt;
  Nieuwe aanroepen &lt;br /&gt;
  * A.26 VerwijderNietLid&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  * A.1  ZoekHCCLid: nieuwe zoekoptie &#039;niet_leden&#039;&lt;br /&gt;
  Opnieuw geimplementeerd&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Aanpassingen aan de Apache omgeving =&lt;br /&gt;
&lt;br /&gt;
== php.ini aanpassingen ==&lt;br /&gt;
De XML-RPC server zal &#039;ergens&#039; een bestand moeten kunnen vinden met de&lt;br /&gt;
gebruikersnamen t.b.v. het authenticeren bij de LDAP-server.&lt;br /&gt;
&lt;br /&gt;
Dit bestand wordt geplaatst in de map &#039;/usr/local/hobbynet/etc&#039;. Om dit&lt;br /&gt;
vanuit Apache te mogen benaderen, dient een aanpassing aan php.ini&lt;br /&gt;
gemaakt te worden:&lt;br /&gt;
&lt;br /&gt;
 /etc/php5/apache2/php.ini&lt;br /&gt;
 &lt;br /&gt;
 include_path = &amp;quot;.:/usr/share/php:/usr/share/pear:/usr/local/hobbynet/etc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Apache modules ==&lt;br /&gt;
Nieuwe server geschikt maken voor XML-RPC gebruik&lt;br /&gt;
&lt;br /&gt;
=== Apache modules (PHP 7) ===&lt;br /&gt;
Ubuntu 16.04 wordt standaard met PHP versie 7.0 uitgeleverd.&lt;br /&gt;
De opdrachten om de modules op te halen zijn:&lt;br /&gt;
 apt-get install php-xmlrpc&lt;br /&gt;
 apt-get install apache2&lt;br /&gt;
 apt-get install ldap-utils&lt;br /&gt;
 apt-get install php-ldap&lt;br /&gt;
 apt-get install libapache2-mod-php&lt;br /&gt;
&lt;br /&gt;
== Loadbalancer akties niet naar de logbestanden schrijven ==&lt;br /&gt;
De loadbalancer haalt zeer frequent een testbestand op (/test.txt), om&lt;br /&gt;
te controleren of de xml-server operationeel is. Dat levert extreem veel&lt;br /&gt;
logging op in /var/log/apache2/other_vhosts.log.&lt;br /&gt;
&lt;br /&gt;
Pas de apache configuratie zo aan, dat logging van alle opvragingen&lt;br /&gt;
vanaf de loadbalancers uitgezet wordt.&lt;br /&gt;
 /etc/apache2/sites-enabled/xml-server&lt;br /&gt;
 &lt;br /&gt;
 # Mark requests from loadbalancers&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;212\.72\.227\.93&amp;quot;          dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;212\.72\.227\.94&amp;quot;          dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;172\.31\.1\.249&amp;quot;           dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;172\.31\.1\.250&amp;quot;           dontlog&lt;br /&gt;
 CustomLog ${APACHE_LOG_DIR}/access.log common env=!dontlog&lt;br /&gt;
&lt;br /&gt;
= Firewall algemeen =&lt;br /&gt;
In de file /etc/hobby-firewall/hobby-firewall.local wordt het script&lt;br /&gt;
&#039;/usr/local/hobbynet/bin/gen_fw.sh&#039; aangeroepen.&lt;br /&gt;
Deze haalt de IP adressen op uit ldap. &lt;br /&gt;
(.local omdat we dit ook zo doen op de webservers).&lt;br /&gt;
&lt;br /&gt;
De firewall wordt 4 x per dag herstart en /etc/hobby-firewall wordt&lt;br /&gt;
gesynchroniseerd (1-richting van lb1 naar lb2) met de volgende crontab&lt;br /&gt;
entries:&lt;br /&gt;
&lt;br /&gt;
Op lb1:&lt;br /&gt;
  0  0 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55  5 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0  6 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 11 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0 12 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 17 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0 18 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 23 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
Op lb2:&lt;br /&gt;
 15  6 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15 12 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15 18 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15  0 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null &lt;br /&gt;
&lt;br /&gt;
Het encrypted backup script is verplaatst naar &#039;/usr/local/hobbynet/local&#039; en hernoemd naar &#039;backup-encrypted.bash&#039;.&lt;br /&gt;
Dit is omdat deze niet mee mag worden gesynchroniseerd.&lt;br /&gt;
&lt;br /&gt;
Tevens wordt 1x per dag /usr/local/hobbynet/bin gesynchroniseerd (1-richting van hcc-ldap-lb1 naar hcc-ldap-lb2)&lt;br /&gt;
&lt;br /&gt;
== Aanpassingen in de firewall ==&lt;br /&gt;
Op de server waar de XML-RPC server staat, moeten enkele firewall aanpassingen gemaakt worden.&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf het interne netwerk (www-prod, www-test), en vanaf eventuele andere plekken die we expliciet toe willen staan.&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf mijn.hcc.nl (XML-RPC aanroepen vanaf de portal)&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf service.hccnet.nl toe (XML-RPC aanroep GeefUitgeschrevenLeden vanuit HenZ)&lt;br /&gt;
* uitgaand: sta TCP 443 naar service.hccnet.nl toe (XML-RPC aanroepen naar HenZ)&lt;br /&gt;
* uitgaand: sta TCP 990 en 5000-6000 naar Apps.HCC.local (FTPS verkeer naar de HCC server bij Hobbynet)&lt;br /&gt;
&lt;br /&gt;
== Aanpassingen aan AppArmor ==&lt;br /&gt;
Alhoewel technisch gezien dit bij slapd behoort, neem ik het toch hier op.&lt;br /&gt;
&lt;br /&gt;
Als het Hobbynet certificaat in de map /disk/site/etc/ssl/hobby.nl/ wordt neergezet, dan zal apparrmor de toegang tot de certificaten blokkeren. Neem daarom in de &#039;&#039;&#039;local&#039;&#039;&#039; directory van apparmor het volgende op:&lt;br /&gt;
 # /etc/apparmor.d/local/usr.sbin.slapd&lt;br /&gt;
 # Site-specific additions and overrides for usr.sbin.slapd.&lt;br /&gt;
 # For more details, please see /etc/apparmor.d/local/README.&lt;br /&gt;
 #include &amp;lt;abstractions/ssl_certs&amp;gt;&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/ r,&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/* r,&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=78346</id>
		<title>MediaWikiSites</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=78346"/>
		<updated>2020-04-05T15:04:16Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Lijst met Mediawiki sites die wij bijhouden ==&lt;br /&gt;
&lt;br /&gt;
* Hobbynet wiki  (https://wiki.hobby.nl/)&lt;br /&gt;
&lt;br /&gt;
== upgrade procedure ==&lt;br /&gt;
* maak met tar een backup van de wiki:&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /disk/site/wiki&lt;br /&gt;
 tar -cf wiki-backup-20200405.tar www&lt;br /&gt;
 bzip2 wiki-backup-20200405.tar&lt;br /&gt;
&lt;br /&gt;
* maak met phpmyadmin een backup van de database&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download de wiki software upgrade van http://www.mediawiki.org/&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* volg de instructies zoals beschreven op http://www.mediawiki.org/wiki/Manual:Upgrading&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hobbynet wiki updaten ===&lt;br /&gt;
* Volg de instructies om de wiki te updaten&lt;br /&gt;
 &amp;lt;b&amp;gt;Ons eigen lijstje:&amp;lt;/b&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cd /disk/site/wiki&lt;br /&gt;
 rm -rf www-old&lt;br /&gt;
 cp -a www www-old&lt;br /&gt;
 wget https://releases.wikimedia.org/mediawiki/1.34/mediawiki-1.34.1.tar.gz&lt;br /&gt;
 tar xzf mediawiki-1.34.1.tar.gz&lt;br /&gt;
 chown wiki-hobby-nl:www-hobby-nl  mediawiki-1.34.1 -R&lt;br /&gt;
 cp -a www-old/LocalSettings.php   mediawiki-1.34.1&lt;br /&gt;
 cp -a www-old/images/*            mediawiki-1.34.1/images&lt;br /&gt;
 cp -a www-old/getip*              mediawiki-1.34.1&lt;br /&gt;
 rm -rf www&lt;br /&gt;
 mv mediawiki-1.34.1 www&lt;br /&gt;
 cd www/maintenance&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
* Als update.php niet draait, omdat er geen sql modules beschikbaar zouden zijn, selecteer dan eerst de juiste php versie&lt;br /&gt;
 update-alternatives --config php&lt;br /&gt;
&lt;br /&gt;
* Op de hobbynet wiki staan 2 losse bestanden die geen directe relatie met de wiki software hebben (&#039;&#039;&#039;getip.html&#039;&#039;&#039; en &#039;&#039;&#039;getip.php&#039;&#039;&#039;).&amp;lt;br&amp;gt;&lt;br /&gt;
Plaats die bestanden terug, tijdens de wiki upgrade actie!&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Dane&amp;diff=78344</id>
		<title>Dane</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Dane&amp;diff=78344"/>
		<updated>2020-04-05T11:14:06Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Doel =&lt;br /&gt;
Een DANE record in DNS vertelt welk ssl certificaat gekoppeld is aan een hostnaam. Het is bedoeld om email verkeer te beveiligen.&lt;br /&gt;
&lt;br /&gt;
== Waar staat DANE voor? ==&lt;br /&gt;
SMTP Security via Opportunistic &#039;&#039;&#039;D&#039;&#039;&#039;NS-Based &#039;&#039;&#039;A&#039;&#039;&#039;uthentication of &#039;&#039;&#039;N&#039;&#039;&#039;amed &#039;&#039;&#039;E&#039;&#039;&#039;ntities (DANE)&lt;br /&gt;
&lt;br /&gt;
== Verplicht voor overheids mailservers ==&lt;br /&gt;
STARTTLS en DANE moeten in combinatie worden toegepast op ontvangende en verzendende e-mailservers.&amp;lt;br&amp;gt;&lt;br /&gt;
Zie https://www.forumstandaardisatie.nl/standaard/starttls-en-dane&lt;br /&gt;
&lt;br /&gt;
= DNS =&lt;br /&gt;
In DNS heet het &#039;TLSA record&#039; en ziet er als volgt uit:&lt;br /&gt;
   _443._tcp.www.hcc.nl.           IN TLSA 3 1 1 1884aed24d9b18f571e777a95931c78d28c31b86f216efc683ed88f65728d549&lt;br /&gt;
&lt;br /&gt;
= DANE record maken =&lt;br /&gt;
Dat gaat heel simpel via deze site https://www.huque.com/bin/gen_tlsa&amp;lt;br&amp;gt;&lt;br /&gt;
Je plakt het publieke deel van het certificaat, laat verder alles default. &lt;br /&gt;
Je vult hostnaam, port en protocol in en klikt op &#039;&#039;generate&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= gen_mx_hcc =&lt;br /&gt;
Als het certificaat van hcc.nl wordt vervangen moet je in het gen_mx script de variable veranderen&lt;br /&gt;
   $TLSAHCC = &#039;3 1 1 1884aed24d9b18f571e777a95931c78d28c31b86f216efc683ed88f65728d549&#039;;&lt;br /&gt;
want elke subdomein van hcc.nl krijgt automatisch DANE record &lt;br /&gt;
&lt;br /&gt;
= LET op = &lt;br /&gt;
Als een ssl certificaat vernieuwd wordt moet je dus ook een nieuw DANE (TLSA) record maken&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=78330</id>
		<title>XML-RPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=XML-RPC&amp;diff=78330"/>
		<updated>2020-03-27T12:09:35Z</updated>

		<summary type="html">&lt;p&gt;Hans: XML-RPC aanpassingen t.b.v. Cayentis omgeving&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XML-RPC interface =&lt;br /&gt;
&lt;br /&gt;
De LDAP server kan direct gemuteerd worden via een LDAP koppeling. Zie&lt;br /&gt;
de standaard LDAP pagina voor de uitleg welke poorten daarvoor gebruikt&lt;br /&gt;
kunnen worden.&lt;br /&gt;
&lt;br /&gt;
Daarnaast is er de wens ontstaan om via een standaard protocol met de&lt;br /&gt;
LDAP omgeving te kunnen communiceren. Er is hiertoe een XML-RPC&lt;br /&gt;
koppeling ontwikkeld. XML-RPC is een standaard interface, waarmee het&lt;br /&gt;
mogelijk is om vanuit diverse omgevingen op een gestandaardiseerde&lt;br /&gt;
manier te communiceren.&lt;br /&gt;
&lt;br /&gt;
== Globale functie omschrijving ==&lt;br /&gt;
* Algemene aanroepen&lt;br /&gt;
** Controleer of een gebruiker bestaat&lt;br /&gt;
** Wijzig het wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
** Zoek een gebruiker (t.b.v. kantoor en/of LA-akties groeperingssecretaris)&lt;br /&gt;
** Maak een gebruiker aan (geef gebruiker een andere hccLogin waarde, maak ook bij HCCnet deze gebruiker aan)&lt;br /&gt;
** Controleer of een gebruiker zijn profiel al doorlopen heeft&lt;br /&gt;
** Haal de lijst met opgeheven accounts op&lt;br /&gt;
** Haal de lijst met bulletins van een hcc lid (OptIn)&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. hcc partners&lt;br /&gt;
** Controleer of lidnummer/postcode correct is&lt;br /&gt;
** Controleer of lidnummer/postcode correct is, en tevens ingeschreven staat bij een specifieke IG&lt;br /&gt;
&lt;br /&gt;
* Joomla template site functies (op basis van JoomlaToken)&lt;br /&gt;
** Maak een JoomlaToken&lt;br /&gt;
** Ruim een JoomlaToken op&lt;br /&gt;
** Pas mijn OptIn (bulletin inschrijving) aan&lt;br /&gt;
** Regel alles rondom Onderwerpen en de autorisatie hiervan&lt;br /&gt;
** Pas mijn wachtwoord aan&lt;br /&gt;
&lt;br /&gt;
* Joomla kadernet site functies (op basis van JoomlaToken)&lt;br /&gt;
** Zoek een hcc kaderlid (t.b.v. de kaderleden zoekpagina)&lt;br /&gt;
** Pas mijn kadermail forwarding aan en toon ja/nee mijn GSM nummer&lt;br /&gt;
** Pas het kadernet e-mail wachtwoord aan&lt;br /&gt;
** Haal de lijst met alle groeperingen op&lt;br /&gt;
** Haal de lijst met alle kaderrollen op&lt;br /&gt;
&lt;br /&gt;
* Joomla hcc.nl site (op basis van JoomlaToken)(mijn.hcc.nl vervanging)&lt;br /&gt;
** Pas mijn adresgegevens aan&lt;br /&gt;
** Pas mijn voorletters, voornaam, pseudoniem, telefoonnummer, GSM nummer etcetera aan&lt;br /&gt;
** Schrijf me in of uit op een bulletin&lt;br /&gt;
** Toon info over de kosten van een IG lidmaatschap&lt;br /&gt;
** Voer een wachtwoord reset uit op basis van een PWResetToken (een variant op JoomlaToken)&lt;br /&gt;
** Vraag een nieuwe HCC code aan, en stuur die per SMS&lt;br /&gt;
&lt;br /&gt;
* Joomla hobby.nl site (op basis van JoomlaToken)(t.b.v. IDEAL betaling)&lt;br /&gt;
** Haal het aantal hobbyDomains op&lt;br /&gt;
&lt;br /&gt;
* Aanroepen t.b.v. CRM (Microsoft Dynamics Cloud) koppeling&lt;br /&gt;
** Haal de dagelijkse synchronisatie bestanden op&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de NAW gegevens bij&lt;br /&gt;
** Werk in het CRM dan wel in LDAP de IG gegevens van een lid bij&lt;br /&gt;
&lt;br /&gt;
* HenZ&lt;br /&gt;
** Haal de lijst met opzeggers op&lt;br /&gt;
** Valideer de opzegdatum van een opgegeven gebruiker&lt;br /&gt;
&lt;br /&gt;
=== Authenticatie ===&lt;br /&gt;
&lt;br /&gt;
Alle aanroepen gebeuren op basis van authenticatie vanuit de aanroeper.&lt;br /&gt;
Dit valt uiteen in de volgende categorieën:&lt;br /&gt;
* gebruikersnaam (&#039;hccLogin&#039;) en wachtwoord (&#039;userPassword&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;), Joomla token (&#039;JoomlaToken&#039;) en website (&#039;siteID&#039;)&lt;br /&gt;
* hcc lidnummer (&#039;hccLidnr&#039;) en hcc code (&#039;hccCode&#039;)&lt;br /&gt;
* beheerders-DN (&#039;beheerLogin&#039;) en beheerders wachtwoord (&#039;beheerPassword&#039;)&lt;br /&gt;
* partner-DN (&#039;partnerLogin&#039;) en partner wachtwoord (&#039;partnerPassword&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Aanroepen, gedaan via de bezoekersregistratie-proxy ===&lt;br /&gt;
(de bezoekersregistratie proxy is een mislukt project tbv de Android app van René Prins)&lt;br /&gt;
(deze proxy bestaat niet meer)&amp;lt;br&amp;gt;&lt;br /&gt;
Diverse aanroepen kunnen ook via de bezoekersregistratie-proxy aangeroepen worden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
* GeefAlleGroeperingen&lt;br /&gt;
* GeefAlleKaderRollen&lt;br /&gt;
* GeefLocaties&lt;br /&gt;
* GeefLocatieNamen&lt;br /&gt;
De bezoekersregistratie aanroepen hebben &#039;JoomlaToken&#039; als extra parameter nodig:&lt;br /&gt;
* LidBezoektBijeenkomst&lt;br /&gt;
* GeefBezoekersOverzicht&lt;br /&gt;
* GeefBezoekersAantallen&lt;br /&gt;
De aanroepen die over de proxy uitgevoerd worden dienen voorafgegaan te worden door een aanroep naar&lt;br /&gt;
* GeefMijnGegevens (dit geeft na validatie immers &#039;JoomlaToken&#039; terug)&lt;br /&gt;
&lt;br /&gt;
=== Resultaten ===&lt;br /&gt;
&lt;br /&gt;
Alle aanroepen geven de volgende elementen terug:&lt;br /&gt;
* Naam van de uitgevoerde procedure (&#039;Action&#039;)&lt;br /&gt;
* Resultaat van de uitgevoerde procedure (&#039;Status&#039;)&lt;br /&gt;
* Een tekstuele vertaling van het resultaat dan wel de foutmelding (&#039;Message&#039;)&lt;br /&gt;
* Tijdens de ontwikkelfase kan er debug-info teruggeleverd worden (&#039;ExtraInfo&#039;)&lt;br /&gt;
Daarnaast geven specifieke aanroepen extra resultaten terug&lt;br /&gt;
&lt;br /&gt;
== Technische omschrijving ==&lt;br /&gt;
XML-RPC beschrijving van acties in hcc.nl LDAP database&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2020.03.27 HaVe&lt;br /&gt;
XML-RPC Hobbynet versie 63.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kort overzicht ===&lt;br /&gt;
Dit is een lijst met alle XML-RPC aanroepen. In het volgende hoofdstuk worden ze in detail besproken.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo				(partners)&lt;br /&gt;
ExpandeerPostcode               (Joomla module Bas, tbv verhuizingen)&lt;br /&gt;
GebruikerBestaatControle	(Joomla sites)&lt;br /&gt;
GeefAantalDomeinen              (Joomla module Bas)&lt;br /&gt;
GeefAlleBulletins               (Joomla module Bas)&lt;br /&gt;
GeefAlleGroeperingen		(kadersite, forum, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefAlleKaderRollen		(forum, secr. portal, kantoor portal, hobbynet portal, Joomla module Bas)&lt;br /&gt;
GeefBezoekersOverzicht		(bezoekersregistratie)&lt;br /&gt;
GeefBezoekersAantallen		(bezoekersregistratie)&lt;br /&gt;
GeefhccEindDatum		(HenZ)&lt;br /&gt;
GeefKadermailGegevens		(kantoor portal)&lt;br /&gt;
GeefLocatieNamen		(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefLocaties			(kadersite, secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
GeefMijnGegevens		(Joomla inlog module Bas)&lt;br /&gt;
GeefMijnLidnummer		(beheer.hcc.nl secretaris portal)&lt;br /&gt;
GeefOnderwerpen                 (Joomla template sites)&lt;br /&gt;
GeefSSOUrls			(Joomla module Bas)&lt;br /&gt;
GeefUitgeschrevenLeden		(Joomla sites, HenZ)&lt;br /&gt;
HaalIGBedragenOp                (Joomla module Bas)&lt;br /&gt;
HaalOptInKeuzen			(kantoor portal)&lt;br /&gt;
HaalTariefGroepenOp		(kantoor portal)&lt;br /&gt;
HCCpartner			(Partner aanroep)&lt;br /&gt;
HCCpartners			(Partner aanroep)&lt;br /&gt;
IsDezeNaamNogBeschikbaar	(aangeroepen vanuit de CRM omgeving)&lt;br /&gt;
IsDezePseudoniemNogBeschikbaar	(kantoor portal)&lt;br /&gt;
IsHCCLid			(vraagbaak aanroep)&lt;br /&gt;
IsKaderLid			(in veel apps gebruikt)&lt;br /&gt;
LidBezoektBijeenkomst		(bezoekersregistratie)&lt;br /&gt;
MaakGebruikerAan		(mijnhcc.nl, maak hccnet account aan en ldap gebruikersnaam)&lt;br /&gt;
MaakOnderwerp                   (Joomla template sites)&lt;br /&gt;
MaakPWResetToken                (Joomla module Bas)&lt;br /&gt;
MuteerGroeperingSamenstelling   (Joomla kadernet module Bas)&lt;br /&gt;
MuteerOnderwerp                 (Joomla template sites)&lt;br /&gt;
MuteerOnderwerpAutorisatie      (Joomla template sites)&lt;br /&gt;
NormaliseerTelefoon             (Joomla module Bas)&lt;br /&gt;
PasHccLoginAan			(Joomla module Bas)(enkel Hobbynet)&lt;br /&gt;
PasInteressegroepAan            (Joomla module Bas)&lt;br /&gt;
PasKaderGegevensAan		(kadersite, Joomla module Bas)&lt;br /&gt;
PasOptInKeuzeAan		(Joomla module Bas)&lt;br /&gt;
PasPseudoniemAan		(Joomla module Bas)&lt;br /&gt;
PasUserWachtwoordAan		(beheer.hcc.nl Hobbynet gebruikers portal)&lt;br /&gt;
PasWachtwoordAan		(Joomla module Bas)&lt;br /&gt;
RegistreerGast			(bezoekersregistratie)&lt;br /&gt;
ResetHCCCode                    (Joomla module Bas)&lt;br /&gt;
RuimJoomlaTokenOp               (Joomla module Bas)&lt;br /&gt;
SchrijfNietlidInOpBulletin      (Joomla site bulletin module Bas)&lt;br /&gt;
SchrijfNieuwLidIn               (Joomla CRM module Bas)&lt;br /&gt;
ToonOnderwerpAutorisatie        (Joomla template sites)&lt;br /&gt;
UpdateNAW                       (Joomla module Bas)&lt;br /&gt;
Upload_CSV_bestand              (CRM webproxy)&lt;br /&gt;
ValideerPWResetToken            (Joomla module Bas)&lt;br /&gt;
ValideerWachtwoordEisen		(Joomla module Bas)&lt;br /&gt;
VerwijderOnderwerp              (Joomla template sites)&lt;br /&gt;
Verwerk_JSON_mutatie            (CRM webproxy)&lt;br /&gt;
VraagLidgegevensTokenAan	(bezoekersregistratie)&lt;br /&gt;
WijzigGebruikersGegevens	(kantoor en Joomla template sites, ww aanpassen van gebruiker)&lt;br /&gt;
ZoekGroeperingsLid		(secr. portal, kantoor portal, hobbynet portal)&lt;br /&gt;
ZoekHCCLid			(VZ portal)&lt;br /&gt;
ZoekKaderLeden			(Joomla kadernet module Bas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-ldap en/of HCC-net aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** Joomla sites, www.hcc.nl **&lt;br /&gt;
// 1.1 controleer of een gebruiker bestaat - optie 1&lt;br /&gt;
// (authenticatie op basis van hccLidnr en hccCode)&lt;br /&gt;
// Alleen bedoeld om gebruikers op www.hcc.nl op basis van het lidnr het ww te laten wijzigen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GebruikerBestaatControle&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039; =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;  =&amp;gt; $hccCode,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $method,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;);&lt;br /&gt;
    if ($hccLidnr      != &#039;&#039;) { $reply[&#039;hccLidnr&#039;]      = $hccLidnr;      }&lt;br /&gt;
    if ($hccLogin      != &#039;&#039;) { $reply[&#039;hccLogin&#039;]      = $hccLogin;      }&lt;br /&gt;
    if ($hccPseudoniem != &#039;&#039;) { $reply[&#039;hccPseudoniem&#039;] = $hccPseudoniem; }&lt;br /&gt;
    if ($cn            != &#039;&#039;) { $reply[&#039;cn&#039;]            = $cn;            }&lt;br /&gt;
    if ($sn            != &#039;&#039;) { $reply[&#039;sn&#039;]            = $sn;            }&lt;br /&gt;
    if ($mail          != &#039;&#039;) { $reply[&#039;mail&#039;]          = $mail;          }&lt;br /&gt;
    if ($mailHccnet    != &#039;&#039;) { $reply[&#039;mailHccnet&#039;]    = $mailHccnet;    }&lt;br /&gt;
    if ($hccRegio      != &#039;&#039;) { $reply[&#039;hccRegio&#039;]      = $hccRegio;      }&lt;br /&gt;
    if ($hccIG         != &#039;&#039;) { $reply[&#039;hccIG&#039;]         = $hccIG;         }&lt;br /&gt;
    if ($hccRol        != &#039;&#039;) { $reply[&#039;hccRol&#039;]        = $hccRol;        }&lt;br /&gt;
    if ($ProfielBekend != &#039;&#039;) { $reply[&#039;ProfielBekend&#039;] = $ProfielBekend; }&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
// op basis van hccLidnummer en hccCode &lt;br /&gt;
// Essentiele aanroep, gebruikt vanuit mijnhcc.nl (lidnr + hccCode)&lt;br /&gt;
// Ook gebruikt t.b.v. wachtwoord-vergeten procedure op de Joomla template sites&lt;br /&gt;
// Als de profielpagina nog niet is doorlopen wordt deze aanroep afgekeurd.&lt;br /&gt;
//&lt;br /&gt;
// Ook gebruikt om gebruiker rechtstreeks vanaf Joomla template sites wachtwoord te&lt;br /&gt;
// laten aanpassen (op basis van lidnummer en hcc code)&lt;br /&gt;
//&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;            =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Gebruikersgegevens gewijzigd&#039;,&lt;br /&gt;
    &#039;hccLogin&#039; =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;cn&#039;       =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;       =&amp;gt; $sn);&lt;br /&gt;
&lt;br /&gt;
// 2.3 wijzig wachtwoord - optie 3&lt;br /&gt;
// (t.b.v. VZ-portal)&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
// * Als hccLidnr gevuld is, dan wordt hccLidnr gebruikt om het juiste record te zoeken&lt;br /&gt;
//   Als hccLidnr leeg   is, dan wordt hccLogin gebruikt om het juiste record te zoeken&lt;br /&gt;
//   1 van beide velden MOET aanwezig zijn&lt;br /&gt;
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;WijzigGebruikersGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;        =&amp;gt; $beheerLogin,    // beheerder lidnummer&lt;br /&gt;
      &#039;beheerPassword&#039;     =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
     [&#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,]&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. ophalen van de opt-in keuzes op de beheer pagina **&lt;br /&gt;
// 2.6 Geef de complete lijst met opt-ins van dit lid&lt;br /&gt;
// (LET OP: authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
     [&#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,]&lt;br /&gt;
     [&#039;hccLogin&#039;       =&amp;gt; $hccLogin,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptInLijst opgehaald&#039;,&lt;br /&gt;
    &#039;hccOptIn&#039; =&amp;gt; $hccOptIn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalOptInKeuzen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gebruikersnaam, pseudoniem &lt;br /&gt;
//     en wachtwoord tevens in LDAP op&lt;br /&gt;
// (authenticatie op basis van hcc lidnummer en hcc-code)&lt;br /&gt;
// ** Deze gegevens worden doorgezet naar hccnet.nl (action=4) **&lt;br /&gt;
// &lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hccCode&#039;             =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;nieuw_hccLogin&#039;      =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
      &#039;nieuw_userPassword&#039;  =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem,&lt;br /&gt;
     [&#039;ServerID&#039;            =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;              =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;       =&amp;gt; &#039;Gebruiker aangemaakt&#039;,&lt;br /&gt;
    &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
    &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MaakGebruikerAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;       |&lt;br /&gt;
                 &#039;Gebruikersnaam bestaat al&#039;  |&lt;br /&gt;
                 &#039;Pseudoniem bestaat al&#039;      |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.3 Haal al mijn gegevens&lt;br /&gt;
// (wordt gebruikt door de Joomla inlogmodule)&lt;br /&gt;
// Voor gebruik over de proxy t.b.v. de Android app kan compact=TRUE meegegeven worden.&lt;br /&gt;
// In dat geval worden enkel de meest essentiele gegevens teruggestuurd&lt;br /&gt;
// Voor gebruik na MaakGebruikerAan kan deze functie ook op basis van hccLidnr en JoomlaToken&lt;br /&gt;
// worden aangeroepen&lt;br /&gt;
// De optionele parameter &#039;PrevSiteID&#039; is bedoeld voor single-sign-on. Op basis van JoomlaToken,&lt;br /&gt;
// hccLidnr en PrevSiteID worden dan de credentials gevalideerd. Als die kloppen, geeft deze aanroep&lt;br /&gt;
// een 2e JoomlaToken terug, maar dan uitgegeven op basis van SiteID.&lt;br /&gt;
// Als PrevSiteID leeg is, dan wordt het token op basis van siteID gevalideerd.&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,]&lt;br /&gt;
     [&#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;PrevSiteID&#039;   =&amp;gt; $PrevSiteID,]&lt;br /&gt;
     [&#039;compact&#039;      =&amp;gt; $compact,]        // leeg of &#039;TRUE&#039;&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Gebruikersgegevens opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccRegio&#039;           =&amp;gt; $hccRegio,&lt;br /&gt;
    &#039;hccIG&#039;              =&amp;gt; $hccIG,&lt;br /&gt;
    &#039;hccRol&#039;             =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;hccAutorisatie&#039;     =&amp;gt; $hccAutorisatie,&lt;br /&gt;
    &#039;cn&#039;                 =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;                 =&amp;gt; $sn,&lt;br /&gt;
    &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
   [&#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccPseudoniem&#039;      =&amp;gt; $hccPseudoniem,&lt;br /&gt;
    &#039;givenname&#039;          =&amp;gt; $givenname,&lt;br /&gt;
    &#039;hccAanhef&#039;          =&amp;gt; $hccAanhef,&lt;br /&gt;
    &#039;hccGeslacht&#039;        =&amp;gt; $hccGeslacht,&lt;br /&gt;
    &#039;hccTussenVoegsels&#039;  =&amp;gt; $hccTussenVoegsels,&lt;br /&gt;
    &#039;hccAchternaam&#039;      =&amp;gt; $hccAchternaam,&lt;br /&gt;
    &#039;hccStraatnaam&#039;      =&amp;gt; $hccStraatnaam,&lt;br /&gt;
    &#039;hccHuisnummer&#039;      =&amp;gt; $hccHuisnummer&lt;br /&gt;
    &#039;hccPostcode&#039;        =&amp;gt; $hccPostcode,&lt;br /&gt;
    &#039;hccWoonplaats&#039;      =&amp;gt; $hccWoonplaats,&lt;br /&gt;
    &#039;hccLand&#039;            =&amp;gt; $hccLand,&lt;br /&gt;
    &#039;hccTelefoon&#039;        =&amp;gt; $hccTelefoon,&lt;br /&gt;
    &#039;mail&#039;               =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;         =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;       =&amp;gt; $hccKaderMail, &lt;br /&gt;
    &#039;hccKaderForward&#039;    =&amp;gt; $hccKaderForward,&lt;br /&gt;
    &#039;hccKaderToonMobiel&#039; =&amp;gt; $hccKaderToonMobiel,&lt;br /&gt;
    &#039;hccOptIn&#039;           =&amp;gt; $hccOptIn,&lt;br /&gt;
    &#039;ProfielBekend&#039;      =&amp;gt; $ProfielBekend,&lt;br /&gt;
    &#039;hccBeginDatum&#039;      =&amp;gt; $hccBeginDatum,&lt;br /&gt;
   [&#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,     // in Mb&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald;]]);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de opt-in keuzes op een Joomla site **&lt;br /&gt;
// H.4 Pas 1 opt-in van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// Als hccLidnummer gevuld is, dan is dat het lidnummer waar de mutatie op moet worden uitgevoerd.&lt;br /&gt;
// Dat kan alleen als de aanvrager HCC#LAD of HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,]&lt;br /&gt;
      &#039;hccOptIn&#039;     =&amp;gt; $hccOptIn,&lt;br /&gt;
      &#039;actie&#039;        =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;OptIn aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasOptInKeuzeAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
    &lt;br /&gt;
// H.5 Zoek kaderleden NAW (t.b.v. de Joomla kadersite)&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
//&lt;br /&gt;
// * Er dient minstens 1 zoekcriterium opgegeven te worden.&lt;br /&gt;
// * Als zowel hccRegio als tegelijk ook hccIG opgegeven worden is de uitkomst onvoorspelbaar.&lt;br /&gt;
// * Als compact=TRUE worden enkel lidnummer, cn en sn in het antwoord gezet&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
     [&#039;hccIG&#039;       =&amp;gt; $hccIG,]&lt;br /&gt;
     [&#039;hccRol&#039;      =&amp;gt; $hccRol,]&lt;br /&gt;
     [&#039;hccLocatie&#039;  =&amp;gt; $hccLocatie,]&lt;br /&gt;
     [&#039;achternaam&#039;  =&amp;gt; $achternaam,]&lt;br /&gt;
     [&#039;compact&#039;     =&amp;gt; $compact]));        // leeg of &#039;TRUE&#039;&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Kaderleden opgevraagd&#039;&lt;br /&gt;
    &#039;Kaderleden&#039;      =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidNummer&#039;  =&amp;gt; $hccLidNummer,&lt;br /&gt;
      &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccAanhef&#039;     =&amp;gt; $hccAanhef,&lt;br /&gt;
      &#039;givenname&#039;     =&amp;gt; $givenname,&lt;br /&gt;
      &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
      &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
      &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekKaderLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;]);&lt;br /&gt;
&lt;br /&gt;
// H.9 PasKaderGegevensAan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// (wordt gebruikt door de Joomla kadersite module)&lt;br /&gt;
// Om de kaderleden hun forward in te laten stellen,&lt;br /&gt;
// en tegelijkertijd de opt-in / opt-out voor hccToonMobiel te laten regelen&lt;br /&gt;
// Kan tevens het kader email wachtwoord aanpassen&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;            =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;         =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;            =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;              =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;            =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;hccKaderForward&#039;     =&amp;gt; $hccKaderForward,    // &#039;&#039; | $mail | $mailHccNet&lt;br /&gt;
      &#039;hccKaderToonMobiel&#039;  =&amp;gt; $hccKaderToonMobiel, // &#039;TRUE&#039; | &#039;FALSE&#039; | &#039;NULL&#039;&lt;br /&gt;
     [&#039;nieuw_kaderPassword&#039; =&amp;gt; $nieuw_kaderPassword]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;kadergegevens aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;PasKaderGegevensAan&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Ongeldig token&#039;|&#039;Alleen kaderleden mogen deze aanroep uitvoeren&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** Portal beheer.hcc.nl&lt;br /&gt;
// ** H.10 PasUserWachtwoordAan&lt;br /&gt;
// ** Betalende Hobbynet gebruikers kunnen hiermee hun wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van hccLogin en userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;         =&amp;gt; $username,&lt;br /&gt;
      &#039;userpassword&#039;     =&amp;gt; $password,&lt;br /&gt;
      &#039;hobbynetAccount&#039;  =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;nieuw_wachtwoord&#039; =&amp;gt; $nieuw_wachtwoord,&lt;br /&gt;
      &#039;ServerID&#039;         =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;           =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;         =&amp;gt; $remoteAddr));        &lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasUserWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;     |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij gebruiker $hccLogin&#039; |&lt;br /&gt;
                 &#039;Kan ww van account $hobbynetAccount niet aanpassen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.11 Pas het pseudoniem van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Pseudoniem aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasPseudoniemAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; | &#039;Onjuiste credentials&#039; | &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de gebruikersinstellingen op een Joomla site **&lt;br /&gt;
// H.12 Controleer of een opgegeven wachtwoord aan de minimum eisen voldoet&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Wachtwoord voldoet aan de minimale eisen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ValideerWachtwoordEisen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Wachtwoord voldoet niet aan de minimale eisen&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit een Joomla template site kunnen gebruikers hiermee hun eigen wachtwoord aanpassen&lt;br /&gt;
// (authenticatie op basis van JoomlaToken, lidnummer, siteID. Extra controle via userpassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;           =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;        =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;userpassword&#039;       =&amp;gt; $password,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.13.1 PasWachtwoordAan&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee hun eigen wachtwoord resetten&lt;br /&gt;
// (authenticatie op basis van PWResetToken en hccLogin).&lt;br /&gt;
// (Als de aanroep geslaagd is, dan is daarna het PWResetToken ongeldig)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;           =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039;       =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;nieuw_userPassword&#039; =&amp;gt; $nieuw_userPassword,&lt;br /&gt;
      &#039;ServerID&#039;           =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;             =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;           =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;wachtwoord aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasWachtwoordAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;Het nieuwe wachtwoord voldoet niet aan de minimale eisen!&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.14 MaakPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers hiermee een wachtwoord reset aanvragen&lt;br /&gt;
//    Deze aanroep geeft naast het PWResetToken ook het contact emailadres mee terug,&lt;br /&gt;
//    zodat Joomla een reset-mail kan sturen&lt;br /&gt;
// (acties op basis van gebruikersnaam)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;   =&amp;gt; $username,&lt;br /&gt;
      &#039;ServerID&#039;   =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;     =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;   =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
    &#039;mail&#039;         =&amp;gt; $mail,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token aangemaakt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;MaakPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** H.15 ValideerPWResetToken&lt;br /&gt;
// ** Vanuit www.hcc.nl kunnen gebruikers een wachtwoord reset aanvragen&lt;br /&gt;
//    Controleer dat het hier om een bestaand (en nog niet gebruikt) token gaat&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;PWResetToken&#039; =&amp;gt; $PWResetToken,&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Password reset token gevonden&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ValideerPWResetToken&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;hccLogin bestaat niet&#039; | &#039;PWResetToken bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// H.16 Ruim een bestaand JoomlaToken op&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;JoomlaToken opgeruimd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;RuimJoomlaTokenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuist JoomlaToken&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.17 GeefAantalDomeinen&lt;br /&gt;
// ** Vraag het aantal domeinen op van een betalende Hobbynet gebruiker (t.b.v. IDEAL betaling)&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;     =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
      &#039;ServerID&#039;        =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;          =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;        =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hobbynetAccount&#039; =&amp;gt; $hobbyname,&lt;br /&gt;
    &#039;AantalDomeinen&#039;  =&amp;gt; $aantalDomeinen,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;aantal domeinen opgevraagd&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefAantalDomeinen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;           |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039;     |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                 &#039;account $hobbynetAccount behoort niet bij deze gebruiker&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18 ResetHCCCode&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // geheime credentials van de site&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // geheime credentials van de site&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Joomla module&lt;br /&gt;
// ** H.18.1 ResetHCCCode (hcc kantoor aanroep)&lt;br /&gt;
// ** Reset de hcc code van een gebruiker, en stuur vervolgens een SMS naar de 06 van het lid&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ResetHCCCode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,    // Het Joomla token van de sessie van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,       // Het lidnummer van de kantoor medewerker&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,   // Het lidnummer van het lid waarvan we de HCCcode aan gaan passen&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $serverName,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteAddr));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ResetHCCCode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Nieuwe HCCcode aangemaakt en verstuurd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. aanpassen van de hccLogin van een gebruiker (Hobbynet functie op Joomla site)  **&lt;br /&gt;
// H.19 Pas de hccLogin van een lid aan&lt;br /&gt;
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
// hccLidnummer is het lidnummer waar de mutatie op moet worden uitgevoerd&lt;br /&gt;
// Kan alleen als de aanvrager HN#WM als rol heeft&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;     =&amp;gt; $hccLidnr,     // lidnummer van de aanvrager&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,  // JoomlaToken van de aanvrager&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer, // pas de hccLogin van dit lidnummer aan&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,     // dit is de gewenste nieuwe hccLogin&lt;br /&gt;
      &#039;ServerID&#039;     =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;hccLogin aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;PasHccLoginAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039;       | &lt;br /&gt;
                 &#039;Gebruikersnaam al in gebruik&#039;);&lt;br /&gt;
&lt;br /&gt;
// 3.1 Geef mijn lidnummer&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;Lidnummer opgevraagd&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039; =&amp;gt; $hccLidnr);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefMijnLidnummer&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Gegevenscombinatie onjuist&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Portal mijn.hcc.nl **&lt;br /&gt;
// ** t.b.v. 1e keer doorlopen van de profielpagina **&lt;br /&gt;
// 8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Deze gegevens worden opgevraagd bij hccnet.nl (action=3)       **&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccLogin&#039; =&amp;gt; $nieuw_hccLogin,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezeNaamNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersnaam bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** Enkel voor gebruik vanaf de kantoor portal **&lt;br /&gt;
// **  t.b.v. het hernoemen van accounts in CRM  **&lt;br /&gt;
// 8.3 Controleer of een Pseudoniem op dit moment bestaat		??? NIET GEBRUIKT ??&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;nieuw_hccPseudoniem&#039; =&amp;gt; $nieuw_hccPseudoniem));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem is nog beschikbaar&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsDezePseudoniemNogBeschikbaar&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Pseudoniem bestaat al&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de verenigingszaken zoekpagina **&lt;br /&gt;
// A.1 Zoek alle bij de query passende hcc leden&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // beheerder hccLidnummer&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // beheerder hccCode&lt;br /&gt;
      &#039;ZoekMethode&#039;    =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;     =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;     =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $Groepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (eerste deel van) de naam               |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | emailadres          | (eerste deel van) e-mail adres          |&lt;br /&gt;
 | gebruikersnaam      | (eerste deel van) de login naam         |&lt;br /&gt;
 | pseudoniem          | (eerste deel van) het pseudoniem        |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
   [&#039;ExtraInfo&#039;   =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;     =&amp;gt; array(&lt;br /&gt;
      &#039;hccLidnummer&#039;      =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;hccBeginDatum&#039;     =&amp;gt; $hccBeginDatum,&lt;br /&gt;
      &#039;hccEindDatum&#039;      =&amp;gt; $hccEindDatum,&lt;br /&gt;
      &#039;sn&#039;                =&amp;gt; $sn,&lt;br /&gt;
      &#039;givenName&#039;         =&amp;gt; $givenName,&lt;br /&gt;
      &#039;hccGeslacht&#039;       =&amp;gt; $hccGeslacht,&lt;br /&gt;
      &#039;hccStraatnaam&#039;     =&amp;gt; $hccStraatnaam,&lt;br /&gt;
      &#039;hccHuisnummer&#039;     =&amp;gt; $hccHuisnummer&lt;br /&gt;
      &#039;hccHuisToevoeging&#039; =&amp;gt; $hcchuisToevoeging,&lt;br /&gt;
      &#039;hccPostcode&#039;       =&amp;gt; $hccPostcode,&lt;br /&gt;
      &#039;hccWoonplaats&#039;     =&amp;gt; $hccWoonplaats,&lt;br /&gt;
      &#039;hccLand&#039;           =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;hccTelefoon&#039;       =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;         =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;mail&#039;              =&amp;gt; $mail,&lt;br /&gt;
      &#039;mailHccnet&#039;        =&amp;gt; $mailHccnet,&lt;br /&gt;
      &#039;hccIG&#039;             =&amp;gt; $hccIG,&lt;br /&gt;
      &#039;hccRol&#039;            =&amp;gt; $hccRol,&lt;br /&gt;
      &#039;hccLogin&#039;          =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;hccPseudoniem&#039;     =&amp;gt; $hccPseudoniem,&lt;br /&gt;
      &#039;ProfielBekend&#039;     =&amp;gt; &#039;TRUE&#039; | &#039;FALSE&#039;])*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker niet gevonden&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. beheer.hcc.nl **&lt;br /&gt;
// A.3 Zoek alle bij de query passende hcc leden van deze groepering&lt;br /&gt;
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan&lt;br /&gt;
// (maximaal tot de door de XML-RPC server ingebouwde limiet)&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
      &#039;ZoekMethode&#039; =&amp;gt; $ZoekMethode,&lt;br /&gt;
      &#039;ZoekString&#039;  =&amp;gt; $zoekstring,&lt;br /&gt;
     [&#039;ZoekLimiet&#039;  =&amp;gt; $ZoekLimiet,]&lt;br /&gt;
     [&#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,] // Alleen voor gebruik op de&lt;br /&gt;
                                      // bijeenkomsten aanwezigheidsregistratie pagina&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | ZoekMethode         |  ZoekString                             |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
 | achternaam          | (deel van) de naam                      |&lt;br /&gt;
 | postcode            | (eerste deel van) postcode              |&lt;br /&gt;
 | lidnummer           | volledig lidnummer                      |&lt;br /&gt;
 | nieuwe_leden        | YYYYMMDD vanaf waar gezocht moet worden |&lt;br /&gt;
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |&lt;br /&gt;
 | kaderleden          | n.v.t.                                  |&lt;br /&gt;
 +---------------------+-----------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Zoekopdracht afgebroken, Y van Z getoond&#039;,]&lt;br /&gt;
    &#039;Results&#039;   =&amp;gt;&lt;br /&gt;
      [array(&lt;br /&gt;
         &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
         &#039;hccBeginDatum&#039; =&amp;gt; $hccBeginDatum,&lt;br /&gt;
         &#039;hccEindDatum&#039;  =&amp;gt; $hccEindDatum,&lt;br /&gt;
         &#039;cn&#039;            =&amp;gt; $cn,&lt;br /&gt;
         &#039;sn&#039;            =&amp;gt; $sn,&lt;br /&gt;
         &#039;givenName&#039;     =&amp;gt; $givenName,&lt;br /&gt;
         &#039;hccAchternaam&#039; =&amp;gt; $hccAchternaam,&lt;br /&gt;
         &#039;hccTussenVoegsels =&amp;gt; hccTussenVoegsels,  &lt;br /&gt;
         &#039;hccGeslacht&#039;   =&amp;gt; $hccGeslacht,&lt;br /&gt;
         &#039;hccStraatnaam&#039; =&amp;gt; $hccStraatnaam,&lt;br /&gt;
         &#039;hccHuisnummer&#039; =&amp;gt; $hccHuisnummer, &lt;br /&gt;
         &#039;hccPostcode&#039;   =&amp;gt; $hccPostcode,&lt;br /&gt;
         &#039;hccWoonplaats&#039; =&amp;gt; $hccWoonplaats,&lt;br /&gt;
         &#039;hccLand&#039;       =&amp;gt; $hccLand, &lt;br /&gt;
         &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
         &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
         &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
         &#039;mailHccnet&#039;    =&amp;gt; $mailHccnet,&lt;br /&gt;
         &#039;hccKaderMail&#039;  =&amp;gt; $hccKaderMail,&lt;br /&gt;
         &#039;hccRegio&#039;      =&amp;gt; $hccRegio,&lt;br /&gt;
         &#039;hccIG&#039;         =&amp;gt; $hccIG,&lt;br /&gt;
         &#039;hccRol&#039;        =&amp;gt; $hccRol,&lt;br /&gt;
         &#039;hccLogin&#039;      =&amp;gt; $hccLogin,&lt;br /&gt;
         &#039;hccPseudoniem&#039; =&amp;gt; $hccPseudoniem)]*));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ZoekGroeperingsLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) niet gevonden&#039; | &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten **&lt;br /&gt;
// A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
     [&#039;AccountCode&#039; =&amp;gt; $AccountCode,]&lt;br /&gt;
     [&#039;token&#039;       =&amp;gt; $token,]&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,    // lid dat aanwezig gemeld moet worden&lt;br /&gt;
     [&#039;correctie&#039;   =&amp;gt; $hccLidnr,]   // lid dat gecorrigeerd moet worden&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Bezoeker weggeschreven&#039;,&lt;br /&gt;
    &#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
      // info van deze bezoeker&lt;br /&gt;
      &#039;cn&#039;               =&amp;gt; $cn,                // cn (Verbeek, H.J.)&lt;br /&gt;
      &#039;hccGeslacht&#039;      =&amp;gt; $hccGeslacht,       // hccGeslacht van de bezoeker&lt;br /&gt;
      &#039;groeperingslid&#039;   =&amp;gt; $groeperingslid,    // TRUE of FALSE: is deze persoon lid van deze groepering&lt;br /&gt;
      &#039;mijnGroeperingen&#039; =&amp;gt; $mijnGroeperingen,  // komma-gescheiden lijst (regio, [hccIG]*)&lt;br /&gt;
      &#039;aantalBezoeken&#039;   =&amp;gt; $aantalBezoeken,    // hoe vaak heeft dit lid deze bijeenkomst bezocht&lt;br /&gt;
      // info van de bijeenkomst&lt;br /&gt;
      &#039;AantalBezoekers&#039;  =&amp;gt; $AantalBezoekers);  // aantal bezoekers van deze bijeenkomst&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;LidBezoektBijeenkomst&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.5 Vraag Lidgegevens token aan (geldig voor dit lid, en deze groepering, op deze datum)&lt;br /&gt;
// Als geen datum gegeven is, dan is het token vandaag geldig&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnummer, // vraag het token voor dit lid aan&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering,   // zoek binnen deze groepering&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]       // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;     =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;     =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;    =&amp;gt; &#039;Token opgevraagd&#039;,&lt;br /&gt;
    &#039;groepering&#039; =&amp;gt; $Groepering,&lt;br /&gt;
    &#039;token&#039;      =&amp;gt; $token,&lt;br /&gt;
    &#039;sn&#039;         =&amp;gt; $sn);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;VraagLidgegevensTokenAan&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.6 Toon bezoekersoverzicht&lt;br /&gt;
// (authenticatie op basis van lidnummer en bezoekersregistratie token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bezoekersoverzicht opgevraagd&#039;,&lt;br /&gt;
    &#039;Bezoekers&#039; =&amp;gt; $bezoekers,&lt;br /&gt;
   [&#039;Locatie&#039;   =&amp;gt; $Locatie]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// A.7 Geef het array met alle locaties&lt;br /&gt;
// (of beperk dit tot de locaties van de groepering $Groepering)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij hccToonInJoomla aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// Desgewenst worden alle resultaten waarbij ToonOpKaderNet aan staat onderdrukt&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocaties&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;Groepering&#039;     =&amp;gt; $hccGroepering,]&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;       =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;         =&amp;gt; &#039;GeefLocaties&#039;,&lt;br /&gt;
    &#039;Status&#039;         =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;        =&amp;gt; &#039;Locaties niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;      =&amp;gt; &#039;Geen locaties gevonden voor groepering $hccGroepering&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;   =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039; =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// A.8 Registreer een niet-hcclid als bezoeker tijdens een bijeenkomst&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;RegistreerGast&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;AccountNaam&#039;   =&amp;gt; $lidnr,        // credentials&lt;br /&gt;
      &#039;AccountCode&#039;   =&amp;gt; $AccountCode,  // credentials&lt;br /&gt;
      &#039;token&#039;         =&amp;gt; $token,        // credentials&lt;br /&gt;
      &#039;Bijeenkomst&#039;   =&amp;gt; $groepering,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;naam&#039;          =&amp;gt; $naam,&lt;br /&gt;
      &#039;mail&#039;          =&amp;gt; $mail,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;buitenland&#039;    =&amp;gt; $buitenland,&lt;br /&gt;
     [&#039;nietLidNummer&#039; =&amp;gt; $nietLidNummer,]&lt;br /&gt;
     [&#039;instructies&#039;   =&amp;gt; $instructies,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; $aanroep,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Niet-lid als bezoeker geregistreerd&#039;,&lt;br /&gt;
    &#039;Result&#039;  =&amp;gt; $result_array);&lt;br /&gt;
&lt;br /&gt;
// A.9 Geef het array met alle locatienamen&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locaties opgevraagd&#039;,&lt;br /&gt;
    &#039;Locaties&#039;           =&amp;gt; $locaties,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefLocatieNamen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Locatienamen niet beschikbaar&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039;          =&amp;gt; &#039;Geen locatienamen gevonden&#039;,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
&lt;br /&gt;
// A.10 Schrijf een niet-lid in op een bulletin&lt;br /&gt;
// (2019.12.05: wordt actief gebruikt in Joomla module)&lt;br /&gt;
//      Deze aanroep mag *ook* worden gebruikt om een wel-lid in te schrijven.&lt;br /&gt;
//      Voorwaarde is dat bewezen is dat er controle bestaat over het opgegeven email adres&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
      &#039;hccOptin&#039;       =&amp;gt; $hccOptin,       // bulletin waarop ingeschreven wordt&lt;br /&gt;
      &#039;hccOptinSource&#039; =&amp;gt; $hccOptinSource, // site waar aanmelding vandaan komt&lt;br /&gt;
      &#039;Email&#039;          =&amp;gt; $Email,          // niet-lid: email adres&lt;br /&gt;
      &#039;Naam&#039;           =&amp;gt; $Naam,           // niet-lid: naam&lt;br /&gt;
     [&#039;hccLidNummer&#039;   =&amp;gt; $hccLidNummer,]  // optioneel: ik ben lid, dit is mijn lidnummer&lt;br /&gt;
     [&#039;Postcode&#039;       =&amp;gt; $Postcode,]      // optioneel: niet-lid: postcode&lt;br /&gt;
     [&#039;Huisnummer&#039;     =&amp;gt; $Huisnummer,]    // optioneel: niet-lid: huisnummer&lt;br /&gt;
     [&#039;hccGeslacht&#039;    =&amp;gt; $hccGeslacht,] // optioneel: niet-lid: geslacht (M/V/O)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Inschrijving op bulletin gelukt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNietlidInOpBulletin&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                   &#039;Gegevenscombinatie onjuist&#039;,&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid DN syntax&#039;    |&lt;br /&gt;
                   &#039;Invalid credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **&lt;br /&gt;
// A.11 Toon bezoekers aantallen&lt;br /&gt;
// (authenticatie op basis van AccountNaam en AccountCode of token)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,]&lt;br /&gt;
      &#039;AccountNaam&#039; =&amp;gt; $lidnr,&lt;br /&gt;
      &#039;AccountCode&#039; =&amp;gt; $AccountCode,&lt;br /&gt;
      &#039;token&#039;       =&amp;gt; $token,&lt;br /&gt;
     [&#039;datum&#039;       =&amp;gt; $datum,]      // optioneel: datum YYYY-MM-DD, anders: vandaag&lt;br /&gt;
      &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst, // groepering die deze bijeenkomst organiseert&lt;br /&gt;
     [&#039;ServerID&#039;    =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;      =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;BezoekersAantallen opgevraagd&#039;,&lt;br /&gt;
    &#039;Datum&#039;       =&amp;gt; $datum,&lt;br /&gt;
    &#039;Bijeenkomst&#039; =&amp;gt; $Bijeenkomst,&lt;br /&gt;
    &#039;Bezoekers&#039;   =&amp;gt; array(&lt;br /&gt;
      [HCC!seniorenacademie] =&amp;gt; Array(&lt;br /&gt;
        [Gorinchem] =&amp;gt; 15&lt;br /&gt;
        [Woerden]   =&amp;gt; 36)&lt;br /&gt;
      ...));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefBezoekersAantallen&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Geen bijeenkomst gevonden&#039; | &#039;Geen bezoekers gevonden&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.12 GeefAlleBulletins&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefAlleBulletins&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Bulletins opgevraagd&#039;,&lt;br /&gt;
    &#039;bulletins&#039;       =&amp;gt; $bulletins);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.13 ExpandeerPostcode&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;ExpandeerPostcode&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Postcode opgevraagd&#039;,&lt;br /&gt;
    &#039;detailgegevens&#039;  =&amp;gt; $detailgegevens);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.25 UpdateNAW&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;UpdateNAW&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;geslacht&#039;      =&amp;gt; $geslacht,&lt;br /&gt;
      &#039;postcode&#039;      =&amp;gt; $postcode,&lt;br /&gt;
      &#039;huisnummer&#039;    =&amp;gt; $huisnummer,&lt;br /&gt;
      &#039;toevoeging&#039;    =&amp;gt; $toevoeging,&lt;br /&gt;
      &#039;straat&#039;        =&amp;gt; $straat,&lt;br /&gt;
      &#039;woonplaats&#039;    =&amp;gt; $woonplaats,&lt;br /&gt;
      &#039;landcode&#039;      =&amp;gt; $landcode,&lt;br /&gt;
      &#039;email&#039;         =&amp;gt; $email,&lt;br /&gt;
      &#039;voornaam&#039;      =&amp;gt; $voornaam,&lt;br /&gt;
      &#039;voorletters&#039;   =&amp;gt; $voorletters,&lt;br /&gt;
      &#039;hccTelefoon&#039;   =&amp;gt; $hccTelefoon,&lt;br /&gt;
      &#039;hccMobiel&#039;     =&amp;gt; $hccMobiel,&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;UpdateContactGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Contactgegevens bijgewerkt&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.18 NormaliseerTelefoon&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLand&#039;        =&amp;gt; $hccLand,&lt;br /&gt;
      &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;NormaliseerTelefoon&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Telefoonnummer genormaliseerd&#039;,&lt;br /&gt;
    &#039;Telefoonnummer&#039;  =&amp;gt; $Telefoonnummer);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.21 HaalIGBedragenOp&lt;br /&gt;
//      Geef alle IG&#039;s waar je zelf lid van kunt worden, inclusief het bijbehorende bedrag&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalIGBedragenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Interessegroepen en bedragen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.22 HaalTariefGroepenOp&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;HaalTariefGroepenOp&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Tariefgroepen opgevraagd&#039;,&lt;br /&gt;
    &#039;details&#039;         =&amp;gt; $details);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.23 PasInteressegroepAan&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;      =&amp;gt; $hcclidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;nieuw&#039;         =&amp;gt; $IG_lijst_nieuw,]&lt;br /&gt;
     [&#039;weg&#039;           =&amp;gt; $IG_lijst_weg,]&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;PasInteressegroepAan&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;IG keuzen aangepast&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. Joomla module Bas&lt;br /&gt;
// A.24 GeefSSOUrls&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;GeefSSOUrls&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;SSO_urls&#039;        =&amp;gt; $sso_urls,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Single Sign On URLs opgevraagd&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** HenZ **&lt;br /&gt;
// ** t.b.v. daily cron job  **&lt;br /&gt;
// ** t.b.v. dagelijkse opschoon jobs Joomla template sites **&lt;br /&gt;
// C.1 Vraag de lijst met uitgeschreven leden op&lt;br /&gt;
//     Dit kan beperkt worden tot een bepaalde regio of interessegroep&lt;br /&gt;
//     Daarnaast kan het tijdvak waarin gezocht wordt vrij gekozen worden&lt;br /&gt;
//     (gesteld dat de LDAP database nog leden uit die periode bevat)&lt;br /&gt;
//     Antwoord: lijst met (lidnummer, hccLogin, sn,&lt;br /&gt;
//                          datum einde lidmaatschap (formaat:YYYYMMDD))&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; GeefUitgeschrevenLeden &amp;lt;== (oud: GeefOpgezegdeLeden)&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccRegio&#039;       =&amp;gt; $hccRegio,    // of leeg&lt;br /&gt;
      &#039;hccIg&#039;          =&amp;gt; $hccIg,       // of leeg&lt;br /&gt;
      &#039;datum_vanaf&#039;    =&amp;gt; $datum_sinds, // YYYY-MM-DD of YYYYMMDD of leeg (leeg: 3 dagen geleden)&lt;br /&gt;
      &#039;datum_tot&#039;      =&amp;gt; $datum_tot,   // YYYY-MM-DD of YYYYMMDD of leeg (leeg: vandaag)&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Uitgeschreven leden&#039;,&lt;br /&gt;
   [&#039;hccRegio&#039;    =&amp;gt; $hccRegio,]&lt;br /&gt;
   [&#039;hccIg&#039;       =&amp;gt; $hccIg,]&lt;br /&gt;
   [&#039;datum_vanaf&#039; =&amp;gt; $datum_vanaf,]&lt;br /&gt;
   [&#039;datum_tot&#039;   =&amp;gt; $datum_tot,]&lt;br /&gt;
   [&#039;Results&#039; =&amp;gt; array(&lt;br /&gt;
     [array(&lt;br /&gt;
        &#039;hccLogin&#039;               =&amp;gt; $hccLogin,&lt;br /&gt;
        &#039;hccLidNummer&#039;           =&amp;gt; $hccLidnummer,&lt;br /&gt;
        &#039;sn&#039;                     =&amp;gt; $sn,&lt;br /&gt;
        &#039;DatumEindeLidmaatschap&#039; =&amp;gt; $DatumEindeLidmaatschap)]*);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefUitgeschrevenLeden&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCCpartner aanroepen ===&lt;br /&gt;
(interface versie 1)&amp;lt;br&amp;gt;&lt;br /&gt;
(oude interface, niet meer gebruiken!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.1 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    array(&#039;partnerLogin&#039;,    $partnerLogin),&lt;br /&gt;
    array(&#039;partnerPassword&#039;, $partnerPassword),&lt;br /&gt;
    array(&#039;hccLidnummer&#039;,    $hcclidnummer),&lt;br /&gt;
    array(&#039;postcode&#039;,        $postcode)));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;TRUE&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;, &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;, &#039;FALSE&#039;));&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;ControleerHCCLidmaatschap&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Onjuiste credentials&#039;));&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
     &#039;HCCpartner&#039;,&lt;br /&gt;
     array(&lt;br /&gt;
       &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
       array(&#039;parameter&#039;, $iets)));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;HCCpartner&#039;,&lt;br /&gt;
    array(&#039;Action&#039;,  &#039;OnbekendeAanroep&#039;),&lt;br /&gt;
    array(&#039;Status&#039;,  &#039;FALSE&#039;),&lt;br /&gt;
    array(&#039;Message&#039;, &#039;Opdracht onbekend&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCCpartners aanroepen ===&lt;br /&gt;
(interface versie 2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **&lt;br /&gt;
// D.2 Controleer of iemand lid is op basis van lidnummer en postcode&lt;br /&gt;
//     Antwoord: TRUE of FALSE&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;          =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
      &#039;partnerLogin&#039;    =&amp;gt; $partnerLogin,&lt;br /&gt;
      &#039;partnerPassword&#039; =&amp;gt; $partnerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hcclidnummer,&lt;br /&gt;
      &#039;postcode&#039;        =&amp;gt; $postcode,&lt;br /&gt;
     [&#039;ServerID&#039;        =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;          =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;        =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;groepering=$groepering&#039;]); // als de partner beperkt is tot 1 groepering&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;      =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039; =&amp;gt; &#039;FALSE&#039;);&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039;);&lt;br /&gt;
&lt;br /&gt;
// onbekende aanroep&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;HCCpartners&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;Action&#039;    =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
      &#039;parameter&#039; =&amp;gt; $iets));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;0&#039;       =&amp;gt; &#039;HCCpartners&#039;,&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;OnbekendeAanroep&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Opdracht onbekend&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-kader aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ** beheer.hcc.nl **&lt;br /&gt;
// F.2 Controleer of dit een kaderlid is&lt;br /&gt;
// (authenticatie op basis van hccLogin en userPassword)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsKaderLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
      &#039;userPassword&#039; =&amp;gt; $userPassword,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;       =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;          =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;          =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;         =&amp;gt; &#039;Is kaderlid&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;        =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;cn&#039;              =&amp;gt; $cn,&lt;br /&gt;
    &#039;sn&#039;              =&amp;gt; $sn,&lt;br /&gt;
    &#039;hccRol&#039;          =&amp;gt; $hccRol,&lt;br /&gt;
    &#039;mail&#039;            =&amp;gt; $mail,&lt;br /&gt;
    &#039;mailHccnet&#039;      =&amp;gt; $mailHccnet,&lt;br /&gt;
    &#039;hccKaderMail&#039;    =&amp;gt; $hccKaderMail,&lt;br /&gt;
    &#039;hccKaderForward&#039; =&amp;gt; $hccKaderForward);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsKaderLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; | &#039;Is geen kaderlid&#039;);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.4 Vraag alle groeperingen op&lt;br /&gt;
// Het is mogelijk om een groepering te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  ToonInOverzichtenFilter : attribuut &#039;hccToonInOverzichten&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  BulletinsFilter         : attribuut &#039;hccBulletins&#039;&lt;br /&gt;
//  EmailFilter             : attribuut &#039;hccFunctionalEmail&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;                =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;                  =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;                =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;          =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;BulletinsFilter&#039;         =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;EmailFilter&#039;             =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;&#039; | &#039;TRUE&#039;));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;                  =&amp;gt; &#039;GeefAlleGroeperingen&#039;,&lt;br /&gt;
    &#039;Status&#039;                  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;                 =&amp;gt; &#039;Lijst met groeperingen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;                  =&amp;gt; $groeperingen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;            =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;ToonInOverzichtenFilter&#039; =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;          =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039;      =&amp;gt; &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **&lt;br /&gt;
// F.5 Vraag alle kaderrollen op&lt;br /&gt;
// Het is mogelijk om een kaderrol  te onderdrukken, als er in LDAP &#039;&#039;&#039;een&#039;&#039;&#039; waarde in een opgegeven attribuur aanwezig is.&lt;br /&gt;
// (iedere waarde anders dan een lege string wordt behandeld alsof &#039;TRUE&#039; gegeven is)&lt;br /&gt;
//  JoomlaFilter            : attribuut &#039;hccToonInJoomla&#039;&lt;br /&gt;
//  KadernetFilter          : attribuut &#039;hccToonOpKaderNet&#039;&lt;br /&gt;
//  KaderMutatieFilter      : attribuut &#039;hccKaderMutaties&#039;&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039;           =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;             =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;           =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
     [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KadernetFilter&#039;     =&amp;gt; &#039;&#039; | &#039;TRUE&#039;,]&lt;br /&gt;
     [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;             =&amp;gt; &#039;GeefAlleKaderRollen&#039;,&lt;br /&gt;
    &#039;Status&#039;             =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;            =&amp;gt; &#039;Lijst met kaderrollen opgevraagd&#039;,&lt;br /&gt;
    &#039;Result&#039;             =&amp;gt; $kaderrollen,&lt;br /&gt;
   [&#039;JoomlaFilter&#039;       =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KadernetFilter&#039;     =&amp;gt; &#039;TRUE&#039;,]&lt;br /&gt;
   [&#039;KaderMutatieFilter&#039; =&amp;gt; &#039;&#039; | &#039;TRUE&#039;]);&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de kantoor-beheerpagina **&lt;br /&gt;
// F.9 Geef de gevevens van de mailbox van dit kaderlid&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;     =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039;  =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker(s) gevonden&#039;,&lt;br /&gt;
    &#039;kadermail_omvang&#039;           =&amp;gt; $Formaat,&lt;br /&gt;
    &#039;kadermail_aantal_inbox&#039;     =&amp;gt; $aantal_inbox,&lt;br /&gt;
    &#039;kadermail_aantal_nieuw&#039;     =&amp;gt; $aantal_nieuw,&lt;br /&gt;
    &#039;kadermail_laatst_opgehaald&#039; =&amp;gt; $laatst_opgehaald);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;GeefKadermailGegevens&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039;));&lt;br /&gt;
&lt;br /&gt;
// ** t.b.v. de Joomla Kadernet module **&lt;br /&gt;
//  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
// (authenticatie op basis van lidnummer, JoomlaToken en siteID en als extra hccCode van de aanvrager)&lt;br /&gt;
 $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;hccCode&#039;        =&amp;gt; $hccCode,&lt;br /&gt;
      &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
      &#039;hccLidnummer    =&amp;gt; $hccLidnummer, // lidnummer van het te muteren hcc lid&lt;br /&gt;
      &#039;hccRol&#039;         =&amp;gt; $hccRol,       // de nieuwe dan wel op te heffen rol&lt;br /&gt;
                                         // de rol &#039;ALLES_WEG&#039; ruimt alle rollen van dit hcc lid voor deze groepering op&lt;br /&gt;
      &#039;actie&#039;          =&amp;gt; &#039;Nieuw&#039; | &#039;Weg&#039;,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
      &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,]&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Groepering samenstelling aangepast&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Bedankmail gestuuurd aan ex-kaderlid&#039;]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;MuteerGroeperingSamenstelling&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Gegevenscombinatie onjuist&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;,&lt;br /&gt;
   [&#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;lidnummer &amp;lt;hccLidnummer&amp;gt; is geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Oude rol niet gevonden&#039; |&lt;br /&gt;
		   &#039;Nieuwe rol kan niet samen met bestaande rol&#039; |&lt;br /&gt;
		   &#039;Alleen voorzitter of secretaris kan kadermutaties uitvoeren&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HCC-groepering aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// I.2 controleer of een gebruiker bestaat op basis van de combinatie&lt;br /&gt;
//     lidnummer + postcode + huisnummer&lt;br /&gt;
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)&lt;br /&gt;
// (alternatieve authenticatie mogelijk door lidnummer + hcc-code in te vullen)&lt;br /&gt;
//&lt;br /&gt;
// Aan de aanroeper worden zekere eisen gesteld:&lt;br /&gt;
// * dient een rol te vervullen binnen de groepering &#039;FOR&#039;(forum)&lt;br /&gt;
// * dan wel dient de rol &#039;VRBK&#039; (vraagbaak) te vervullen binnen een groepering&lt;br /&gt;
//&lt;br /&gt;
// Er wordt door de gehele leden-database gezocht, waarna terug wordt gegeven &lt;br /&gt;
// * of dit hcc lid inderdaad bestaat&lt;br /&gt;
// en, als het om een aanvraag van een vraagbaak vrijwilliger gaat, &lt;br /&gt;
// * tevens of het gezochte hcc lid deel uitmaakt van zijn groepering&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;IsHCCLid&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLogin&#039;        =&amp;gt; [$hccLogin | $hccLidnummer],&lt;br /&gt;
      &#039;userPassword&#039;    =&amp;gt; [$userPassword | $hccCode],&lt;br /&gt;
      &#039;zoekhccLidnr&#039;    =&amp;gt; $zoekhccLidnr,&lt;br /&gt;
      &#039;zoekhccPostcode&#039; =&amp;gt; $zoekhccPostcode,&lt;br /&gt;
      &#039;zoekhccHuisnr&#039;   =&amp;gt; $zoekhccHuisnr,&lt;br /&gt;
      &#039;zoekgroepering&#039;  =&amp;gt; $zoekgroepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruikersgegevens gecontroleerd&#039;,&lt;br /&gt;
   [&#039;Groeperingslid&#039; =&amp;gt; $IsGroeperingLid]));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;IsHCCLid&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; &#039;Gebruiker bestaat niet&#039; |&lt;br /&gt;
                 &#039;Onjuiste credentials&#039; |&lt;br /&gt;
                 &#039;Wel HCC lid, maar geen lid van groepering $groepering&#039; |&lt;br /&gt;
                 &#039;Onvoldoende rechten&#039; |&lt;br /&gt;
                 &#039;Vul alle verplichte velden in!&#039;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HenZ aanroepen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// I.3 Geef de einddatum van een actief dan wel uitgeschreven lid&lt;br /&gt;
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,&lt;br /&gt;
      &#039;beheerPassword&#039; =&amp;gt; $beheerPassword,&lt;br /&gt;
      &#039;hccLidnummer&#039;   =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;ServerID&#039;       =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;         =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
    &#039;hccLogin&#039;     =&amp;gt; $hccLogin,&lt;br /&gt;
    &#039;hccEindDatum&#039; =&amp;gt; $hccEindDatum (&#039;yyyymmdd&#039; | &#039;&#039;));&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefhccEindDatum&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Invalid credentials&#039; |&lt;br /&gt;
                   &#039;Lidnummer niet gevonden&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== (Forum,vraagbaak) onderwerpen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// L.1 MaakOnderwerp&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
      &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is aangemaakt&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MaakOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.2 VerwijderOnderwerp&lt;br /&gt;
&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
      &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
      &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
      &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp is verwijderd&#039;,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;VerwijderOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039;            |&lt;br /&gt;
                   &#039;Geen webmaster&#039;                 |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;         |&lt;br /&gt;
		   &#039;Ruim eerst alle geautoriseerde gebruikers op&#039; |&lt;br /&gt;
		   &#039;Kan onderwerp niet verwijderen&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.3 GeefOnderwerpen &lt;br /&gt;
// Geef het array met de lijst van onderwerpen voor de betreffende groepering&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;  =&amp;gt; $groepering));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerpen opgevraagd&#039;,&lt;br /&gt;
    &#039;onderwerpen&#039; =&amp;gt; $onderwerpen); // het array met onderwerpen&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;GeefOnderwerpen&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.4 MuteerOnderwerp&lt;br /&gt;
// Pas de description van een onderwerp aan&lt;br /&gt;
//&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
   &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
   array(&lt;br /&gt;
     &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
     &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
     &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
     &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
     &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
     &#039;groepering&#039;  =&amp;gt; $groepering,&lt;br /&gt;
     &#039;description&#039; =&amp;gt; $description,&lt;br /&gt;
     &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp aangepast&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039; =&amp;gt; $description);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerp&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039; |&lt;br /&gt;
		   &#039;Onderwerp behoort bij andere groepering&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
// Geef kaderlid $kaderLidNr de autorisatie MOD, VRBK of RED bij onderwerp $onderwerp&lt;br /&gt;
// (of haal die autorisatie weg)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;       =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039;    =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;groepering&#039;     =&amp;gt; $groepering,&lt;br /&gt;
    &#039;onderwerp&#039;      =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;kaderLidNr&#039;     =&amp;gt; $kaderLidNr,&lt;br /&gt;
    &#039;hccAutorisatie&#039; =&amp;gt; &#039;MOD&#039; | &#039;VRBK&#039; | &#039;RED&#039;,&lt;br /&gt;
   [&#039;verwijder&#039;      =&amp;gt; &#039;TRUE&#039;]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;      =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;      =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;     =&amp;gt; &#039;Onderwerp autorisatie aangepast&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;MuteerOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Geen kaderlid&#039; |&lt;br /&gt;
		   &#039;Onjuiste autorisatie opgegeven&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&lt;br /&gt;
// L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;hccLidnr&#039;    =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;JoomlaToken&#039; =&amp;gt; $JoomlaToken,&lt;br /&gt;
    &#039;ServerID&#039;    =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;      =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;    =&amp;gt; $remoteIPaddress,&lt;br /&gt;
    &#039;onderwerp&#039;   =&amp;gt; $onderwerpID));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;Autorisaties opgehaald&#039;,&lt;br /&gt;
    &#039;onderwerp&#039;    =&amp;gt; $onderwerpID,&lt;br /&gt;
    &#039;description&#039;  =&amp;gt; $description,&lt;br /&gt;
    &#039;autorisaties&#039; =&amp;gt; &lt;br /&gt;
      [Array(&lt;br /&gt;
        &#039;hccLidnummer&#039;    =&amp;gt; $hccLidnummer&lt;br /&gt;
        &#039;cn&#039;              =&amp;gt; $cn&lt;br /&gt;
        &#039;hccAutorisatie&#039;  =&amp;gt; {komma-gescheiden autorisaties})]);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ToonOnderwerpAutorisatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Onjuist JoomlaToken&#039; |&lt;br /&gt;
                   &#039;Geen webmaster&#039; |&lt;br /&gt;
		   &#039;Onderwerp bestaat niet&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Dynamics Cloud (Cayentis) onderwerpen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// M.1 Upload_CSV_bestand&lt;br /&gt;
// De CRM proxy upload de dagelijkse CSV synchronisatie-bestanden naar de XML-RPC server&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;      =&amp;gt; $beheerLogin,     // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039;   =&amp;gt; $beheerPassword,  // xml-rpc password&lt;br /&gt;
    &#039;CSV_bestand_type&#039; =&amp;gt; &#039;1&#039; | &#039;2&#039; | &#039;3&#039; , // 1=Contactpersonen/Hoofdlidmaatschappen&lt;br /&gt;
                                            // 2=Gremiumlidmaatschap codes&lt;br /&gt;
                                            // 3=Gremiumlidmaatschappen&lt;br /&gt;
    &#039;CSV_bestand&#039;      =&amp;gt; $CSV_bestand));   // het CSV bestand (base64 encoded)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Bestand opgeslagen&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Upload_CSV_bestand&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.2 SchrijfNieuwLidIn&lt;br /&gt;
// &lt;br /&gt;
// Maak in het CRM een nieuw HCC lid aan&lt;br /&gt;
// De NAW gegevens worden in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;NAWgegevens&#039;    =&amp;gt; $NAW_Array,&lt;br /&gt;
    &#039;ServerID&#039;       =&amp;gt; gethostname(),&lt;br /&gt;
    &#039;SiteID&#039;         =&amp;gt; $siteID,&lt;br /&gt;
    &#039;RemoteID&#039;       =&amp;gt; $remoteIPaddress);&lt;br /&gt;
// $NAW_array = array(&lt;br /&gt;
//   &#039;GeboorteDatum&#039;         =&amp;gt; $geboortedatum,&lt;br /&gt;
//   &#039;Geslacht&#039;              =&amp;gt; $geslacht,&lt;br /&gt;
//   &#039;Voornaam&#039;              =&amp;gt; $voornaam,&lt;br /&gt;
//   &#039;Voorletters&#039;           =&amp;gt; $voorletters,&lt;br /&gt;
//   &#039;Tussenvoegsel&#039;         =&amp;gt; $tussenvoegsel,&lt;br /&gt;
//   &#039;Achternaam&#039;            =&amp;gt; $achternaam,&lt;br /&gt;
//   &#039;Straatnaam&#039;            =&amp;gt; $straatnaam,&lt;br /&gt;
//   &#039;Huisnummer&#039;            =&amp;gt; $huisnummer,&lt;br /&gt;
//   &#039;HuisnummerToevoeging&#039;  =&amp;gt; $huisnummertoevoeging,&lt;br /&gt;
//   &#039;Woonplaats&#039;            =&amp;gt; $woonplaats,&lt;br /&gt;
//   &#039;Postcode&#039;              =&amp;gt; $postcode,&lt;br /&gt;
//   &#039;Land&#039;                  =&amp;gt; $land,&lt;br /&gt;
//   &#039;Telefoonnummer&#039;        =&amp;gt; $telefoonnummer,&lt;br /&gt;
//   &#039;MobielNummer&#039;          =&amp;gt; $mobielnummer,&lt;br /&gt;
//   &#039;Mail&#039;                  =&amp;gt; $mail,&lt;br /&gt;
//   &#039;IBAN&#039;                  =&amp;gt; $IBAN,&lt;br /&gt;
//   &#039;Interessegroep&#039;        =&amp;gt; $IGs, // komma-gescheiden lijst met IG&#039;s&lt;br /&gt;
//   &#039;Geschenk&#039;              =&amp;gt; $geschenk,&lt;br /&gt;
//   &#039;Actiecode&#039;             =&amp;gt; $actiecode,&lt;br /&gt;
//   &#039;Voorwaarden&#039;           =&amp;gt; $Akkoord); // &#039;Akkoord&#039;&lt;br /&gt;
)&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;nieuw lid ingeschreven&#039;,&lt;br /&gt;
    &#039;hccLidnr&#039;  =&amp;gt; $hccLidnr,&lt;br /&gt;
    &#039;hccCode&#039;   =&amp;gt; $hccCode);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;SchrijfNieuwLidIn&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.3 Verwerk_JSON_mutatie&lt;br /&gt;
// De CRM proxy kan NAW en/of IG mutaties en/of hccCode mutaties live doorgeven&lt;br /&gt;
// Deze gegevens worden in JSON in een dedicated formaat aangeleverd&lt;br /&gt;
// (authenticatie op basis van beheerLogin en beheerPassword)&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    &#039;beheerLogin&#039;    =&amp;gt; $beheerLogin,    // xml-rpc user&lt;br /&gt;
    &#039;beheerPassword&#039; =&amp;gt; $beheerPassword, // xml-rpc password&lt;br /&gt;
    &#039;mutatie_type&#039;   =&amp;gt; &#039;1&#039; | &#039;2&#039;,       // 1=Contactpersoon/Hoofdlidmaatschap&lt;br /&gt;
                                         // 2=Gremiumlidmaatschap&lt;br /&gt;
    &#039;JSON_mutatie&#039;   =&amp;gt; $JSON_mutatie)); // de JSON payload&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Mutatie verwerkt&#039;);&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;Verwerk_JSON_mutatie&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Gegevenscombinatie onjuist&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&lt;br /&gt;
// M.4 Vertaal landcode&lt;br /&gt;
// Het CRM werkt met numerieke landcodes, wij met cijfers&lt;br /&gt;
// Vertaal die&lt;br /&gt;
// Er moet in de aanroep 1 veld aanwezig zijn, beide waarden komen in het antwoord terug&lt;br /&gt;
$request = xmlrpc_encode_request(&lt;br /&gt;
  &#039;ISO_landcode&#039;,&lt;br /&gt;
  array(&lt;br /&gt;
    [&#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,]&lt;br /&gt;
    [&#039;ISO_code   &#039;  =&amp;gt; $ISO_code]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;       =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;       =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;      =&amp;gt; &#039;ISO code lookup geslaagd&#039;,&lt;br /&gt;
    &#039;ISO_numeriek&#039; =&amp;gt; $ISO_numeriek,&lt;br /&gt;
    &#039;ISO_code   &#039;  =&amp;gt; $ISO_code,&lt;br /&gt;
    &#039;ISO_benaming&#039; =&amp;gt; $ISO_benaming); // de descriptive name van deze ISO code&lt;br /&gt;
Output negatief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;    =&amp;gt; &#039;ISO_landcode&#039;,&lt;br /&gt;
    &#039;Status&#039;    =&amp;gt; &#039;FALSE&#039;,&lt;br /&gt;
    &#039;Message&#039;   =&amp;gt; &#039;Kan geen bijpassende vertaling vinden&#039;&lt;br /&gt;
    &#039;ExtraInfo&#039; =&amp;gt; &#039;Vul alle verplichte velden in!&#039; |&lt;br /&gt;
                   &#039;Er is iets mis gegaan&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
// M.5 MuteerAanmeldingsformulier&lt;br /&gt;
// Sla een JSON veld op in de XML-RPC server zodat deze weer opgehaald kan worden door de websites&lt;br /&gt;
// Authenticatie op basis van hccLidnummer en JoomlaToken&lt;br /&gt;
// Deze mutaties mogen alleen door HN#WM of SITE#WM gedaan worden.&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    MuteerAanmeldingsformulier,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,&lt;br /&gt;
      &#039;formulierdata&#039; =&amp;gt; $formulierdata, // JSON veld met alle gegevens voor het aanmeld formulier&lt;br /&gt;
      &#039;ServerID&#039;      =&amp;gt; gethostname(), &lt;br /&gt;
      &#039;SiteID&#039;        =&amp;gt; $siteID,&lt;br /&gt;
      &#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress ));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;   =&amp;gt; &#039;MuteerAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;   =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039;  =&amp;gt; &#039;aanmeldingsformulier bijgewerkt&#039;;&lt;br /&gt;
 &lt;br /&gt;
// M.6 HaalAanmeldingsformulier&lt;br /&gt;
// (geen authenticatie)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    HaalAanmeldingsformulier,&lt;br /&gt;
    array(&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;        =&amp;gt; &#039;HaalAanmeldingsformulier&#039;,&lt;br /&gt;
    &#039;Status&#039;        =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;formulierdata&#039; =&amp;gt; $formulierdata); // JSON veld met alle gegevens voor het aanmeld formulier &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// M.7 GeefFactuurOverzicht&lt;br /&gt;
// (authenticatie op basis van hccLidnummer + JoomlaToken + siteID&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    GeefFactuurOverzicht,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039; =&amp;gt; $hccLidnummer,&lt;br /&gt;
      &#039;JoomlaToken&#039;  =&amp;gt; $JoomlaToken,&lt;br /&gt;
     [&#039;ServerID&#039;     =&amp;gt; gethostname(),]&lt;br /&gt;
      &#039;SiteID&#039;       =&amp;gt; $siteID, &lt;br /&gt;
     [&#039;RemoteID&#039;     =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;           =&amp;gt; &#039;GeefFactuurOverzicht&#039;,&lt;br /&gt;
    &#039;Status&#039;           =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;FactuurOverzicht&#039; =&amp;gt; $FactuurOverzicht); &lt;br /&gt;
//  $FactuurOverzicht =&lt;br /&gt;
//     array(&lt;br /&gt;
//       array(&lt;br /&gt;
//         &#039;FactuurID&#039;     =&amp;gt; &#039;a5b93460-4536-ea11-a813-000d3a2c53fa&#039;,&lt;br /&gt;
//         &#039;FactuurNummer&#039; =&amp;gt; &#039;200118673J5&#039;&lt;br /&gt;
//         &#039;FactuurDatum&#039;  =&amp;gt; &#039;2020-01-15&#039;&lt;br /&gt;
//         &#039;bedrag&#039;        =&amp;gt; 42.37&lt;br /&gt;
//         &#039;BetaalStatus&#039;  =&amp;gt; 0]));&lt;br /&gt;
//     )&lt;br /&gt;
&lt;br /&gt;
// M.8 HaalFactuur&lt;br /&gt;
// (authenticatie op basis van JoomlaToken of FactuurToken)&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    HaalFactuur,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;hccLidnummer&#039;  =&amp;gt; $hccLidnummer,&lt;br /&gt;
     [&#039;JoomlaToken&#039;   =&amp;gt; $JoomlaToken,]&lt;br /&gt;
     [&#039;FactuurToken&#039;  =&amp;gt; $FactuurToken,]&lt;br /&gt;
      &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
     [&#039;ServerID&#039;      =&amp;gt; gethostname(),]&lt;br /&gt;
     [&#039;SiteID&#039;        =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039;      =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;HaalFactuur&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;factuur&#039; =&amp;gt; $factuurgegevens); &lt;br /&gt;
//  $factuurgegevens =&lt;br /&gt;
//    array(&lt;br /&gt;
//         &#039;FactuurNummer&#039; =&amp;gt; $FactuurNummer,&lt;br /&gt;
//         &#039;FactuurDatum&#039;  =&amp;gt; $FactuurDatum,&lt;br /&gt;
//         &#039;FactuurID&#039;     =&amp;gt; $FactuurID,&lt;br /&gt;
//         &#039;Bestandsnaam&#039;  =&amp;gt; $Bestandsnaam,&lt;br /&gt;
//         &#039;PDF&#039;           =&amp;gt; $PDF) // base64 encoded PDF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Echo test ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// t.b.v. controle of de verbinding met de XML-RPC server functioneert&lt;br /&gt;
// Eenvoudige echo test&lt;br /&gt;
&lt;br /&gt;
  $request = xmlrpc_encode_request(&lt;br /&gt;
    &#039;echo&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
      &#039;What&#039;     =&amp;gt; $string,&lt;br /&gt;
     [&#039;ServerID&#039; =&amp;gt; gethostname(),] &lt;br /&gt;
     [&#039;SiteID&#039;   =&amp;gt; $siteID,]&lt;br /&gt;
     [&#039;RemoteID&#039; =&amp;gt; $remoteIPaddress]));&lt;br /&gt;
Output positief:&lt;br /&gt;
  $reply = array(&lt;br /&gt;
    &#039;Action&#039;  =&amp;gt; &#039;echo&#039;,&lt;br /&gt;
    &#039;Status&#039;  =&amp;gt; &#039;TRUE&#039;,&lt;br /&gt;
    &#039;Message&#039; =&amp;gt; $string);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HenZ XML-RPC interface ===&lt;br /&gt;
&lt;br /&gt;
Overzicht van XML-RPC procedures die bij HenZ draaien&lt;br /&gt;
(worden via de Hobbynet XML-RPC server afgehandeld)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- Action=2&lt;br /&gt;
  wijzig gebruikersnaam en wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=3&lt;br /&gt;
  controleer of een gebruikersnaam bestaat&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.2)&lt;br /&gt;
&lt;br /&gt;
- Action=4&lt;br /&gt;
  creer een nieuwe gebruiker. Per lidnummer is er 1 account. Als er al een &lt;br /&gt;
  account voor dit lidnummer bestaat wordt het bestaande account hernoemd.&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 8.1)&lt;br /&gt;
&lt;br /&gt;
- Action=5&lt;br /&gt;
  wijzig wachtwoord op basis van hcclidnummer en de hash van de hcccode.&lt;br /&gt;
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)&lt;br /&gt;
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)&lt;br /&gt;
&lt;br /&gt;
- Action=7&lt;br /&gt;
  Uitgeschreven lid is weer actief lid geworden&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&lt;br /&gt;
- Action=8&lt;br /&gt;
  Lid heeft een nieuwe hcc-code gekregen&lt;br /&gt;
  (Wordt aangeroepen vanuit de cronjob)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Release notes ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2012.02.08 Wijzigingen versie 5:&lt;br /&gt;
 - 4.1 verwijder_hcc_Lidnummer i.p.v. hcc_Lidnummer&lt;br /&gt;
 - 4.1 optionele extra parameter verwijder_hccLogin&lt;br /&gt;
 - Optionele parameters aangegeven&lt;br /&gt;
 - Vanwege de duidelijkheid de beheerLogin en beheerPassword velden&lt;br /&gt;
   bovenin de betreffende aanroepen gezet&lt;br /&gt;
   (De volgorde van de parameters is niet relevant, dus dit is geen&lt;br /&gt;
    interface-aanpassing)&lt;br /&gt;
2012.02.16 Wijzigingen versie 6:&lt;br /&gt;
 - 2.1/2.2/2.3 geef ook cn en sn terug na aanpassen van het wachtwoord&lt;br /&gt;
 - 3.1 geef cn en sn terug na aanmaken nieuwe gebruiker&lt;br /&gt;
2012.02.27 Wijzigingen versie 7:&lt;br /&gt;
 - Neem de XML-RPC interface van HenZ in deze XML-RPC server op&lt;br /&gt;
   8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gegevens tevens in LDAP op&lt;br /&gt;
 - 2.1 wijzig wachtwoord - optie 1&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.2 wijzig wachtwoord, optie 2&lt;br /&gt;
   * Nieuw wachtwoord is verplicht, niet optioneel&lt;br /&gt;
   * gebruikersnaam kan niet meer via deze interface aangepast worden&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
 - 2.3 wijzig wachtwoord, optie 3&lt;br /&gt;
   * wijzigingen worden naar hccnet.nl doorgezet&lt;br /&gt;
2012.03.26 Wijzigingen versie 8:&lt;br /&gt;
  - Breidt de XML-RPC interface van HenZ in deze XML-RPC server uit met&lt;br /&gt;
    8.2 Controleer of de gebruikersnaam op dit moment bestaat&lt;br /&gt;
2012.04.09 Wijzigingen versie 9:&lt;br /&gt;
 - Vervang alle &#039;ldap&#039; aanroepen door &#039;HCCldap&#039; aanroepen&lt;br /&gt;
 - documentatie van HenZ call action=2 aangepast, action=5 toegevoegd&lt;br /&gt;
2012.05.03 Wijzigingen versie 10:&lt;br /&gt;
 - 1.1 / 1.2 / 1.3 geven nu ook &#039;ProfielBekend&#039; terug om uniek te bepalen&lt;br /&gt;
   of deze bezoeker een first-time-login pagina te zien dient te krijgen&lt;br /&gt;
 - documentatie van 2.1 (wijzig wachtwoord) aangepast: &lt;br /&gt;
   2.1 kan alleen als profiel is doorlopen&lt;br /&gt;
 - nieuwe procedure t.b.v. zoekscherm PC30&lt;br /&gt;
   * A.1 ZoekHCCLid &lt;br /&gt;
     - hiervoor is de database met diverse velden uitgebreid&lt;br /&gt;
       (postcode, e-mailadres, huisadres, woonplaats, land, telefoonnummer)&lt;br /&gt;
       Dit heeft impact op diverse andere procedures (t.b.s.)&lt;br /&gt;
 - nieuwe procedure t.b.v. &#039;gewone&#039; profielpagina&lt;br /&gt;
   * B.1 GeefDBFPersoonID&lt;br /&gt;
 - nieuwe procedure t.b.v. cron-job&lt;br /&gt;
   * C.1 GeefOpgezegdeLeden&lt;br /&gt;
2012.05.10 Wijzigingen versie 11&lt;br /&gt;
 - 1.3 GebruikerBestaatControle&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
   * nieuw veld in antwoord: hccPseudoniem&lt;br /&gt;
 - 2.3 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 2.4 WijzigGebruikersGegevens&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * nieuwe parameter: hccPseudoniem&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * nieuwe parameter: nieuw_hccPseudoniem&lt;br /&gt;
   * alle parameters zijn verplicht (niet langer optioneel)&lt;br /&gt;
   * nieuw antwoord: Gegevenscombinatie onjuist&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * Nieuwe procedure t.b.v. 1e keer doorlopen profielpagina&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * &#039;Zoeklimiet bereikt&#039; wordt als ExtraInfo meegegeven&lt;br /&gt;
   * nieuwe velden in antwoord: hccPseudoniem en hccLogin&lt;br /&gt;
 - B.1 GeefDBFPersoonID&lt;br /&gt;
   * Zoeken kan nu ook op hccLogin en op hccPseudoniem&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden&lt;br /&gt;
   * Geef nu ook hccLogin en hccPseudoniem terug&lt;br /&gt;
2012.05.14 Wijzigingen versie 12&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook DBFPersoonID terug&lt;br /&gt;
 - 4.1 Gooi een gebruiker weg.&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 5.1 Wijzig hccIG&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 6.1 Wijzig hccRegio&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
 - 7.1 Wijzig hccRol&lt;br /&gt;
   * Haal ongebruikte parameter hccLogin weg&lt;br /&gt;
2012.05.20 Wijzigingen versie 13&lt;br /&gt;
 - A.1 ZoekHCCLid &lt;br /&gt;
   * Geef resultaten gestructureerder formaat&lt;br /&gt;
   * Geef in ExtraInfo weer hoeveel echte resultaten er gevonden zijn&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef resultaten in gestructureerder formaat&lt;br /&gt;
2012.06.03 Wijzigingen versie 14&lt;br /&gt;
 - 3.1 NieuweGebruiker&lt;br /&gt;
   * Geef ook DBFPersoonID mee&lt;br /&gt;
2012.08.17 Wijzigingen versie 15&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden &lt;br /&gt;
   * Geef ook hccLogin in het antwoord terug&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.09.29 Wijzigingen versie 16&lt;br /&gt;
 - Alle cron gerelateerde opdrachten verwijderd&lt;br /&gt;
   * 3.1 NieuweGebruiker&lt;br /&gt;
   * 4.1 GooiGebruikerWeg&lt;br /&gt;
   * 5.1 WijzigHccIG&lt;br /&gt;
   * 6.1 WijzigHccRegio&lt;br /&gt;
   * 7.1 WijzigHccRol&lt;br /&gt;
2012.10.28 Wijzigingen versie 17&lt;br /&gt;
 - nieuwe procedure t.b.v. PC30 beheerpagina&lt;br /&gt;
   * A.2 HaalPC30Token&lt;br /&gt;
 - nieuwe procedure t.b.v. Drupal profielpagina&lt;br /&gt;
   * 2.4 vervallen &lt;br /&gt;
     (WijzigGebruikersGegevens op basis van pseudoniem)&lt;br /&gt;
   * 2.5 WijzigGebruikersGegevens&lt;br /&gt;
     Nieuwe keuze: wijzig pseudoniem&lt;br /&gt;
2012.11.14 Wijzigingen versie 18&lt;br /&gt;
 - 1.x GebruikerBestaatControle&lt;br /&gt;
   * Geef ook mail in het antwoord terug&lt;br /&gt;
2012.11.30 Wijzigingen versie 19&lt;br /&gt;
 - E.1 HCCkader/WijzigGebruikersGegevens&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.1 / F.2 / F.3 ControleerKaderlid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2012.12.18 Wijzigingen versie 20&lt;br /&gt;
 - Haal DBFPersoonID weg uit alle aanroepen en alle resultaten&lt;br /&gt;
   * Antwoord van 1.x GebruikerBestaatControle&lt;br /&gt;
   * B.1 GeefDBFPersoonID opgeheven&lt;br /&gt;
 - A.1 ZoekHCCLid geeft nu ook hccMobiel terug (t.b.v. PC30 zoekpagina)&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden verder uitgewerkt:&lt;br /&gt;
   * Geeft alleen de door Drupal gebruikte velden &#039;hccLogin&#039; en &#039;hccEindDatum&#039;&lt;br /&gt;
     terug in het antwoord&lt;br /&gt;
   * Geeft nu &#039;echte&#039; antwoorden i.p.v. dummy resultaten&lt;br /&gt;
 - F.1 ControleerKaderlid geeft nu ook optioneel &#039;sn&#039; en &#039;givenName&#039; &lt;br /&gt;
     terug (in de beheer-variant)&lt;br /&gt;
2013.01.25 Wijzigingen versie 21&lt;br /&gt;
 - A.1 ZoekHCCLid uitgebreid&lt;br /&gt;
   * Geeft nu ook hccBeginDatum, hccEindDatum en hccRol terug&lt;br /&gt;
2013.02.02 Wijzigingen versie 22&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * Interface aangepast&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2013.03.01 Wijzigingen versie 23&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * Geeft andere resultaten terug&lt;br /&gt;
 - 2.2 WijzigWachtwoord&lt;br /&gt;
   * Geeft nu ook hccLogin terug (voor ww-vergeten op de Drupal site)&lt;br /&gt;
 - HCCenquete implementatie&lt;br /&gt;
   * G.1 Expandeer NL postcode&lt;br /&gt;
   * G.2 Haal lidgegevens op&lt;br /&gt;
   * G.3 Pas lidgegevens aan&lt;br /&gt;
2013.03.18 Wijzigingen versie 24&lt;br /&gt;
 - ZoekGroeperingsLid op basis van token&lt;br /&gt;
 - A.4 Lid bezoekt bijeenkomst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - A.5 VraagLidgegevensTokenAan&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2013.04.07 Wijzigingen versie 25&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   Simpeler interface ontwikkeld (&#039;HCCpartners&#039; i.p.v. &#039;HCCpartner&#039;)&lt;br /&gt;
 - G.3 mag ook Tussenvoegsels aanpassen&lt;br /&gt;
2013.04.25 Wijzigingen versie 26&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   Nieuwe interface voor validatie vanaf groeperings websites&lt;br /&gt;
2013.05.03 Wijzigingen versie 27&lt;br /&gt;
 - 2.6 HaalOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - 2.8 HaalOptInLijst&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - HCCpartners aanroep nieuwe interface (&#039;Action&#039; =&amp;gt; &#039;ControleerHCCLidmaatschap&#039;)&lt;br /&gt;
2013.07.05 Wijzigingen versie 28&lt;br /&gt;
 - 8.1 MaakGebruikerAan&lt;br /&gt;
   * extra parameters (mail, hccPseudoniem) in het antwoord&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid&lt;br /&gt;
   * extra parameter (mailHccnet)&lt;br /&gt;
2013.08.31 Wijzigingen versie 29&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / ControleerKaderlid&lt;br /&gt;
   * extra output parameter (hccKaderMail)&lt;br /&gt;
 - 1.1/1.2/1.3 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccForumLogin)&lt;br /&gt;
 - H.1 HCC-groepering / GebruikerBestaatControle&lt;br /&gt;
   * komma-gescheiden lijst met groeperingen mogelijk&lt;br /&gt;
   * extra output parameter (mailHccnet)&lt;br /&gt;
2013.12.26 Wijzigingen versie 30&lt;br /&gt;
 - 3.1 Geef mijn lidnummer&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - A.1 ZoekHCCLid&lt;br /&gt;
   * geef nu ook &#039;ProfielBekend&#039; terug om aan de PC30 omgeving door te geven&lt;br /&gt;
     dat het wachtwoord niet veranderd mag worden door PC30&lt;br /&gt;
 - A.6 GeefBezoekersOverzicht&lt;br /&gt;
   * geef nu ook &#039;Locatie&#039; terug indien van toepassing&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - I.1 HCC-forum / GebruikerBestaatControle&lt;br /&gt;
   * parameters aangepast&lt;br /&gt;
   * authenticatie op basis van hccLogin + userPassword of lidnummer + hcc-code&lt;br /&gt;
   * geen algemene hcc-forum authenticatie meer mogelijk&lt;br /&gt;
 - F.7 ControleerKaderlidGroep&lt;br /&gt;
   * Nieuwe aanroep&lt;br /&gt;
2014.02.01 Wijzigingen versie 31&lt;br /&gt;
 - A.8 RegistreerGast&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - nieuwe interface (losse, unieke aanroepen, niet meer gegroepeerd)&lt;br /&gt;
2014.09.27 Wijzigingen versie 32&lt;br /&gt;
 - C.1 GeefOpgezegdeLeden hernoemd naar GeefUitgeschrevenLeden&lt;br /&gt;
 - I.3 GeefhccEindDatum&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - Action=7 en Action=8 toegevoegd aan de HenZ interface&lt;br /&gt;
2014.12.12 Wijzigingen versie 33&lt;br /&gt;
 - F.1 / F.2 / F.3 HCC-kader / IsKaderLid&lt;br /&gt;
   * extra output parameter (mail, mailHccnet, hccKaderForward)&lt;br /&gt;
 - F.8 HCC-kader / ZetKaderForward&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.05.06 Wijzigingen versie 34&lt;br /&gt;
 - GeefMijnGegevens&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - ValideerPCActiveAbonnee&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 1.4 GebruikerBestaatControle&lt;br /&gt;
   * extra output parameter (hccKaderForward)&lt;br /&gt;
 - D.1 HCCpartner/ControleerHCCLidmaatschap&lt;br /&gt;
   * optionele extra output parameter (ExtraInfo)&lt;br /&gt;
2015.09.27 Wijzigingen versie 35&lt;br /&gt;
 - HeeftForumCredentials&lt;br /&gt;
   * vervallen&lt;br /&gt;
2015.11.20 Wijzigingen versie 36&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2015.12.13 Wijzigingen versie 37&lt;br /&gt;
 - serverID als optionele parameter&lt;br /&gt;
 - SchrijfNietlidInOpBulletin&lt;br /&gt;
   * Maak velden optioneel&lt;br /&gt;
2016.01.05 Wijzigingen versie 38&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter JoomlaFilter&lt;br /&gt;
2016.01.15 Wijzigingen versie 39&lt;br /&gt;
 - H.3 GeefMijnGegevens&lt;br /&gt;
   * geeft nu ook hccOptIn terug&lt;br /&gt;
   * geeft nu ook JoomlaToken terug&lt;br /&gt;
 - H.4 PasOptInKeuzeAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - SiteID en RemoteID als optionele parameter&lt;br /&gt;
2016.03.17 Wijzigingen versie 40&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.03.20 Wijzigingen versie 41&lt;br /&gt;
 - ServerID, SiteID en RemoteID als optionele parameters bij alle aanroepen&lt;br /&gt;
 - A.7 GeefLocaties&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - A.9 GeefLocatieNamen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.4 GeefAlleGroeperingen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.5 GeefAlleKaderRollen&lt;br /&gt;
   * optionele parameter KadernetFilter&lt;br /&gt;
 - F.6 WijzigHccRol&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - F.7 IsGroeperingsKaderlid&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.7 SchrijfOptInKeuzen&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - 2.5 WijzigGebruikersGegevens (hccPseudoniem)&lt;br /&gt;
   * vervallen&lt;br /&gt;
 - H.2 MatchPostcodeMetRegio&lt;br /&gt;
   * vervallen&lt;br /&gt;
2016.04.02 Wijzigingen versie 42&lt;br /&gt;
 - H.6 GeefMijnKaderDetails&lt;br /&gt;
   * nieuwe aanroep &lt;br /&gt;
2016.07.03 Wijzigingen versie 43&lt;br /&gt;
 - Ubuntu 16.04 aanpassingen (PHP versie 7) beschreven&lt;br /&gt;
2016.09.01 Wijzigingen versie 44&lt;br /&gt;
 - H.5 ZoekKaderLeden&lt;br /&gt;
   * extra parameter &#039;hccMobiel&#039;&lt;br /&gt;
2016.10.13 Wijzigingen versie 45&lt;br /&gt;
 - H.3 GeefMijnGegevens (dedecated Joomla aanroep)&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
   * Als het om een webmaster gaat, vul dan eventueel hccRegio of hccIG aan &lt;br /&gt;
     met die groepering, ook als hij geen lid is van die groepering&lt;br /&gt;
 - I.4 GebruikerBestaatControle&lt;br /&gt;
   * hccForumLogin weg als parameter&lt;br /&gt;
2016.12.01 Wijzigingen versie 46&lt;br /&gt;
 - 8.3 IsDezePseudoniemNogBeschikbaar teruggezet&lt;br /&gt;
2017.05.28 Wijzigingen versie 47&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens (t.b.v. eenmalige kadermailing)&lt;br /&gt;
 - H.8 ZetMinimaleKaderGegevens  (t.b.v. eenmalige kadermailing)&lt;br /&gt;
2017.09.01 Wijzigingen versie 48&lt;br /&gt;
 - A.10 SchrijfNietlidInOpBulletin nu alleen voor 1 bulletin tegelijk&lt;br /&gt;
 - 2.2 WijzigGebruikersGegevens (op basis van gebruikersnaam en wachtwoord)&lt;br /&gt;
       is vervallen (was een oude Drupal aanroep)&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.7 GeefMinimaleKaderGegevens geeft ook hccKaderToonMobiel terug&lt;br /&gt;
2017.11.14 Wijzigingen versie 49&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft geen hccKaderToonMobiel meer terug&lt;br /&gt;
 - A.3 ZoekGroeperingsLid geeft alleen hccMobiel als hccKaderToonMobiel dat toestaat&lt;br /&gt;
2018.02.18 Wijzigingen versie 50&lt;br /&gt;
 - H.6 GeefMijnKaderDetails geeft ook hccKaderToonMobiel terug&lt;br /&gt;
 - H.9 PasKaderGegevensAan&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft 3 extra parameters terug (hccKaderMail, hccKaderForward,&lt;br /&gt;
   hccKaderToonMobiel)&lt;br /&gt;
 - JoomlaTokens worden gevalideerd op siteID, niet langer op serverID&lt;br /&gt;
 - diverse aanroepen kunnen nu ook via de bezoekersregistratie-proxy aangeroepen worden. &lt;br /&gt;
   Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:&lt;br /&gt;
   (GeefAlleGroeperingen, GeefAlleKaderRollen, GeefLocaties, GeefLocatieNamen)&lt;br /&gt;
   De bezoekersregistratie aanroepen hebben enkel JoomlaToken als extra parameter nodig:&lt;br /&gt;
   (LidBezoektBijeenkomst, GeefBezoekersOverzicht)&lt;br /&gt;
2018.02.26 Wijzigingen versie 51&lt;br /&gt;
 - H.3 GeefMijnGegevens geeft extra parameter hccMobiel terug &lt;br /&gt;
 - H.9 PasKaderGegevensAan kan nu ook kadermail password aanpassen&lt;br /&gt;
 - K.1 ValideerToken&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
 - K.2 ValideerHCCCode&lt;br /&gt;
   * nieuwe aanroep&lt;br /&gt;
2018.03.17 Wijzigingen versie 52&lt;br /&gt;
 - H.3 Haal al mijn gegevens&lt;br /&gt;
   Extra optie &#039;compact&#039; om alleen essentiele resultaten te verkrijgen&lt;br /&gt;
   (t.b.v. de Android bezoekersregistratie applicatie)&lt;br /&gt;
2018.03.25 Wijzigingen versie 53&lt;br /&gt;
 - I.2 IsHCCLid&lt;br /&gt;
   (Oude aanroep teruggezet, wordt nog in vraagbaak module gebruikt)&lt;br /&gt;
2018.07.01 Wijzigingen versie 54&lt;br /&gt;
   * A.1 beheer authenticatie op basis van lidnummer + hccCode (tbv VZ-portal)&lt;br /&gt;
   * A.2 HaalPC30Token weggehaald&lt;br /&gt;
2018.08.22 Wijzigingen versie 55&lt;br /&gt;
  * 1.2 GebruikerBestaatControle&#039; (op basis van hccLogin en userPassword) weggehaald&lt;br /&gt;
  * 1.4 GebruikerBestaatControle&#039; (op basis van zoekHccLogin of zoekHccLidnr) weggehaald&lt;br /&gt;
  * 2.8 HaalOptInLijst weggehaald&lt;br /&gt;
  * E.1 PasKaderWachtwoordAan weggehaald&lt;br /&gt;
  * F.1 IsKaderLid (op basis van hccLidnr en hccCode) weggehaald&lt;br /&gt;
  * F.3 IsKaderLid (op basis van beheerdernaam en beheerderwachtwoord) was al weg&lt;br /&gt;
  * F.8 ZetKaderForward weggehaald&lt;br /&gt;
  * H.1 IsGroeperingsLid weggehaald&lt;br /&gt;
  * H.6 GeefMijnKaderDetails weggehaald&lt;br /&gt;
  * H.7 GeefMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * H.8 ZetMinimaleKaderGegevens weggehaald&lt;br /&gt;
  * K.1 ValideerHCCCode weggehaald&lt;br /&gt;
  * K.2 ValideerToken weggehaald&lt;br /&gt;
  * H.3 GeefMijnGegevens geeft omvang kader mailbox mee terug&lt;br /&gt;
2018.11.06 Wijzigingen versie 56&lt;br /&gt;
  Nieuwe aanroepen t.b.v. forum en vraagbaak autorisaties&lt;br /&gt;
  * L.1 MaakOnderwerp&lt;br /&gt;
  * L.2 VerwijderOnderwerp&lt;br /&gt;
  * L.3 GeefOnderwerpen&lt;br /&gt;
  * L.4 MuteerOnderwerp&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie&lt;br /&gt;
  * L.6 ToonOnderwerpAutorisatie&lt;br /&gt;
  * H.5 ZoekKaderLeden heeft compact optie&lt;br /&gt;
2018.11.16 Wijzigingen versie 57&lt;br /&gt;
  * L.5 MuteerOnderwerpAutorisatie kent nu ook RED(acteur)&lt;br /&gt;
2018.12.17 Wijzigingen versie 58&lt;br /&gt;
  * A.11 GeefBezoekersAantallen (nieuwe aanroep)&lt;br /&gt;
  * H.10 PasUserWachtwoordAan (nieuwe aanroep)&lt;br /&gt;
2019.02.21 Wijzigingen versie 59&lt;br /&gt;
  * A. 6 GeefBezoekersOverzicht geeft enkel lijst van bezoekers laatste bijeenkomst&lt;br /&gt;
2019.10.26 Wijzigingen versie 60&lt;br /&gt;
  * A.4 Schrijf bezoekers niet meer automatisch in op bulletins&lt;br /&gt;
  * H.4  PasOptInKeuzeAan kan ook door LA aangeroepen worden&lt;br /&gt;
  Nieuwe aanroepen t.b.v. eigen implementatie van mijn.hcc.nl in de Joomla modules&lt;br /&gt;
  * H.11 PasPseudoniemAan&lt;br /&gt;
  * H.12 ValideerWachtwoordEisen&lt;br /&gt;
  * H.13 PasWachtwoordAan (1: op JoomlaToken, 2: op PWResetToken)&lt;br /&gt;
  * H.14 MaakPWResetToken&lt;br /&gt;
  * H.15 ValideerPWResetToken&lt;br /&gt;
  * H.16 RuimJoomlaTokenOp&lt;br /&gt;
  * A.12 GeefAlleBulletins&lt;br /&gt;
  * A.13 ExpandeerPostcode&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.18 NormaliseerTelefoon&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  * A.21 HaalIGBedragenOp&lt;br /&gt;
  * A.22 HaalTariefGroepenOp&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
  * F.10 MuteerGroeperingSamenstelling&lt;br /&gt;
  * A.24 GeefSSOUrls&lt;br /&gt;
  Aanpassingen gemaakt aan&lt;br /&gt;
  8.1 MaakGebruikerAan&lt;br /&gt;
  F.5 GeefAlleKaderRollen&lt;br /&gt;
2020.01.04 Wijzigingen versie 61&lt;br /&gt;
  Nieuwe aanroepen t.b.v. IDEAL betaling hobbynet abonnees&lt;br /&gt;
  H.17 GeefAantalDomeinen&lt;br /&gt;
2020.01.06 Wijzigingen versie 62&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Cayentis (CRM webproxy) implementatie&lt;br /&gt;
  * M.1  Upload_CSV_bestand&lt;br /&gt;
  * M.2  SchrijfNieuwLidIn&lt;br /&gt;
  * M.3  Verwerk_JSON_mutatie&lt;br /&gt;
  * M.4  ISO_landcode&lt;br /&gt;
  * M.5  MuteerAanmeldingsformulier&lt;br /&gt;
  * M.6  HaalAanmeldingsformulier&lt;br /&gt;
  * M.7  GeefFactuurOverzicht&lt;br /&gt;
  * M.8  HaalFactuur&lt;br /&gt;
  * A.25 UpdateNAW&lt;br /&gt;
  Vervallen aanroepen&lt;br /&gt;
  * A.14 UpdateContactGegevens&lt;br /&gt;
  * A.15 UpdateContactEmail&lt;br /&gt;
  * A.16 UpdateVoornaam&lt;br /&gt;
  * A.17 UpdateVoorletters&lt;br /&gt;
  * A.19 UpdateTelefoon&lt;br /&gt;
  * A.20 UpdateMobiel&lt;br /&gt;
  Aangepaste aanroepen&lt;br /&gt;
  * A.23 PasInteressegroepAan&lt;br /&gt;
2020.03.27 Wijzigingen versie 63&lt;br /&gt;
  Nieuwe aanroepen t.b.v. Joomla module aanpassingen&lt;br /&gt;
  * H.18 ResetHCCCode&lt;br /&gt;
  * H.19 PasHccLoginAan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Aanpassingen aan de Apache omgeving =&lt;br /&gt;
&lt;br /&gt;
== php.ini aanpassingen ==&lt;br /&gt;
De XML-RPC server zal &#039;ergens&#039; een bestand moeten kunnen vinden met de&lt;br /&gt;
gebruikersnamen t.b.v. het authenticeren bij de LDAP-server.&lt;br /&gt;
&lt;br /&gt;
Dit bestand wordt geplaatst in de map &#039;/usr/local/hobbynet/etc&#039;. Om dit&lt;br /&gt;
vanuit Apache te mogen benaderen, dient een aanpassing aan php.ini&lt;br /&gt;
gemaakt te worden:&lt;br /&gt;
&lt;br /&gt;
 /etc/php5/apache2/php.ini&lt;br /&gt;
 &lt;br /&gt;
 include_path = &amp;quot;.:/usr/share/php:/usr/share/pear:/usr/local/hobbynet/etc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Apache modules ==&lt;br /&gt;
Nieuwe server geschikt maken voor XML-RPC gebruik&lt;br /&gt;
&lt;br /&gt;
=== Apache modules (PHP 7) ===&lt;br /&gt;
Ubuntu 16.04 wordt standaard met PHP versie 7.0 uitgeleverd.&lt;br /&gt;
De opdrachten om de modules op te halen zijn:&lt;br /&gt;
 apt-get install php-xmlrpc&lt;br /&gt;
 apt-get install apache2&lt;br /&gt;
 apt-get install ldap-utils&lt;br /&gt;
 apt-get install php-ldap&lt;br /&gt;
 apt-get install libapache2-mod-php&lt;br /&gt;
&lt;br /&gt;
== Loadbalancer akties niet naar de logbestanden schrijven ==&lt;br /&gt;
De loadbalancer haalt zeer frequent een testbestand op (/test.txt), om&lt;br /&gt;
te controleren of de xml-server operationeel is. Dat levert extreem veel&lt;br /&gt;
logging op in /var/log/apache2/other_vhosts.log.&lt;br /&gt;
&lt;br /&gt;
Pas de apache configuratie zo aan, dat logging van alle opvragingen&lt;br /&gt;
vanaf de loadbalancers uitgezet wordt.&lt;br /&gt;
 /etc/apache2/sites-enabled/xml-server&lt;br /&gt;
 &lt;br /&gt;
 # Mark requests from loadbalancers&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;212\.72\.227\.93&amp;quot;          dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;212\.72\.227\.94&amp;quot;          dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;172\.31\.1\.249&amp;quot;           dontlog&lt;br /&gt;
 SetEnvIf Remote_Addr &amp;quot;172\.31\.1\.250&amp;quot;           dontlog&lt;br /&gt;
 CustomLog ${APACHE_LOG_DIR}/access.log common env=!dontlog&lt;br /&gt;
&lt;br /&gt;
= Firewall algemeen =&lt;br /&gt;
In de file /etc/hobby-firewall/hobby-firewall.local wordt het script&lt;br /&gt;
&#039;/usr/local/hobbynet/bin/gen_fw.sh&#039; aangeroepen.&lt;br /&gt;
Deze haalt de IP adressen op uit ldap. &lt;br /&gt;
(.local omdat we dit ook zo doen op de webservers).&lt;br /&gt;
&lt;br /&gt;
De firewall wordt 4 x per dag herstart en /etc/hobby-firewall wordt&lt;br /&gt;
gesynchroniseerd (1-richting van lb1 naar lb2) met de volgende crontab&lt;br /&gt;
entries:&lt;br /&gt;
&lt;br /&gt;
Op lb1:&lt;br /&gt;
  0  0 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55  5 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0  6 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 11 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0 12 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 17 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
  0 18 * * * /etc/init.d/hobby-firewall restart         &amp;gt;/dev/null&lt;br /&gt;
 55 23 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
Op lb2:&lt;br /&gt;
 15  6 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15 12 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15 18 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null&lt;br /&gt;
 15  0 * * * /etc/init.d/hobby-firewall restart &amp;gt;/dev/null &lt;br /&gt;
&lt;br /&gt;
Het encrypted backup script is verplaatst naar &#039;/usr/local/hobbynet/local&#039; en hernoemd naar &#039;backup-encrypted.bash&#039;.&lt;br /&gt;
Dit is omdat deze niet mee mag worden gesynchroniseerd.&lt;br /&gt;
&lt;br /&gt;
Tevens wordt 1x per dag /usr/local/hobbynet/bin gesynchroniseerd (1-richting van hcc-ldap-lb1 naar hcc-ldap-lb2)&lt;br /&gt;
&lt;br /&gt;
== Aanpassingen in de firewall ==&lt;br /&gt;
Op de server waar de XML-RPC server staat, moeten enkele firewall aanpassingen gemaakt worden.&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf het interne netwerk (www-prod, www-test), en vanaf eventuele andere plekken die we expliciet toe willen staan.&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf mijn.hcc.nl (XML-RPC aanroepen vanaf de portal)&lt;br /&gt;
* inkomend: sta TCP 443 toe vanaf service.hccnet.nl toe (XML-RPC aanroep GeefUitgeschrevenLeden vanuit HenZ)&lt;br /&gt;
* uitgaand: sta TCP 443 naar service.hccnet.nl toe (XML-RPC aanroepen naar HenZ)&lt;br /&gt;
* uitgaand: sta TCP 990 en 5000-6000 naar Apps.HCC.local (FTPS verkeer naar de HCC server bij Hobbynet)&lt;br /&gt;
&lt;br /&gt;
== Aanpassingen aan AppArmor ==&lt;br /&gt;
Alhoewel technisch gezien dit bij slapd behoort, neem ik het toch hier op.&lt;br /&gt;
&lt;br /&gt;
Als het Hobbynet certificaat in de map /disk/site/etc/ssl/hobby.nl/ wordt neergezet, dan zal apparrmor de toegang tot de certificaten blokkeren. Neem daarom in de &#039;&#039;&#039;local&#039;&#039;&#039; directory van apparmor het volgende op:&lt;br /&gt;
 # /etc/apparmor.d/local/usr.sbin.slapd&lt;br /&gt;
 # Site-specific additions and overrides for usr.sbin.slapd.&lt;br /&gt;
 # For more details, please see /etc/apparmor.d/local/README.&lt;br /&gt;
 #include &amp;lt;abstractions/ssl_certs&amp;gt;&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/ r,&lt;br /&gt;
 /disk/site/etc/ssl/hobby.nl/* r,&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Sftp&amp;diff=78216</id>
		<title>Sftp</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Sftp&amp;diff=78216"/>
		<updated>2019-12-23T15:36:09Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=doel=&lt;br /&gt;
Met sftp worden op veilige manier vertrouwelijke bestanden aangeleverd aan kantoor en tripolis.&lt;br /&gt;
&lt;br /&gt;
== Tripolis ==&lt;br /&gt;
Het IP adres voor de sftp verbinding van Tripolis is 185.211.248.216&lt;br /&gt;
&lt;br /&gt;
Let op: hier is static route voor op sftp-int (in /etc/netplan/01-netcfg.yaml):&lt;br /&gt;
&lt;br /&gt;
 network:&lt;br /&gt;
    version: 2&lt;br /&gt;
    ethernets:&lt;br /&gt;
        ens160:&lt;br /&gt;
            dhcp6: no&lt;br /&gt;
            accept-ra: no&lt;br /&gt;
            addresses:&lt;br /&gt;
            - 212.72.224.13/24&lt;br /&gt;
            - 2a02:968:1:2:212:72:224:13/64&lt;br /&gt;
            nameservers:&lt;br /&gt;
                search:&lt;br /&gt;
                - hobby.nl&lt;br /&gt;
            routes:&lt;br /&gt;
            - to: 185.211.248.216&lt;br /&gt;
              via: 212.72.224.1&lt;br /&gt;
            optional: true&lt;br /&gt;
&lt;br /&gt;
Het Tripolis IP adres is ook in Hobby-firewall vrijgeschakeld&lt;br /&gt;
  # ssh vanaf tripolis&lt;br /&gt;
  # nieuw ip OTRS Ticket#2019120994000045&lt;br /&gt;
  $IPTABLES -A INPUT -p tcp -s 185.211.248.216  --dport  22  -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Denk er aan het Tripolis IP adres ook in de fail2ban omgeving te whitelisten!&lt;br /&gt;
 /etc/fail2ban/jail.conf:ignoreip = 127.0.0.1/8 212.72.224.18 212.72.229.18 212.72.224.5 212.72.224.34 185.211.248.216&lt;br /&gt;
 /etc/fail2ban/jail.local:ignoreip = 127.0.0.1/8 212.72.224.18 212.72.229.18 212.72.224.5 212.72.224.34 185.211.248.216&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ook de firewall in de Hobbynet router zal voor dit Tripolis IP adres opengezet moeten worden&amp;lt;br&amp;gt;(IP adreslijst &#039;ssh access sftp&#039;)&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=78208</id>
		<title>MediaWikiSites</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=MediaWikiSites&amp;diff=78208"/>
		<updated>2019-11-10T09:48:12Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Lijst met Mediawiki sites die wij bijhouden ==&lt;br /&gt;
&lt;br /&gt;
* Hobbynet wiki  (https://wiki.hobby.nl/)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;2018.09.23 De kadernet wiki is in rook opgegaan&#039;&#039; &lt;br /&gt;
* kadersite wiki (https://kadernet.hcc.nl/apps/wiki)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;2017.11.17 Oude meuk, zal waarschijnlijk niet meer bestaan:&#039;&#039;&lt;br /&gt;
* Gamesbestuur wiki (https://bestuur.hcc-games.nl)&lt;br /&gt;
&lt;br /&gt;
== upgrade procedure ==&lt;br /&gt;
* maak met tar een backup van de wiki:&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /disk/site/wiki&lt;br /&gt;
 tar -cf wiki-backup-20191110.tar www&lt;br /&gt;
 bzip2 wiki-backup-20191110.tar&lt;br /&gt;
&lt;br /&gt;
* maak met phpmyadmin een backup van de database&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download de wiki software upgrade van http://www.mediawiki.org/&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* volg de instructies zoals beschreven op http://www.mediawiki.org/wiki/Manual:Upgrading&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hobbynet wiki updaten ===&lt;br /&gt;
* Volg de instructies om de wiki te updaten&lt;br /&gt;
 &amp;lt;b&amp;gt;Ons eigen lijstje:&amp;lt;/b&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cd /disk/site/wiki&lt;br /&gt;
 rm -rf www-old&lt;br /&gt;
 cp -a www www-old&lt;br /&gt;
 wget https://releases.wikimedia.org/mediawiki/1.33/mediawiki-1.33.1.tar.gz&lt;br /&gt;
 tar xzf mediawiki-1.33.1.tar.gz&lt;br /&gt;
 chown www-hobby-nl:www-hobby-nl       mediawiki-1.33.1 -R&lt;br /&gt;
 cp -a hobby-adm-old/LocalSettings.php mediawiki-1.33.1&lt;br /&gt;
 cp -a hobby-adm-old/images/*          mediawiki-1.33.1/images&lt;br /&gt;
 cp -a hobby-adm-old/getip*            mediawiki-1.33.1&lt;br /&gt;
 rm -rf www&lt;br /&gt;
 mv mediawiki-1.33.1 www&lt;br /&gt;
 cd www/maintenance&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
* Als update.php niet draait, omdat er geen sql modules beschikbaar zouden zijn, selecteer dan eerst de juiste php versie&lt;br /&gt;
 update-alternatives --config php&lt;br /&gt;
&lt;br /&gt;
* Op de hobbynet wiki staan 2 losse bestanden die geen directe relatie met de wiki software hebben (&#039;&#039;&#039;getip.html&#039;&#039;&#039; en &#039;&#039;&#039;getip.php&#039;&#039;&#039;).&amp;lt;br&amp;gt;&lt;br /&gt;
Plaats die bestanden terug, tijdens de wiki upgrade actie!&lt;br /&gt;
&lt;br /&gt;
=== Kadernet wiki updaten (oude meuk) ===&lt;br /&gt;
 &amp;lt;b&amp;gt;Ons eigen lijstje:&amp;lt;/b&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 rm -rf wiki-old&lt;br /&gt;
 cp -a wiki wiki-old&lt;br /&gt;
 wget https://releases.wikimedia.org/mediawiki/1.29/mediawiki-1.29.2.tar.gz&lt;br /&gt;
 tar xzf mediawiki-1.29.2.tar.gz&lt;br /&gt;
 chown kader-file:kader-file mediawiki-1.29.2 -R&lt;br /&gt;
 cp -a wiki-old/LocalSettings.php mediawiki-1.29.2&lt;br /&gt;
 cp -a wiki-old/images/* mediawiki-1.29.2/images&lt;br /&gt;
 rm -rf wiki&lt;br /&gt;
 mv mediawiki-1.29.2 wiki&lt;br /&gt;
 cd wiki/maintenance&lt;br /&gt;
 php update.php&lt;br /&gt;
&lt;br /&gt;
* als na de update de wiki niet wil starten, zet dan als eerste het ownership van de bestanden:&lt;br /&gt;
 chown www-hobby-nl:www-hobby-nl /disk/site/hobbynet/www/hobby-adm -R&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Main_Page&amp;diff=78206</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Main_Page&amp;diff=78206"/>
		<updated>2019-11-10T09:47:56Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Informatie tbv beheer bit===&lt;br /&gt;
 [[CRM_omgeving]]            - de crm omgeving&lt;br /&gt;
&lt;br /&gt;
===Hobbynet Admin WIKI===&lt;br /&gt;
 Shortcuts&lt;br /&gt;
 [http://otrs.hobby.nl/ HobbyNet Ticket systeem]            - OTRS&lt;br /&gt;
 [https://nagios.hobby.nl/nagios Nagios monitoring]                  -[[Nagios|&#039;&#039;&#039; Uitleg&#039;&#039;&#039;]]&lt;br /&gt;
 [https://wiki.hobby.nl/getip.html Waar draait een website]            - simpel tooltje om te kijken waar een website draait.&lt;br /&gt;
&lt;br /&gt;
===Algemene informatie===&lt;br /&gt;
 [[HCC!Hobbynet]]                         - Wat is Hobbynet - een uitleg voor kantoor (zie ook discussie tab)&lt;br /&gt;
 [[HCC!verenigingsdag]]                   - Een draaiboek voor de HCC!verenigingsdag&lt;br /&gt;
 [[Evenementen lan]]                      - Een draaiboek voor een Evenementen LAN&lt;br /&gt;
 [[Kadernet]]                             - Info over Kadernet voorzieningen (website, forum, etc.)&lt;br /&gt;
 [[Financien]]                            - Financiële aspecten van Hobbynet&lt;br /&gt;
 [[inventaris]]                           - Hobbynet inventaris overzicht t.b.v. hcc kantoor&lt;br /&gt;
 [[Windows_licenties]]                    - Hobbynet overzicht van de windows licenties&lt;br /&gt;
 [[Beheerders]]                           - Hobbynet beheerders&lt;br /&gt;
 [[server_certs]]                         - Hobbynet CAcert certificaten&lt;br /&gt;
 [[Hobbykeys]]                            - Info over het hobbykeys script&lt;br /&gt;
 [[accounts]]                             - Diverse account gegevens (o.a. knoppix.nl)&lt;br /&gt;
&lt;br /&gt;
===HCC.NL website platform===&lt;br /&gt;
 hcc.nl [[netwerk]]                       - Netwerk voor hcc.nl website platform&lt;br /&gt;
 [[XML-RPC]]                              - XML-RPC interface t.b.v. LDAP&lt;br /&gt;
 [[XML-HENZ-PROXY]]                       - XML-RPC HenZ proxy t.b.v. cronjob toegang tot HenZ&lt;br /&gt;
2017.02.02: Moet dringend bijgewerkt worden:&lt;br /&gt;
 [[www-test-lb*]]                         - Test servers (loadbalanced)&lt;br /&gt;
 [[www-prod-lb*]]                         - Productie servers (loadbalanced)&lt;br /&gt;
 [[Protocol_onderhoud]]                   - Afspraken rondom onderhoud en meldingen aan hcc.nl webmasters&lt;br /&gt;
&lt;br /&gt;
===Toegang===&lt;br /&gt;
 [[Speciale VPN toegang]]                 - Speciale VPN toegang &amp;lt;i&amp;gt;(verouderde info)&amp;lt;/i&amp;gt;&lt;br /&gt;
 [[KVM over IP]]                          - Beheer op afstand m.b.v. KVM over IP apparatuur&lt;br /&gt;
 [[Serial Console Server]]                - Serial Console Server voor het beheer van netwerk aparatuur met seriele interface&lt;br /&gt;
 [[beheerder_accounts]]                   - Beheerder accounts aanmaken / bijhouden&lt;br /&gt;
 [[Aanmaken_Gebruiker]]                   - Aanmaken van een gebruiker&lt;br /&gt;
 [[Opzeggen_Gebruiker]]                   - Opzeggen van een gebruiker&lt;br /&gt;
&lt;br /&gt;
===Algemene services===&lt;br /&gt;
 [[Backup]]                               - Zo backupen we&lt;br /&gt;
 [[DNS]]                                  - DNS instellingen t.b.v. de domeinen&lt;br /&gt;
   [[ns-master]]                          - Direct naar ns master (draait op [[domein]])&lt;br /&gt;
   [[ns1]]                                - Direct naar ns1.hobby.nl&lt;br /&gt;
   [[ns2]]                                - Direct naar ns2.hobby.nl&lt;br /&gt;
   [[ns3]]                                - Direct naar ns3.hobby.nl (bij TransIP)&lt;br /&gt;
   [[Resolv*-int]]                        - Direct naar resolv nameserver pagina (draait op [[resolv-lb1]] en [[resolv-lb2]])&lt;br /&gt;
   [[DNSSEC]]                             - DNSSec&lt;br /&gt;
   [[DNSSEC ds records publiceren]]       - Scripting t.b.v. het publiceren van DNSSEC DS records. Dump van scripts... zinloos&lt;br /&gt;
   [[DNS scripting]]                      - Overige DNS scripting&lt;br /&gt;
   [[DNS Zone updaten]]                   - een zone updaten&lt;br /&gt;
   [[scp]]                                - Hobbynet filetransfer omgeving&lt;br /&gt;
   [[Scp-lb1]]                            - Direct naar scp-lb1.hobby.nl&lt;br /&gt;
   [[Scp-lb2]]                            - Direct naar scp-lb2.hobby.nl&lt;br /&gt;
 [[EMAIL]] (ook postfixadmin)             - Email server documentatie&lt;br /&gt;
 [[Roundcube Webmail]]                    - Upgrading Roundcube&lt;br /&gt;
 [[LDAP]] (server en client)              - LDAP setup&lt;br /&gt;
 [[LDAP login Authenticatie]]             - Om op (web)servers login via LDAP te doen  &lt;br /&gt;
 [[LDAP scripting]]                       - Scripting die op ldap-lb1 draait&lt;br /&gt;
 [[LDAP Administrative account]] weg!     - Hoe te handelen als hetadministrative account opeens weg is&lt;br /&gt;
 [[SFTP server]]                          - sftp server voor uitwisseling met kantoor en tripolis&lt;br /&gt;
 [[Speciale groepen in ldap en CRM]]      - Speciale groepen in ldap en CRM&lt;br /&gt;
 [[PXE]]                                  - Hobbynet PXE omgeving&lt;br /&gt;
 [[Storage cluster]]                      - Beschrijving van het storage cluster&lt;br /&gt;
 [[MySQL cluster]]                        - Beschrijving van het MySQL cluster&lt;br /&gt;
 [[MySQL settings]]                       - MySQL instellingen&lt;br /&gt;
 [[Web cluster]]                          - Beschrijving van het Web cluster&lt;br /&gt;
 [[Loadbalancers]]                        - Beschrijving van de LoadbalancerNG&lt;br /&gt;
 [[Nagios]]                               - Beschrijving van Nagios&lt;br /&gt;
 [[Nagios_upgrade]]                       - Hoe upgrade ik nagios van uit source&lt;br /&gt;
 [[Hobbynet repository]]                  - Informatie over de hobbynet repository&lt;br /&gt;
 [[Hobbynet repository inhoud]]           - Wat zit er in de hobbynet repository&lt;br /&gt;
 [[Cron jobs]]                            - Niet standaard cronjobs die lopen bij hobbynet&lt;br /&gt;
 [[Fail2ban]]                             - Block possible intruders and bots&lt;br /&gt;
 [[HCCforums]]                            - Informatie over HCC!forums&lt;br /&gt;
 [[Joomla_xml_server]]                    - De XML-RPC-server t.b.v. de Joomla template sites&lt;br /&gt;
 [[Groepering_hernoemen]]                 - Beschrijving van het hernoemen van een groeperingsnaam&lt;br /&gt;
 [[Joomla modules]]                       - Beschrijving van Joomla modules en processen er om heen&lt;br /&gt;
 [[killdisk]]                             - Software voor secure wissen van disken&lt;br /&gt;
&lt;br /&gt;
===Uitleg IP space===&lt;br /&gt;
 [[netwerk]]                              - Netwerk tekening van Hobbynet&lt;br /&gt;
 [[IPv4_space|IPv4]]                                 - IPv4 Hobbynet&lt;br /&gt;
 [[Ipv6_space|IPv6]]                                 - IPv6 Hobbynet&lt;br /&gt;
&lt;br /&gt;
===Kast indeling===&lt;br /&gt;
 [[kasten]]                               - Indeling kasten bij BIT &#039;&#039;(pagina heeft onderhoud nodig)&#039;&#039;&lt;br /&gt;
 [[systems]]                              - Alle systemen van Hobbynet (hardware &amp;amp; netwerk)&lt;br /&gt;
 [[Powerboot]]                            - Indeling APC PDU&#039;s (feb. 2013)&lt;br /&gt;
&lt;br /&gt;
===Tuning webservers===&lt;br /&gt;
 [[Hobby-firewall]]                       - de Hobbynet firewall&lt;br /&gt;
 [[PHP via fcgi]]                         - PHP via fcgi en suexec&lt;br /&gt;
 [[suhosin]]                              - Suhosin (hardened PHP) op Apache webservers&lt;br /&gt;
 [[upg_web]]                              - Door middel van script server upgraden&lt;br /&gt;
 [[Aanpassingen hcc.nl webservers|hcc.nl aanpassingen]]                  - aanpassingen, gedaan voor hcc.nl op www-test-lb* www-prod-lb*&lt;br /&gt;
&lt;br /&gt;
 [[NFS_settings]]                         - NFS poort instellingen t.b.v. iptables firewall&lt;br /&gt;
 [[sync Loadbalanced webservers]]         - dit script zorgt dat webserver configs worden gesynct&lt;br /&gt;
 [[Entropy]]                              - Hoe zorg ik voor meer Entropy op vmware machine&lt;br /&gt;
&lt;br /&gt;
===VPS voor derden===&lt;br /&gt;
 [[Ubuntu-nl]]                            - De Ubuntu-nl virtuele server&lt;br /&gt;
&lt;br /&gt;
=== Hobbynet informatie ===&lt;br /&gt;
 [[Scripting]]                            - Een poging om de scripting te beschrijven. WIP!&lt;br /&gt;
 [[agreements]]                           - Alle Hobbynet contracten met contract beheerder e.d.&lt;br /&gt;
 [[ToDo]]                                 - Een wensenlijstje van dingen die we kunnen veranderen/verbeteren&lt;br /&gt;
 [[Systemlog]]                            - Log file van relevante wijzigingen aan diverse servers&lt;br /&gt;
&lt;br /&gt;
===Updaten===&lt;br /&gt;
 [[Joomlasites]]                          - Joomla sites die wij bijhouden&lt;br /&gt;
 [[MediaWikiSites]]                       - MediaWiki sites die wij bijhouden&lt;br /&gt;
&lt;br /&gt;
===Nieuwe server===&lt;br /&gt;
 [[JoomlaKloonMaken| Joomla Clone maken ]]                     - Stappen om een Joomla Clone aan te maken&lt;br /&gt;
&lt;br /&gt;
===Nood gegevens===&lt;br /&gt;
 [[Medische protocol Bas|Medisch protocol bas]]                 - Medisch protocol bas&lt;br /&gt;
&lt;br /&gt;
Dit is een &amp;quot;mediawiki&amp;quot; (http://www.mediawiki.org/).&amp;lt;br&amp;gt;&lt;br /&gt;
Uitleg over het editen is te vinden op:&amp;lt;br&amp;gt;&lt;br /&gt;
http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/Wikipedia:How_does_one_edit_a_page&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Inventaris&amp;diff=78202</id>
		<title>Inventaris</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Inventaris&amp;diff=78202"/>
		<updated>2019-11-01T16:00:22Z</updated>

		<summary type="html">&lt;p&gt;Hans: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Inventaris overzicht. ==&lt;br /&gt;
&lt;br /&gt;
In dit overzicht behoort tenminste alle apparatuur voor te komen, die maximaal 3 jaar oud is.&lt;br /&gt;
&lt;br /&gt;
De gegevens van deze pagina kunnen gebruikt worden als basis van het jaarlijks in te vullen hardware inventarisatie formulier, zoals dat door de penningmeester ieder jaar aan het hcc kantoor ter hand gesteld dient te worden.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! datum aankoop	|| artikelomschrijving	|| serienummer	|| aankoopprijs			|| leverancier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|30 oktober 2019&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;cisco-sw-01&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
SG350X-48 48-Port Gigabit Stackable Managed Switch&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|DNI2228066K&lt;br /&gt;
Factuur: [[Media:f-cisco-switch-2019-10-30.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 362,81 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Azerty&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|30 oktober 2019&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;cisco-sw-02&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
SG350X-48 48-Port Gigabit Stackable Managed Switch&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|DNI22280660&lt;br /&gt;
Factuur: [[Media:f-cisco-switch-2019-10-30.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 362,81 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Azerty&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|3 juli 2018&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;rt-01&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
MikroTik CCR1016-12S-1S+ router&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|6EFD087C1C40&lt;br /&gt;
Factuur: [[Media:Mikrotik-CCR1016-12S-1S-router-1.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 643,80 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| KommaGo &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|10 juli 2018&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;rt-02&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
MikroTik CCR1016-12S-1S+ router&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|6EFD08521BE4&lt;br /&gt;
Factuur: [[media:Mikrotik-CCR1016-12S-1S-router-2.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 643,80 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| KommaGo&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|juni 2013&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;KVM&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* KV1416A-R2&amp;lt;br&amp;gt;&lt;br /&gt;
* Blackbox 16 ports KVM&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Media:f-kvm2013.pdf]]&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|13022015224&amp;lt;br&amp;gt;&lt;br /&gt;
[[Media:foto-srnr-kvm.jpg]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 1.987 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
|Blackbox&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 22 november 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;LB1&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* PRIMERGY RX1330 M3&amp;lt;br&amp;gt;&lt;br /&gt;
* 1x 8GB DDR4-2400 U ECC &amp;lt;br&amp;gt;&lt;br /&gt;
* Intel(R) Core(TM) i3-7100 CPU @ 3.90GHz&amp;lt;br&amp;gt;&lt;br /&gt;
* 60GB SATAdom &amp;lt;br&amp;gt;&lt;br /&gt;
* 2 x Gbit I210 Gigabit Network interface onboard&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x Gbit I350 Gigabit Network interface&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YMDH003824&amp;lt;br&amp;gt;&lt;br /&gt;
* Factuur: [[Media:lb-1-2-bit.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 1.396,26 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| BIT, Ede&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 22 november 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;LB2&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* PRIMERGY RX1330 M3&amp;lt;br&amp;gt;&lt;br /&gt;
* 1x 8GB DDR4-2400 U ECC &amp;lt;br&amp;gt;&lt;br /&gt;
* Intel(R) Core(TM) i3-7100 CPU @ 3.90GHz&amp;lt;br&amp;gt;&lt;br /&gt;
* 60GB SATAdom &amp;lt;br&amp;gt;&lt;br /&gt;
* 2 x Gbit I210 Gigabit Network interface onboard&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x Gbit I350 Gigabit Network interface&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YMDH003825&amp;lt;br&amp;gt;&lt;br /&gt;
* Factuur: [[Media:lb-1-2-bit.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 1.396,26 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| BIT, Ede&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 Augustus 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware1&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu Primergy RX2530 M2&amp;lt;br&amp;gt;&lt;br /&gt;
*  4x 32GB DDR4-2400 U ECC (uitbreidbaar naar 12 per socket, upgradebaar naar 64GB per bank)&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x 900 GB SSD (raid 5)&amp;lt;br&amp;gt;&lt;br /&gt;
* Intel Xeon e5-2620 v4 @ 2.10GHz 8 cores 16 logical procesors  &amp;lt;br&amp;gt;&lt;br /&gt;
*  4x1Gb T OC|14000-LOM  netwerk interface&amp;lt;br&amp;gt;&lt;br /&gt;
* ILOm &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YM6B011958&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT binnen 8 uur recovery &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar123.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 6.996,21 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 Augustus 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware2&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu Primergy RX2530 M2&amp;lt;br&amp;gt;&lt;br /&gt;
*  4x 32GB DDR4-2400 U ECC (uitbreidbaar naar 12 per socket, upgradebaar naar 64GB per bank)&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x 900 GB SSD (raid 5)&amp;lt;br&amp;gt;&lt;br /&gt;
* Intel Xeon e5-2620 v4 @ 2.10GHz 8 cores 16 logical procesors  &amp;lt;br&amp;gt;&lt;br /&gt;
*  4x1Gb T OC|14000-LOM  netwerk interface&amp;lt;br&amp;gt;&lt;br /&gt;
* ILOm &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YM6B011957&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT binnen 8 uur recovery &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar123.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 6.996,21 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 Augustus 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware3&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu Primergy RX2530 M2&amp;lt;br&amp;gt;&lt;br /&gt;
*  4x 32GB DDR4-2400 U ECC (uitbreidbaar naar 12 per socket, upgradebaar naar 64GB per bank)&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x 900 GB SSD (raid 5)&amp;lt;br&amp;gt;&lt;br /&gt;
* Intel Xeon e5-2620 v4 @ 2.10GHz 8 cores 16 logical procesors  &amp;lt;br&amp;gt;&lt;br /&gt;
*  4x1Gb T OC|14000-LOM  netwerk interface&amp;lt;br&amp;gt;&lt;br /&gt;
* ILOm &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YM6B011956&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT binnen 8 uur recovery &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar123.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 6.996,21 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| juli 2018&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;logging&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu (type onbekend)&amp;lt;br&amp;gt;&lt;br /&gt;
* 1x 8GB DDR4-2400 U ECC &amp;lt;br&amp;gt;&lt;br /&gt;
* Intel(R) Xeon(R) CPU X3430 @ 2.40GHz&amp;lt;br&amp;gt;&lt;br /&gt;
* 466GB disk &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 0 ex BTW (gift)&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| BIT, Ede&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 14 februari 2013&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;Powerboot-1&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
APC AP8959EU3&amp;lt;br&amp;gt;&lt;br /&gt;
* 24 schakelbare 230V poorten&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
| ZA1238010076&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 755 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Acesdirect&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 14 februari 2013&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;Powerboot-2&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
APC AP8959EU3&amp;lt;br&amp;gt;&lt;br /&gt;
* 24 schakelbare 230V poorten&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
| ZA1238010081&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 755 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Acesdirect&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Afgeschreven apparatuur, niet meer in het rack, niet meer in gebruik ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! datum aankoop	|| artikelomschrijving	|| serienummer	|| aankoopprijs	|| leverancier&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 november 2012&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;SW-01&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
HP 5120-24G SI SWITCH&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : CN13BZ00YZ &amp;lt;br&amp;gt;&lt;br /&gt;
* Hardware productnummer : JE074A &amp;lt;br&amp;gt;&lt;br /&gt;
* HP Carepaq nr: GEEN (lifetime next day garantie HP)&amp;lt;br&amp;gt;&lt;br /&gt;
* Factuur: [[Media:2012-hp-switches.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 700 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Infotheek&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 november 2012&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;SW-02&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
HP 5120-24G SI SWITCH&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : CN13BZ00F6 &amp;lt;br&amp;gt;&lt;br /&gt;
* Hardware productnummer : JE074A &amp;lt;br&amp;gt;&lt;br /&gt;
* HP Carepaq nr: GEEN (lifetime next day garantie HP)&amp;lt;br&amp;gt;&lt;br /&gt;
* Factuur: [[Media:2012-hp-switches.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 700 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Infotheek&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
|-&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
	<entry>
		<id>https://wiki.hobby.nl/index.php?title=Inventaris&amp;diff=78200</id>
		<title>Inventaris</title>
		<link rel="alternate" type="text/html" href="https://wiki.hobby.nl/index.php?title=Inventaris&amp;diff=78200"/>
		<updated>2019-11-01T15:36:13Z</updated>

		<summary type="html">&lt;p&gt;Hans: /* Inventaris overzicht. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Inventaris overzicht. ==&lt;br /&gt;
&lt;br /&gt;
In dit overzicht behoort tenminste alle apparatuur voor te komen, die maximaal 3 jaar oud is.&lt;br /&gt;
&lt;br /&gt;
De gegevens van deze pagina kunnen gebruikt worden als basis van het jaarlijks in te vullen hardware inventarisatie formulier, zoals dat door de penningmeester ieder jaar aan het hcc kantoor ter hand gesteld dient te worden.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! datum aankoop	|| artikelomschrijving	|| serienummer	|| aankoopprijs			|| leverancier	|| verblijfplaats	|| bruikleenovereenkomst&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|30 oktober 2019&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;cisco-sw-01&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
SG350X-48 48-Port Gigabit Stackable Managed Switch&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|DNI2228066K&lt;br /&gt;
Factuur: [[Media:f-cisco-switch-2019-10-30.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 362,81 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Azerty&lt;br /&gt;
&amp;lt;!-- verblijfplaats --&amp;gt;&lt;br /&gt;
|Bit, Ede &lt;br /&gt;
&amp;lt;!-- bruikleenovereenkomst --&amp;gt;&lt;br /&gt;
|n.v.t. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|30 oktober 2019&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;cisco-sw-02&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
SG350X-48 48-Port Gigabit Stackable Managed Switch&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|DNI22280660&lt;br /&gt;
Factuur: [[Media:f-cisco-switch-2019-10-30.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 362,81 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Azerty&lt;br /&gt;
&amp;lt;!-- verblijfplaats --&amp;gt;&lt;br /&gt;
|Bit, Ede &lt;br /&gt;
&amp;lt;!-- bruikleenovereenkomst --&amp;gt;&lt;br /&gt;
|n.v.t. &lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|3 juli 2018&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;rt-01&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
MikroTik CCR1016-12S-1S+ router&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|6EFD087C1C40&lt;br /&gt;
Factuur: [[Media:Mikrotik-CCR1016-12S-1S-router-1.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 643,80 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| KommaGo &lt;br /&gt;
&amp;lt;!-- verblijfplaats --&amp;gt;&lt;br /&gt;
|Bit, Ede &lt;br /&gt;
&amp;lt;!-- bruikleenovereenkomst --&amp;gt;&lt;br /&gt;
|n.v.t. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|10 juli 2018&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;rt-02&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
MikroTik CCR1016-12S-1S+ router&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|6EFD08521BE4&lt;br /&gt;
Factuur: [[media:Mikrotik-CCR1016-12S-1S-router-2.pdf]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 643,80 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| KommaGo&lt;br /&gt;
&amp;lt;!-- verblijfplaats --&amp;gt;&lt;br /&gt;
|Bit, Ede &lt;br /&gt;
&amp;lt;!-- bruikleenovereenkomst --&amp;gt;&lt;br /&gt;
|n.v.t. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
|juni 2013&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
|&#039;&#039;KVM&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* KV1416A-R2&amp;lt;br&amp;gt;&lt;br /&gt;
* Blackbox 16 ports KVM&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Media:f-kvm2013.pdf]]&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|13022015224&amp;lt;br&amp;gt;&lt;br /&gt;
[[Media:foto-srnr-kvm.jpg]]&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 1.987 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
|Blackbox&lt;br /&gt;
&amp;lt;!-- verblijfplaats --&amp;gt;&lt;br /&gt;
|Bit, Ede &lt;br /&gt;
&amp;lt;!-- bruikleenovereenkomst --&amp;gt;&lt;br /&gt;
|n.v.t. &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 22 november 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;LB1&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* PRIMERGY RX1330 M3&amp;lt;br&amp;gt;&lt;br /&gt;
* 1x 8GB DDR4-2400 U ECC &amp;lt;br&amp;gt;&lt;br /&gt;
* Intel(R) Core(TM) i3-7100 CPU @ 3.90GHz&amp;lt;br&amp;gt;&lt;br /&gt;
* 60GB SATAdom &amp;lt;br&amp;gt;&lt;br /&gt;
* 2 x Gbit I210 Gigabit Network interface onboard&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x Gbit I350 Gigabit Network interface&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YMDH003824&amp;lt;br&amp;gt;&lt;br /&gt;
* Factuur: [[Media:lb-1-2-bit.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 1.396,26 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| BIT&lt;br /&gt;
&amp;lt;!-- verblijfplaats --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
&amp;lt;!-- bruikleenovereenkomst --&amp;gt;&lt;br /&gt;
| n.v.t.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 22 november 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;LB2&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* PRIMERGY RX1330 M3&amp;lt;br&amp;gt;&lt;br /&gt;
* 1x 8GB DDR4-2400 U ECC &amp;lt;br&amp;gt;&lt;br /&gt;
* Intel(R) Core(TM) i3-7100 CPU @ 3.90GHz&amp;lt;br&amp;gt;&lt;br /&gt;
* 60GB SATAdom &amp;lt;br&amp;gt;&lt;br /&gt;
* 2 x Gbit I210 Gigabit Network interface onboard&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x Gbit I350 Gigabit Network interface&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YMDH003825&amp;lt;br&amp;gt;&lt;br /&gt;
* Factuur: [[Media:lb-1-2-bit.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 1.396,26 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| BIT&lt;br /&gt;
&amp;lt;!-- verblijfplaats --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
&amp;lt;!-- bruikleenovereenkomst --&amp;gt;&lt;br /&gt;
| n.v.t.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 Augustus 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware1&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu Primergy RX2530 M2&amp;lt;br&amp;gt;&lt;br /&gt;
*  4x 32GB DDR4-2400 U ECC (uitbreidbaar naar 12 per socket, upgradebaar naar 64GB per bank)&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x 900 GB SSD (raid 5)&amp;lt;br&amp;gt;&lt;br /&gt;
* Intel Xeon e5-2620 v4 @ 2.10GHz 8 cores 16 logical procesors  &amp;lt;br&amp;gt;&lt;br /&gt;
*  4x1Gb T OC|14000-LOM  netwerk interface&amp;lt;br&amp;gt;&lt;br /&gt;
* ILOm &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YM6B011958&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT binnen 8 uur recovery &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar123.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 6.996,21 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
&amp;lt;!-- verblijfplaats --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
&amp;lt;!-- bruikleenovereenkomst --&amp;gt;&lt;br /&gt;
| n.v.t.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 Augustus 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware2&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu Primergy RX2530 M2&amp;lt;br&amp;gt;&lt;br /&gt;
*  4x 32GB DDR4-2400 U ECC (uitbreidbaar naar 12 per socket, upgradebaar naar 64GB per bank)&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x 900 GB SSD (raid 5)&amp;lt;br&amp;gt;&lt;br /&gt;
* Intel Xeon e5-2620 v4 @ 2.10GHz 8 cores 16 logical procesors  &amp;lt;br&amp;gt;&lt;br /&gt;
*  4x1Gb T OC|14000-LOM  netwerk interface&amp;lt;br&amp;gt;&lt;br /&gt;
* ILOm &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YM6B011957&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT binnen 8 uur recovery &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar123.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 6.996,21 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
&amp;lt;!-- verblijfplaats --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
&amp;lt;!-- bruikleenovereenkomst --&amp;gt;&lt;br /&gt;
| n.v.t.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 Augustus 2017&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;vmware3&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu Primergy RX2530 M2&amp;lt;br&amp;gt;&lt;br /&gt;
*  4x 32GB DDR4-2400 U ECC (uitbreidbaar naar 12 per socket, upgradebaar naar 64GB per bank)&amp;lt;br&amp;gt;&lt;br /&gt;
* 4 x 900 GB SSD (raid 5)&amp;lt;br&amp;gt;&lt;br /&gt;
* Intel Xeon e5-2620 v4 @ 2.10GHz 8 cores 16 logical procesors  &amp;lt;br&amp;gt;&lt;br /&gt;
*  4x1Gb T OC|14000-LOM  netwerk interface&amp;lt;br&amp;gt;&lt;br /&gt;
* ILOm &lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : YM6B011956&amp;lt;br&amp;gt;&lt;br /&gt;
* 3 jaar onsite garantie via BIT binnen 8 uur recovery &lt;br /&gt;
* Factuur: [[Media:f-bit-vmwar123.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 6.996,21 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
&amp;lt;!-- verblijfplaats --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
&amp;lt;!-- bruikleenovereenkomst --&amp;gt;&lt;br /&gt;
| n.v.t.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| juli 2018&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;logging&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Fujitsu (type onbekend)&amp;lt;br&amp;gt;&lt;br /&gt;
* 1x 8GB DDR4-2400 U ECC &amp;lt;br&amp;gt;&lt;br /&gt;
* Intel(R) Xeon(R) CPU X3430 @ 2.40GHz&amp;lt;br&amp;gt;&lt;br /&gt;
* 466GB disk &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 0 ex BTW (gift)&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| BIT&lt;br /&gt;
&amp;lt;!-- verblijfplaats --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
&amp;lt;!-- bruikleenovereenkomst --&amp;gt;&lt;br /&gt;
| n.v.t.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 14 februari 2013&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;Powerboot-1&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
APC AP8959EU3&amp;lt;br&amp;gt;&lt;br /&gt;
* 24 schakelbare 230V poorten&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
| ZA1238010076&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 755 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Acesdirect&lt;br /&gt;
&amp;lt;!-- verblijfplaats --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
&amp;lt;!-- bruikleenovereenkomst --&amp;gt;&lt;br /&gt;
| n.v.t.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 14 februari 2013&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;Powerboot-2&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
APC AP8959EU3&amp;lt;br&amp;gt;&lt;br /&gt;
* 24 schakelbare 230V poorten&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
| ZA1238010081&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 755 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Acesdirect&lt;br /&gt;
&amp;lt;!-- verblijfplaats --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
&amp;lt;!-- bruikleenovereenkomst --&amp;gt;&lt;br /&gt;
| n.v.t.&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Afgeschreven apparatuur, niet meer in het rack, niet meer in gebruik ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! datum aankoop	|| artikelomschrijving	|| serienummer	|| aankoopprijs	|| leverancier	|| verblijfplaats	|| bruikleenovereenkomst&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 november 2012&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;SW-01&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
HP 5120-24G SI SWITCH&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : CN13BZ00YZ &amp;lt;br&amp;gt;&lt;br /&gt;
* Hardware productnummer : JE074A &amp;lt;br&amp;gt;&lt;br /&gt;
* HP Carepaq nr: GEEN (lifetime next day garantie HP)&amp;lt;br&amp;gt;&lt;br /&gt;
* Factuur: [[Media:2012-hp-switches.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 700 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Infotheek&lt;br /&gt;
&amp;lt;!-- verblijfplaats --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
&amp;lt;!-- bruikleenovereenkomst --&amp;gt;&lt;br /&gt;
| n.v.t.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- datum aankoop --&amp;gt;&lt;br /&gt;
| 15 november 2012&lt;br /&gt;
&amp;lt;!-- artikelomschrijving --&amp;gt;&lt;br /&gt;
| &#039;&#039;SW-02&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
HP 5120-24G SI SWITCH&lt;br /&gt;
&amp;lt;!-- serienummer --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* Product serienummer : CN13BZ00F6 &amp;lt;br&amp;gt;&lt;br /&gt;
* Hardware productnummer : JE074A &amp;lt;br&amp;gt;&lt;br /&gt;
* HP Carepaq nr: GEEN (lifetime next day garantie HP)&amp;lt;br&amp;gt;&lt;br /&gt;
* Factuur: [[Media:2012-hp-switches.pdf]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- aankoopprijs --&amp;gt;&lt;br /&gt;
| € 700 ex BTW&lt;br /&gt;
&amp;lt;!-- leverancier --&amp;gt;&lt;br /&gt;
| Infotheek&lt;br /&gt;
&amp;lt;!-- verblijfplaats --&amp;gt;&lt;br /&gt;
| Bit, Ede&lt;br /&gt;
&amp;lt;!-- bruikleenovereenkomst --&amp;gt;&lt;br /&gt;
| n.v.t.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
|-&lt;/div&gt;</summary>
		<author><name>Hans</name></author>
	</entry>
</feed>