XML-RPC: Difference between revisions

From Hobbynet Admin Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 30: Line 30:


* Joomla kadernet site functies (op basis van JoomlaToken)
* Joomla kadernet site functies (op basis van JoomlaToken)
** Geef mijn kader-gerelateerde gegevens
** Zoek een hcc kaderlid (t.b.v. de kaderleden zoekpagina)
** Zoek een hcc kaderlid (t.b.v. de kaderleden zoekpagina)
** Pas mijn kadermail forwarding aan en toon ja/nee mijn GSM nummer
** Pas mijn kadermail forwarding aan en toon ja/nee mijn GSM nummer
* Kadernet functies (op basis van gebruikersnaam, wachtwoord en hcc code)
** Pas het kadernet e-mail wachtwoord aan
** Pas het kadernet e-mail wachtwoord aan
** Stel een forward in van de kader e-mail
** Controleer op kaderlidmaatschap
** Haal de lijst met alle groeperingen op
** Haal de lijst met alle groeperingen op
** Haal de lijst met alle kaderrollen op
** Haal de lijst met alle kaderrollen op
** Zoek een kaderlid op basis van groepering en/of rol
* Kadernet functies (op basis van unieke URL per gebruiker)
** GeefMinimaleKaderGegevens
** ZetMinimaleKaderGegevens


* HenZ
* HenZ
Line 56: Line 46:
* gebruikersnaam ('hccLogin') en wachtwoord ('userPassword')
* gebruikersnaam ('hccLogin') en wachtwoord ('userPassword')
* hcc lidnummer ('hccLidnr'), Joomla token ('JoomlaToken') en website ('siteID')
* hcc lidnummer ('hccLidnr'), Joomla token ('JoomlaToken') en website ('siteID')
* hcc lidnummer ('hccLidnummer') en hcc code ('hccCode')
* hcc lidnummer ('hccLidnr') en hcc code ('hccCode')
* beheerders-DN ('beheerLogin') en beheerders wachtwoord ('beheerPassword')
* beheerders-DN ('beheerLogin') en beheerders wachtwoord ('beheerPassword')
* partner-DN ('partnerLogin') en partner wachtwoord ('partnerPassword')
* partner-DN ('partnerLogin') en partner wachtwoord ('partnerPassword')
* hcclidnummer ('hccLidnr') en unieke URL ('hccKaderUniekeURL')


=== Aanroepen, gedaan via de bezoekersregistratie-proxy ===
=== Aanroepen, gedaan via de bezoekersregistratie-proxy ===
(de bezoekersregistratie proxy is een mislukt project tbv de Android app van René Prins)
(deze proxy bestaat niet meer)
Diverse aanroepen kunnen ook via de bezoekersregistratie-proxy aangeroepen worden.<br>
Diverse aanroepen kunnen ook via de bezoekersregistratie-proxy aangeroepen worden.<br>
Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:
Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:
Line 87: Line 78:


<pre>
<pre>
2018.07.01 HaVe
2018.11.06 HaVe
XML-RPC Hobbynet versie 54.
XML-RPC Hobbynet versie 56.
</pre>
</pre>


Line 95: Line 86:
<pre>
<pre>
echo (partners)
echo (partners)
GebruikerBestaatControle (kadersite)
GebruikerBestaatControle (Joomla sites)
GeefAlleGroeperingen (kadersite, forum, secr. portal, kantoor portal, hobbynet portal)
GeefAlleGroeperingen (kadersite, forum, secr. portal, kantoor portal, hobbynet portal)
GeefAlleKaderRollen (forum, secr. portal, kantoor portal, hobbynet portal)
GeefAlleKaderRollen (forum, secr. portal, kantoor portal, hobbynet portal)
Line 103: Line 94:
GeefLocaties (kadersite, secr. portal, kantoor portal, hobbynet portal)
GeefLocaties (kadersite, secr. portal, kantoor portal, hobbynet portal)
GeefMijnGegevens (Joomla inlog module Bas)
GeefMijnGegevens (Joomla inlog module Bas)
GeefMijnKaderDetails (Joomla kadernet module Bas)
GeefMijnLidnummer (beheer.hcc.nl secretaris portal)
GeefMijnLidnummer (kadersite)
GeefUitgeschrevenLeden (Joomla sites, HenZ)
GeefMinimaleKaderGegevens (kadersite, t.b.v. eenmalige kadermailing)
GeefUitgeschrevenLeden (drupal site en HenZ)
HaalOptInKeuzen (kantoor portal)
HaalOptInKeuzen (kantoor portal)
HaalOptInLijst (kantoor portal)
HaalOptInLijst (kantoor portal)
Line 113: Line 102:
IsDezeNaamNogBeschikbaar (aangeroepen vanuit de CRM omgeving)
IsDezeNaamNogBeschikbaar (aangeroepen vanuit de CRM omgeving)
IsDezePseudoniemNogBeschikbaar (kantoor portal)
IsDezePseudoniemNogBeschikbaar (kantoor portal)
IsGroeperingsLid (wordt door de nieuwe Drupal module gebruikt)
IsHCCLid (vraagbaak aanroep)
IsHCCLid (vraagbaak aanroep)
IsKaderLid (in veel apps gebruikt)
IsKaderLid (in veel apps gebruikt)
LidBezoektBijeenkomst (bezoekersregistratie)
LidBezoektBijeenkomst (bezoekersregistratie)
MaakGebruikerAan (mijnhcc.nl, maak hccnet account aan en ldap gebruikersnaam)
MaakGebruikerAan (mijnhcc.nl, maak hccnet account aan en ldap gebruikersnaam)
PasKaderWachtwoordAan (kadersite, email ww aanpassen)
PasKaderGegevensAan (kadersite, Joomla module Bas)
PasKaderGegevensAan (kadersite, Joomla module Bas)
PasOptInKeuzeAan (Joomla inlog module Bas)
PasOptInKeuzeAan (Joomla inlog module Bas)
RegistreerGast (bezoekersregistratie)
RegistreerGast (bezoekersregistratie)
SchrijfNietlidInOpBulletin      (Joomla site bulletin module Bas)
SchrijfNietlidInOpBulletin      (Joomla site bulletin module Bas)
ValideerHCCCode (Joomla kadernet module Bas)
ValideerToken                  (Joomla kadernet module Bas)
VraagLidgegevensTokenAan (bezoekersregistratie)
VraagLidgegevensTokenAan (bezoekersregistratie)
WijzigGebruikersGegevens (kantoor en Joomla template sites, ww aanpassen van gebruiker)
WijzigGebruikersGegevens (kantoor en Joomla template sites, ww aanpassen van gebruiker)
ZetKaderForward (kadersite, email forward instellen)
ZetMinimaleKaderGegevens (kadersite, t.b.v. eenmalige kadermailing)
ZoekGroeperingsLid (secr. portal, kantoor portal, hobbynet portal)
ZoekGroeperingsLid (secr. portal, kantoor portal, hobbynet portal)
ZoekKaderLeden (Joomla kadernet module Bas)
ZoekKaderLeden (Joomla kadernet module Bas)
Line 137: Line 120:


<pre>
<pre>
// ** Drupal www.hcc.nl **
// ** Joomla sites, www.hcc.nl **
// 1.1 controleer of een gebruiker bestaat - optie 1
// 1.1 controleer of een gebruiker bestaat - optie 1
// (authenticatie op basis van hccLidnr en hccCode)
// (authenticatie op basis van hccLidnr en hccCode)
Line 150: Line 133:
     ['RemoteID' => $remoteIPaddress]));
     ['RemoteID' => $remoteIPaddress]));


// ** Drupal www.hcc.nl **
// ** Portal mijn.hcc.nl **
// 1.2 controleer of een gebruiker bestaat - optie 2
// 2.1 wijzig wachtwoord - optie 1
// (authenticatie op basis van hccLogin en userPassword)
// op basis van hccLidnummer en hccCode
// Essentiele aanroep, gebruikt vanuit mijnhcc.nl (lidnr + hccCode)
// Ook gebruikt t.b.v. wachtwoord-vergeten procedure op de Joomla template sites
// Als de profielpagina nog niet is doorlopen wordt deze aanroep afgekeurd.
//
// Ook gebruikt om gebruiker rechtstreeks vanaf Joomla template sites wachtwoord te
// laten aanpassen (op basis van lidnummer en hcc code)
//
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'GebruikerBestaatControle',
     'WijzigGebruikersGegevens',
     array(
     array(
       'hccLogin'     => $hccLogin,
       'hccLidnr'          => $hccLidnr,
       'userPassword' => $userPassword,
      'hccCode'           => $hccCode,
     ['ServerID'     => gethostname(),]  
       'nieuw_userPassword' => $nieuw_userPassword,
     ['SiteID'       => $siteID,]
     ['ServerID'           => gethostname(),]  
     ['RemoteID'     => $remoteIPaddress]));
     ['SiteID'             => $siteID,]
     ['RemoteID'           => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'  => 'WijzigGebruikersGegevens',
    'Status'  => 'TRUE',
    'Message'  => 'Gebruikersgegevens gewijzigd',
    'hccLogin' => $hccLogin,
    'cn'      => $cn,
    'sn'      => $sn);


// 1.4 controleer of een gebruiker bestaat - optie 4
// 2.3 wijzig wachtwoord - optie 3
// (authenticatie op basis van hccLogin en userPassword)
// (t.b.v. VZ-portal)
// Enkel Hobbynet beheerders of hcc verenigingskantoor medewerkers
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)
// kunnen gegevens van derden opvragen!)
// * Als hccLidnr gevuld is, dan wordt hccLidnr gebruikt om het juiste record te zoeken
//   Als hccLidnr leeg  is, dan wordt hccLogin gebruikt om het juiste record te zoeken
//  1 van beide velden MOET aanwezig zijn
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'GebruikerBestaatControle',
     'WijzigGebruikersGegevens',
     array(
     array(
       'hccLogin'    => $hccLogin,
       'beheerLogin'        => $beheerLogin,    // beheerder lidnummer
      'userPassword' => $userPassword,
      'beheerPassword'    => $beheerPassword, // beheerder hccCode
      'zoekHccLidnr' => $zoekHccLidnr,
    ['hccLidnr'           => $hccLidnr,]
       'zoekHccLogin' => $zoekHccLogin,
    ['hccLogin'           => $hccLogin,]
     ['ServerID'     => gethostname(),]  
       'nieuw_userPassword' => $nieuw_userPassword,
     ['SiteID'       => $siteID,]
     ['ServerID'           => gethostname(),]  
     ['RemoteID'     => $remoteIPaddress]));
     ['SiteID'             => $siteID,]
     ['RemoteID'           => $remoteIPaddress]));


// ** t.b.v. ophalen van de opt-in keuzes op de beheer pagina **
// 2.6 Geef de complete lijst met opt-ins van dit lid
// (LET OP: authenticatie op basis van beheerdernaam en beheerderwachtwoord)
  $request = xmlrpc_encode_request(
    'HaalOptInKeuzen',
    array(
      'beheerLogin'    => $beheerLogin,
      'beheerPassword' => $beheerPassword,
    ['hccLidnr'      => $hccLidnr,]
    ['hccLogin'      => $hccLogin,]
    ['ServerID'      => gethostname(),]
    ['SiteID'        => $siteID,]
    ['RemoteID'      => $remoteIPaddress]));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'         => 'GebruikerBestaatControle',
     'Action'   => 'HaalOptInKeuzen',
     'Status'         => 'TRUE',
     'Status'   => 'TRUE',
     'Message'         => 'Gebruikersgegevens opgevraagd',
     'Message' => 'OptInLijst opgehaald',
    'hccLidnr'        => $hccLidnr,
     'hccOptIn' => $hccOptIn);
    'hccLogin'        => $hccLogin,
Output negatief:
    'hccPseudoniem'  => $hccPseudoniem,
    'cn'              => $cn,
    'sn'              => $sn,
    'givenname'      => $givenname,
    'mail'            => $mail,
    'mailHccnet'      => $mailHccnet,
    'hccRegio'        => $hccRegio,
    'hccIG'          => $hccIG,
    'hccRol'          => $hccRol,
    'ProfielBekend'  => 'TRUE' | 'FALSE',
     'hccKaderForward' => $hccKaderForward);
Output negatief:
   $reply = array(
   $reply = array(
     'Action'  => 'GebruikerBestaatControle',
     'Action'  => 'HaalOptInKeuzen',
     'Status'  => 'FALSE',
     'Status'  => 'FALSE',
     'Message' => 'Onjuiste credentials' | 'Gegevenscombinatie onjuist');
     'Message' => 'Gegevenscombinatie onjuist');


// ** Portal mijn.hcc.nl **
// ** Portal mijn.hcc.nl **
// 2.1 wijzig wachtwoord - optie 1
// ** t.b.v. 1e keer doorlopen van de profielpagina **
// op basis van hccLidnummer en hccCode
// 8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gebruikersnaam, pseudoniem
// Essentiele aanroep, gebruikt vanuit mijnhcc.nl (lidnr + hccCode)
//     en wachtwoord tevens in LDAP op
// Ook gebruikt t.b.v. wachtwoord-vergeten procedure op de Joomla template sites
// (authenticatie op basis van hcc lidnummer en hcc-code)
// Als de profielpagina nog niet is doorlopen wordt deze aanroep afgekeurd.
// ** Deze gegevens worden doorgezet naar hccnet.nl (action=4) **
//
//
// Ook gebruikt om gebruiker rechtstreeks vanaf Joomla template sites wachtwoord te
// laten aanpassen (op basis van lidnummer en hcc code)
//
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'WijzigGebruikersGegevens',
     'MaakGebruikerAan',
     array(
     array(
       'hccLidnr'           => $hccLidnr,
       'hccLidnr'           => $hccLidnr,
       'hccCode'           => $hccCode,
       'hccCode'             => $hccCode,
       'nieuw_userPassword' => $nieuw_userPassword,
      'nieuw_hccLogin'      => $nieuw_hccLogin,
     ['ServerID'           => gethostname(),]  
       'nieuw_userPassword' => $nieuw_userPassword,
     ['SiteID'             => $siteID,]
      'nieuw_hccPseudoniem' => $nieuw_hccPseudoniem,
     ['RemoteID'           => $remoteIPaddress]));
     ['ServerID'           => gethostname(),]  
     ['SiteID'             => $siteID,]
     ['RemoteID'           => $remoteIPaddress]));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'   => 'WijzigGebruikersGegevens',
     'Action'       => 'MaakGebruikerAan',
     'Status'   => 'TRUE',
     'Status'       => 'TRUE',
     'Message' => 'Gebruikersgegevens gewijzigd',
     'Message'       => 'Gebruiker aangemaakt',
     'hccLogin' => $hccLogin,
     'mail'         => $mail,
     'cn'       => $cn,
     'hccPseudoniem' => $hccPseudoniem);
     'sn'       => $sn);
Output negatief:
 
  $reply = array(
// 2.3 wijzig wachtwoord - optie 3
    'Action'  => 'MaakGebruikerAan',
// (t.b.v. VZ-portal)
     'Status'  => 'FALSE',
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)
    'Message' => 'Onjuiste credentials'      |
// * Als hccLidnr gevuld is, dan wordt hccLidnr gebruikt om het juiste record te zoeken
                'Gebruikersnaam bestaat al'  |
//  Als hccLidnr leeg  is, dan wordt hccLogin gebruikt om het juiste record te zoeken
                'Pseudoniem bestaat al'      |
//  1 van beide velden MOET aanwezig zijn
                'Gegevenscombinatie onjuist' |
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **
                'Vul alle verplichte velden in!');
  $request = xmlrpc_encode_request(
 
     'WijzigGebruikersGegevens',
// H.3 Haal al mijn gegevens
// (wordt gebruikt door de Joomla inlogmodule)
// Voor gebruik over de proxy t.b.v. de Android app kan compact=TRUE meegegeven worden.
// In dat geval worden enkel de meest essentiele gegevens teruggestuurd
$request = xmlrpc_encode_request(
     'GeefMijnGegevens',
     array(
     array(
       'beheerLogin'        => $beheerLogin,    // beheerder lidnummer
       'hccLogin'    => $hccLogin,
      'beheerPassword'    => $beheerPassword, // beheerder hccCode
       'userPassword' => $userPassword,
    ['hccLidnr'          => $hccLidnr,]
     ['compact'      => $compact,]       // leeg of 'TRUE'
    ['hccLogin'          => $hccLogin,]
       'ServerID'     => gethostname(),  
       'nieuw_userPassword' => $nieuw_userPassword,
      'SiteID'       => $siteID,
     ['ServerID'           => gethostname(),]
      'RemoteID'     => $remoteIPaddress));
     ['SiteID'            => $siteID,]
    ['RemoteID'          => $remoteIPaddress]));
 
// ** t.b.v. ophalen van de opt-in keuzes op de beheer pagina **
// 2.6 Geef de complete lijst met opt-ins van dit lid
// (LET OP: authenticatie op basis van beheerdernaam en beheerderwachtwoord)
  $request = xmlrpc_encode_request(
    'HaalOptInKeuzen',
    array(
       'beheerLogin'    => $beheerLogin,
      'beheerPassword' => $beheerPassword,
    ['hccLidnr'      => $hccLidnr,]
    ['hccLogin'      => $hccLogin,]
    ['ServerID'       => gethostname(),]
    ['SiteID'         => $siteID,]
    ['RemoteID'       => $remoteIPaddress]));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'   => 'HaalOptInKeuzen',
     'Action'             => 'GeefMijnGegevens',
     'Status'   => 'TRUE',
     'Status'             => 'TRUE',
     'Message' => 'OptInLijst opgehaald',
     'Message'           => 'Gebruikersgegevens opgevraagd',
     'hccOptIn' => $hccOptIn);
    'hccLidnr'          => $hccLidnr,
Output negatief:
    'hccRegio'          => $hccRegio,
  $reply = array(
    'hccIG'              => $hccIG,
     'Action'  => 'HaalOptInKeuzen',
    'hccRol'            => $hccRol,
     'Status' => 'FALSE',
    'hccAutorisatie'    => $hccAutorisatie,
     'Message' => 'Gegevenscombinatie onjuist');
    'cn'                => $cn,
 
    'sn'                => $sn,
// ** t.b.v. ophalen van de opt-in keuzes op de beheer pagina **
    'JoomlaToken'       => $JoomlaToken,
// 2.8 Haal de lijst met alle mogelijke bulletins
  ['hccLogin'          => $hccLogin,
// (geen authenticatie)
     'hccPseudoniem'     => $hccPseudoniem,
  $request = xmlrpc_encode_request(
    'givenname'          => $givenname,
     'HaalOptInLijst',
    'hccAanhef'          => $hccAanhef,
     array(
    'hccGeslacht'        => $hccGeslacht,
     ['ServerID' => gethostname(),]
     'hccTussenVoegsels'  => $hccTussenVoegsels,
    ['SiteID'   => $siteID,]
    'hccAchternaam'     => $hccAchternaam,
    ['RemoteID' => $remoteIPaddress]));
     'hccStraatnaam'      => $hccStraatnaam,
Output positief:
    'hccHuisnummer'     => $hccHuisnummer
    'hccPostcode'       => $hccPostcode,
     'hccWoonplaats'     => $hccWoonplaats,
    'hccLand'           => $hccLand,
    'hccTelefoon'        => $hccTelefoon,
    'mail'              => $mail,
    'mailHccnet'        => $mailHccnet,
    'hccKaderMail'      => $hccKaderMail,
    'hccKaderForward'    => $hccKaderForward,
    'hccKaderToonMobiel' => $hccKaderToonMobiel,
     'hccOptIn'           => $hccOptIn,
     'ProfielBekend'      => $ProfielBekend,
    'hccBeginDatum'     => $hccBeginDatum,
  ['kadermail_omvang'          => $Formaat,
    'kadermail_aantal_inbox'     => $aantal_inbox,
    'kadermail_aantal_nieuw'     => $aantal_nieuw,
    'kadermail_laatst_opgehaald' => $laatst_opgehaald;]]);
 
Output negatief:
   $reply = array(
   $reply = array(
     'Action'     => 'HaalOptInLijst',
     'Action' => 'GeefMijnGegevens',
     'Status'     => 'TRUE',
     'Status' => 'FALSE',
     'Message'   => 'OptInLijst opgehaald',
     'Message' => 'Gegevenscombinatie onjuist' | 'Onjuiste credentials');
    'OptInLijst' => $OptInLijst);


// ** Portal mijn.hcc.nl **
// ** t.b.v. aanpassen van de opt-in keuzes op een Joomla site **
// ** t.b.v. 1e keer doorlopen van de profielpagina **
// H.4 Pas 1 opt-in van een lid aan
// 8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gebruikersnaam, pseudoniem
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en serverID)
//    en wachtwoord tevens in LDAP op
// (authenticatie op basis van hcc lidnummer en hcc-code)
// ** Deze gegevens worden doorgezet naar hccnet.nl (action=4) **
//
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'MaakGebruikerAan',
     'PasOptInKeuzeAan',
     array(
     array(
       'hccLidnr'           => $hccLidnr,
       'hccLidnr'   => $hccLidnr,
       'hccCode'             => $hccCode,
       'JoomlaToken' => $JoomlaToken,
       'nieuw_hccLogin'     => $nieuw_hccLogin,
       'hccOptIn'   => $hccOptIn,
       'nieuw_userPassword' => $nieuw_userPassword,
       'actie'       => 'Nieuw' | 'Weg',
      'nieuw_hccPseudoniem' => $nieuw_hccPseudoniem,
      'ServerID'   => gethostname(),  
    ['ServerID'           => gethostname(),]
      'SiteID'     => $siteID,
    ['SiteID'             => $siteID,]
      'RemoteID'   => $remoteIPaddress));
    ['RemoteID'           => $remoteIPaddress]));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'       => 'MaakGebruikerAan',
     'Action'   => 'PasOptInKeuzeAan',
     'Status'       => 'TRUE',
     'Status'   => 'TRUE',
     'Message'       => 'Gebruiker aangemaakt',
     'Message' => 'OptIn aangepast');
    'mail'          => $mail,
    'hccPseudoniem' => $hccPseudoniem);
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action'  => 'MaakGebruikerAan',
     'Action'  => 'PasOptInKeuzeAan',
     'Status'  => 'FALSE',
     'Status'  => 'FALSE',
     'Message' => 'Onjuiste credentials'      |
     'Message' => 'Gegevenscombinatie onjuist' | 'Onjuiste credentials');
                'Gebruikersnaam bestaat al'  |
   
                'Pseudoniem bestaat al'      |
// H.5 Zoek kaderleden NAW (t.b.v. de Joomla kadersite)
                'Gegevenscombinatie onjuist' |
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)
                'Vul alle verplichte velden in!');
// (wordt gebruikt door de Joomla kadersite module)
 
//
// H.3 Haal al mijn gegevens
// * Er dient minstens 1 zoekcriterium opgegeven te worden.
// (wordt gebruikt door de Joomla inlogmodule)
// * Als zowel hccRegio als tegelijk ook hccIG opgegeven worden is de uitkomst onvoorspelbaar.
// Voor gebruik over de proxy t.b.v. de Android app kan compact=TRUE meegegeven worden.
// * Als compact=TRUE worden enkel lidnummer, cn en sn in het antwoord gezet
// In dat geval worden enkel de meest essentiele gegevens teruggestuurd
$request = xmlrpc_encode_request(
$request = xmlrpc_encode_request(
     'GeefMijnGegevens',
     'ZoekKaderLeden',
     array(
     array(
       'hccLogin'     => $hccLogin,
       'hccLidnr'   => $hccLidnr,
       'userPassword' => $userPassword,
      'JoomlaToken' => $JoomlaToken,
     ['compact'      => $compact,]       // leeg of 'TRUE'
      'ServerID'    => gethostname(),
      'ServerID'     => gethostname(),  
      'SiteID'      => $siteID,
      'SiteID'       => $siteID,
       'RemoteID'   => $remoteIPaddress,
      'RemoteID'    => $remoteIPaddress));
     ['hccRegio'   => $hccRegio,]
     ['hccIG'      => $hccIG,]
    ['hccRol'     => $hccRol,]
    ['hccLocatie' => $hccLocatie,]
    ['achternaam' => $achternaam,]
    ['compact'    => $compact]));       // leeg of 'TRUE'
 
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'             => 'GeefMijnGegevens',
     'Action' => 'ZoekKaderLeden',
     'Status'             => 'TRUE',
     'Status' => 'TRUE',
     'Message'           => 'Gebruikersgegevens opgevraagd',
     'Message' => 'Kaderleden opgevraagd'
     'hccLidnr'           => $hccLidnr,
     'Kaderleden'     => array(
    'hccRegio'           => $hccRegio,
      'hccLidNummer' => $hccLidNummer,
    'hccIG'              => $hccIG,
      'hccRol'       => $hccRol,
    'hccRol'             => $hccRol,
      'hccAanhef'    => $hccAanhef,
    'cn'                 => $cn,
      'givenname'    => $givenname,
     'sn'                => $sn,
      'cn'           => $cn,
    'JoomlaToken'        => $JoomlaToken,
      'sn'           => $sn,
  ['hccLogin'          => $hccLogin,
      'hccWoonplaats' => $hccWoonplaats,
    'hccPseudoniem'      => $hccPseudoniem,
      'hccTelefoon'   => $hccTelefoon,
     'givenname'          => $givenname,
      'hccMobiel'    => $hccMobiel,
    'hccAanhef'         => $hccAanhef,
      'hccKaderMail' => $hccKaderMail);
    'hccGeslacht'       => $hccGeslacht,
 
    'hccTussenVoegsels'  => $hccTussenVoegsels,
Output negatief:
    'hccAchternaam'      => $hccAchternaam,
   $reply = array(
    'hccStraatnaam'      => $hccStraatnaam,
     'Action'   => 'ZoekKaderLeden',
    'hccHuisnummer'      => $hccHuisnummer
     'Status'   => 'FALSE',
    'hccPostcode'        => $hccPostcode,
     'Message'   => 'Gegevenscombinatie onjuist' | 'Onjuiste credentials',
    'hccWoonplaats'     => $hccWoonplaats,
  ['ExtraInfo' => 'Ongeldig token']);
    'hccLand'            => $hccLand,
    'hccTelefoon'       => $hccTelefoon,
    'mail'               => $mail,
     'mailHccnet'        => $mailHccnet,
    'hccKaderMail'       => $hccKaderMail,
    'hccKaderForward'    => $hccKaderForward,
    'hccKaderToonMobiel' => $hccKaderToonMobiel,
    'hccOptIn'          => $hccOptIn,
    'ProfielBekend'      => $ProfielBekend,
    'hccBeginDatum'      => $hccBeginDatum]);
Output negatief:
   $reply = array(
     'Action' => 'GeefMijnGegevens',
     'Status' => 'FALSE',
     'Message' => 'Gegevenscombinatie onjuist' | 'Onjuiste credentials');


// ** t.b.v. aanpassen van de opt-in keuzes op een Joomla site **
// H.9 PasKaderGegevensAan
// H.4 Pas 1 opt-in van een lid aan
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en serverID)
// (wordt gebruikt door de Joomla kadersite module)
// Om de kaderleden hun forward in te laten stellen,
// en tegelijkertijd de opt-in / opt-out voor hccToonMobiel te laten regelen
// Kan tevens het kader email wachtwoord aanpassen
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'PasOptInKeuzeAan',
     'PasKaderGegevensAan',
     array(
     array(
       'hccLidnr'   => $hccLidnr,
       'hccLidnr'           => $hccLidnr,
       'JoomlaToken' => $JoomlaToken,
       'JoomlaToken'         => $JoomlaToken,
       'hccOptIn'   => $hccOptIn,
       'ServerID'           => gethostname(),  
       'actie'       => 'Nieuw' | 'Weg',
       'SiteID'             => $siteID,
       'ServerID'   => gethostname(),  
      'RemoteID'           => $remoteIPaddress,
       'SiteID'     => $siteID,
       'hccKaderForward'     => $hccKaderForward,   // '' | $mail | $mailHccNet
      'RemoteID'   => $remoteIPaddress));
       'hccKaderToonMobiel' => $hccKaderToonMobiel, // 'TRUE' | 'FALSE' | 'NULL'
    ['nieuw_kaderPassword' => $nieuw_kaderPassword]));
 
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'   => 'PasOptInKeuzeAan',
     'Action'             => 'PasKaderGegevensAan',
     'Status'   => 'TRUE',
     'Status'             => 'TRUE',
     'Message' => 'OptIn aangepast');
     'Message'           => 'kadergegevens aangepast');
 
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action' => 'PasOptInKeuzeAan',
     'Action'   => 'PasKaderGegevensAan',
     'Status' => 'FALSE',
     'Status'   => 'FALSE',
     'Message' => 'Gegevenscombinatie onjuist' | 'Onjuiste credentials');
     'Message'   => 'Gegevenscombinatie onjuist' | 'Onjuiste credentials',
   
  ['ExtraInfo' => 'Ongeldig token'|'Alleen kaderleden mogen deze aanroep uitvoeren']);
// H.5 Zoek kaderleden NAW (t.b.v. de Joomla kadersite)
 
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)
// 3.1 Geef mijn lidnummer
// (wordt gebruikt door de Joomla kadersite module)
// (authenticatie op basis van hccLogin en userPassword)
//
// * Er dient minstens 1 zoekcriterium opgegeven te worden.
// * Als zowel hccRegio als tegelijk ook hccIG opgegeven worden is de uitkomst onvoorspelbaar.
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'ZoekKaderLeden',
     'GeefMijnLidnummer',
     array(
     array(
       'hccLidnr'   => $hccLidnr,
       'hccLogin'     => $hccLogin,
       'JoomlaToken' => $JoomlaToken,
       'userPassword' => $userPassword,
      'ServerID'   => gethostname(),
    ['ServerID'     => gethostname(),]  
      'SiteID'      => $siteID,
     ['SiteID'      => $siteID,]
      'RemoteID'    => $remoteIPaddress,
     ['RemoteID'     => $remoteIPaddress]));
    ['hccRegio'    => $hccRegio,]
Output positief:
     ['hccIG'      => $hccIG,]
     ['hccRol'     => $hccRol,]
    ['hccLocatie'  => $hccLocatie,]
    ['achternaam'  => $achternaam]));
 
Output positief:
   $reply = array(
   $reply = array(
     'Action' => 'ZoekKaderLeden',
     'Action'   => 'GeefMijnLidnummer',
     'Status' => 'TRUE',
     'Status'   => 'TRUE',
     'Message' => 'Kaderleden opgevraagd'
     'Message' => 'Lidnummer opgevraagd',
    'Kaderleden'      => array(
     'hccLidnr' => $hccLidnr);
      'hccRol'        => $hccRol,
      'hccAanhef'    => $hccAanhef,
      'givenname'     => $givenname,
      'cn'           => $cn,
      'sn'            => $sn,
      'hccWoonplaats' => $hccWoonplaats,
      'hccTelefoon'  => $hccTelefoon,
      'hccMobiel'    => $hccMobiel,
      'hccKaderMail'  => $hccKaderMail);
 
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action'   => 'ZoekKaderLeden',
     'Action' => 'GeefMijnLidnummer',
     'Status'   => 'FALSE',
     'Status' => 'FALSE',
     'Message'   => 'Gegevenscombinatie onjuist' | 'Onjuiste credentials',
     'Message' => 'Onjuiste credentials' | 'Gegevenscombinatie onjuist');
  ['ExtraInfo' => 'Ongeldig token']);


// H.6 Haal mijn kadergegevens (t.b.v. de Joomla kadersite)
// ** Portal mijn.hcc.nl **
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)
// ** t.b.v. 1e keer doorlopen van de profielpagina **
// (wordt gebruikt door de Joomla kadersite module)
// 8.2 Controleer of de gebruikersnaam op dit moment bestaat
// (haalt bij de mailserver ook wat informatie op)
// (geen authenticatie)
// ** Deze gegevens worden opgevraagd bij hccnet.nl (action=3)       **
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'GeefMijnKaderDetails',
     'IsDezeNaamNogBeschikbaar',
     array(
     array(
       'hccLidnr'   => $hccLidnr,
       'nieuw_hccLogin' => $nieuw_hccLogin,
      'JoomlaToken' => $JoomlaToken,
    ['ServerID'      => gethostname(),]
       'ServerID'    => gethostname(),  
    ['SiteID'         => $siteID,]
      'SiteID'     => $siteID,
    ['RemoteID'       => $remoteIPaddress]));
      'RemoteID'   => $remoteIPaddress));
 
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'             => 'GeefMijnKaderDetails',
     'Action' => 'IsDezeNaamNogBeschikbaar',
     'Status'             => 'TRUE',
     'Status' => 'TRUE',
     'Message'           => 'Kadergegevens opgevraagd',
     'Message' => 'Gebruikersnaam is nog beschikbaar');
    'hccLidnr'          => $hccLidnr,
    'hccLogin'          => $hccLogin,
    'mail'              => $mail,
    'mailHccnet'        => $mailHccnet,
    'hccKaderMail'      => $hccKaderMail,
    'hccKaderForward'    => $hccKaderForward,
    'hccKaderToonMobiel' => $hccKaderToonMobiel,
    'hccRol'            => $hccRol,
    'formaat'            => $formaat,
    'aantal_inbox'      => $aantal_inbox,
    'aantal_nieuw'      => $aantal_nieuw);
 
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action'   => 'GeefMijnKaderDetails',
     'Action' => 'IsDezeNaamNogBeschikbaar',
     'Status'   => 'FALSE',
     'Status' => 'FALSE',
     'Message'   => 'Gegevenscombinatie onjuist' | 'Onjuiste credentials',
     'Message' => 'Gebruikersnaam bestaat al');
  ['ExtraInfo' => 'Ongeldig token'|'Alleen kaderleden mogen deze aanroep uitvoeren']);


// H.7 Haal mijn kadergegevens (t.b.v. de eenmalige email aktie om forwarding in te stellen)
// ** Enkel voor gebruik vanaf de kantoor portal **
// (LET OP: authenticatie op basis van lidnummer en hccKaderUniekeURL)
// **  t.b.v. het hernoemen van accounts in CRM  **
// Dit is een dedicated Tripolis / nieuwe kadersite gerelateerde aanroep.
// 8.3 Controleer of een Pseudoniem op dit moment bestaat ??? NIET GEBRUIKT ??
// Haal op basis van het lidnummer en de unieke URL enkele kaderlid gerelateerde gegevens op
// (geen authenticatie)
// (t.b.v. eenmalige mailing om de kaderleden super-eenvoudig hun forward in te laten stellen,
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **
// en tegelijkertijd de opt-in / opt-out voor hccToonMobiel te laten regelen)
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'GeefMinimaleKaderGegevens',
     'IsDezePseudoniemNogBeschikbaar',
     array(
     array(
       'hccLidnr'         => $hccLidnr,
       'nieuw_hccPseudoniem' => $nieuw_hccPseudoniem));
      'hccKaderUniekeURL' => $hccKaderUniekeURL,
      'ServerID'          => gethostname(),
      'SiteID'            => $siteID,
      'RemoteID'          => $remoteIPaddress));
 
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'             => 'GeefMinimaleKaderGegevens',
     'Action' => 'IsDezePseudoniemNogBeschikbaar',
     'Status'             => 'TRUE',
     'Status' => 'TRUE',
     'Message'           => 'Minimale kadergegevens opgevraagd',
     'Message' => 'Pseudoniem is nog beschikbaar');
    'hccLidnr'          => $hccLidnr,
Output negatief:
    'mail'              => $mail,
    'mailHccnet'        => $mailHccnet,
    'hccKaderMail'      => $hccKaderMail,
    'hccKaderForward'    => $hccKaderForward,
    'hccTelefoon'        => $hccTelefoon,
    'hccMobiel'          => $hccMobiel,
    'hccKaderToonMobiel' => $hccKaderToonMobiel,
    'formaat'            => $formaat,
    'aantal_inbox'      => $aantal_inbox,
    'aantal_nieuw'      => $aantal_nieuw);
 
Output negatief:
   $reply = array(
   $reply = array(
     'Action'   => 'GeefMinimaleKaderGegevens',
     'Action' => 'IsDezePseudoniemNogBeschikbaar',
     'Status'   => 'FALSE',
     'Status' => 'FALSE',
     'Message'   => 'Gegevenscombinatie onjuist' | 'Onjuiste credentials',
     'Message' => 'Pseudoniem bestaat al');
  ['ExtraInfo' => 'Ongeldige hccKaderUniekeURL'|'Alleen kaderleden mogen deze aanroep uitvoeren']);


// H.8 Bewaar mijn minimale kadergegevens (t.b.v. de eenmalige email aktie om forwarding in te stellen)
// ** t.b.v. de verenigingszaken zoekpagina **
// (LET OP: authenticatie op basis van lidnummer en hccKaderUniekeURL)
// A.1 Zoek alle bij de query passende hcc leden
// Dit is een dedicated Tripolis / nieuwe kadersite gerelateerde aanroep.
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan
// Zet op basis van het lidnummer en de unieke URL enkele kaderlid gerelateerde gegevens om
// (maximaal tot de door de XML-RPC server ingebouwde limiet)
// (t.b.v. eenmalige mailing om de kaderleden super-eenvoudig hun forward in te laten stellen,
// en tegelijkertijd de opt-in / opt-out voor hccToonMobiel te laten regelen)
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'ZetMinimaleKaderGegevens',
     'ZoekHCCLid',
     array(
     array(
       'hccLidnr'           => $hccLidnr,
       'beheerLogin'   => $beheerLogin,   // beheerder hccLidnummer
       'hccKaderUniekeURL' => $hccKaderUniekeURL,
       'beheerPassword' => $beheerPassword, // beheerder hccCode
       'ServerID'           => gethostname(),  
       'ZoekMethode'   => $ZoekMethode,
       'SiteID'             => $siteID,
       'ZoekString'     => $zoekstring,
      'RemoteID'           => $remoteIPaddress,
    ['ZoekLimiet'     => $ZoekLimiet,]
      'hccKaderForward'   => $hccKaderForward,
    ['Groepering'     => $Groepering,]
      'hccKaderToonMobiel' => $hccKaderToonMobiel));
    ['ServerID'       => gethostname(),]
 
    ['SiteID'         => $siteID,]
Output positief:
    ['RemoteID'       => $remoteIPaddress]));
  $reply = array(
+---------------------+-----------------------------------------+
    'Action'             => 'ZetMinimaleKaderGegevens',
| ZoekMethode        |  ZoekString                            |
    'Status'             => 'TRUE',
+---------------------+-----------------------------------------+
    'Message'           => 'Minimale kadergegevens bewaard');
| achternaam          | (eerste deel van) de naam              |
 
| postcode           | (eerste deel van) postcode              |
Output negatief:
| lidnummer          | volledig lidnummer                      |
| emailadres          | (eerste deel van) e-mail adres          |
| gebruikersnaam      | (eerste deel van) de login naam        |
| pseudoniem          | (eerste deel van) het pseudoniem        |
| opgezegde_leden    | YYYYMMDD tot waar gezocht moet worden  |
| uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden  |
| overleden_leden    | YYYYMMDD tot waar gezocht moet worden  |
+---------------------+-----------------------------------------+
 
Output positief:
   $reply = array(
   $reply = array(
     'Action'   => 'ZetMinimaleKaderGegevens',
     'Action'     => 'ZoekHCCLid',
     'Status'   => 'FALSE',
     'Status'     => 'TRUE',
     'Message'   => 'Gegevenscombinatie onjuist' | 'Onjuiste credentials',
     'Message'     => 'Gebruiker(s) gevonden',
   ['ExtraInfo' => 'Ongeldige hccKaderUniekeURL'|'Alleen kaderleden mogen deze aanroep uitvoeren']);
    'ZoekMethode' => $ZoekMethode,
 
   ['ExtraInfo'   => 'Zoekopdracht afgebroken, Y van Z getoond',]
// H.9 PasKaderGegevensAan
    'Results'     => array(
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)
      'hccLidnummer'      => $hccLidnummer,
// (wordt gebruikt door de Joomla kadersite module)
      'hccBeginDatum'    => $hccBeginDatum,
// Om de kaderleden hun forward in te laten stellen,
      'hccEindDatum'      => $hccEindDatum,
// en tegelijkertijd de opt-in / opt-out voor hccToonMobiel te laten regelen
      'sn'                => $sn,
// Kan tevens het kader email wachtwoord aanpassen
      'givenName'        => $givenName,
  $request = xmlrpc_encode_request(
      'hccGeslacht'      => $hccGeslacht,
    'PasKaderGegevensAan',
      'hccStraatnaam'     => $hccStraatnaam,
     array(
      'hccHuisnummer'     => $hccHuisnummer
       'hccLidnr'           => $hccLidnr,
       'hccHuisToevoeging' => $hcchuisToevoeging,
       'JoomlaToken'         => $JoomlaToken,
       'hccPostcode'       => $hccPostcode,
       'ServerID'           => gethostname(),  
       'hccWoonplaats'     => $hccWoonplaats,
       'SiteID'             => $siteID,
       'hccLand'           => $hccLand,
       'RemoteID'           => $remoteIPaddress,
       'hccTelefoon'       => $hccTelefoon,
       'hccKaderForward'     => $hccKaderForward,   // '' | $mail | $mailHccNet
       'hccMobiel'         => $hccMobiel,
       'hccKaderToonMobiel' => $hccKaderToonMobiel, // 'TRUE' | 'FALSE' | 'NULL'
      'mail'             => $mail,
    ['nieuw_kaderPassword' => $nieuw_kaderPassword]));
      'mailHccnet'        => $mailHccnet,
 
       'hccIG'             => $hccIG,
Output positief:
      'hccRol'           => $hccRol,
      'hccLogin'         => $hccLogin,
      'hccPseudoniem'     => $hccPseudoniem,
      'ProfielBekend'     => 'TRUE' | 'FALSE'])*);
Output negatief:
   $reply = array(
   $reply = array(
     'Action'             => 'PasKaderGegevensAan',
     'Action' => 'ZoekHCCLid',
     'Status'             => 'TRUE',
     'Status' => 'FALSE',
     'Message'           => 'kadergegevens aangepast');
     'Message' => 'Gebruiker niet gevonden');
 
Output negatief:
   $reply = array(
   $reply = array(
     'Action'   => 'PasKaderGegevensAan',
     'Action' => 'ZoekHCCLid',
     'Status'   => 'FALSE',
     'Status' => 'FALSE',
     'Message'   => 'Gegevenscombinatie onjuist' | 'Onjuiste credentials',
     'Message' => 'Onjuiste credentials');
  ['ExtraInfo' => 'Ongeldig token'|'Alleen kaderleden mogen deze aanroep uitvoeren']);


// 3.1 Geef mijn lidnummer
// ** t.b.v. beheer.hcc.nl **
// (authenticatie op basis van hccLogin en userPassword)
// A.3 Zoek alle bij de query passende hcc leden van deze groepering
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan
// (maximaal tot de door de XML-RPC server ingebouwde limiet)
// (authenticatie op basis van AccountNaam en AccountCode of token)
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'GeefMijnLidnummer',
     'ZoekGroeperingsLid',
     array(
     array(
       'hccLogin'     => $hccLogin,
       'AccountNaam' => $lidnr,
       'userPassword' => $userPassword,
    ['AccountCode' => $AccountCode,]
     ['ServerID'     => gethostname(),]  
    ['token'      => $token,]
     ['SiteID'       => $siteID,]
      'Groepering'  => $groepering,
     ['RemoteID'     => $remoteIPaddress]));
      'ZoekMethode' => $ZoekMethode,
Output positief:
       'ZoekString' => $zoekstring,
  $reply = array(
    ['ZoekLimiet'  => $ZoekLimiet,]
     'Action'   => 'GeefMijnLidnummer',
    ['Bijeenkomst' => $Bijeenkomst,] // Alleen voor gebruik op de
     'Status'   => 'TRUE',
                                      // bijeenkomsten aanwezigheidsregistratie pagina
    'Message' => 'Lidnummer opgevraagd',
     ['ServerID'   => gethostname(),]  
    'hccLidnr' => $hccLidnr);
     ['SiteID'     => $siteID,]
Output negatief:
     ['RemoteID'   => $remoteIPaddress]));
+---------------------+-----------------------------------------+
| ZoekMethode        |  ZoekString                            |
+---------------------+-----------------------------------------+
| achternaam          | (deel van) de naam                      |
| postcode            | (eerste deel van) postcode              |
| lidnummer          | volledig lidnummer                      |
| nieuwe_leden        | YYYYMMDD vanaf waar gezocht moet worden |
| opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden  |
| uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |
| overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |
| kaderleden          | n.v.t.                                  |
  +---------------------+-----------------------------------------+
 
Output positief:
   $reply = array(
   $reply = array(
     'Action' => 'GeefMijnLidnummer',
     'Action'   => 'ZoekGroeperingsLid',
     'Status' => 'FALSE',
     'Status'   => 'TRUE',
     'Message' => 'Onjuiste credentials' | 'Gegevenscombinatie onjuist');
     'Message'   => 'Gebruiker(s) gevonden',
 
  ['ExtraInfo' => 'Zoekopdracht afgebroken, Y van Z getoond',]
// ** Portal mijn.hcc.nl **
    'Results'  =>
// ** t.b.v. 1e keer doorlopen van de profielpagina **
      [array(
// 8.2 Controleer of de gebruikersnaam op dit moment bestaat
        'hccLidnummer'  => $hccLidnummer,
// (geen authenticatie)
        'hccBeginDatum' => $hccBeginDatum,
// ** Deze gegevens worden opgevraagd bij hccnet.nl (action=3)      **
        'hccEindDatum'  => $hccEindDatum,
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **
        'sn'            => $sn,
   $request = xmlrpc_encode_request(
        'givenName'    => $givenName,
    'IsDezeNaamNogBeschikbaar',
        'hccGeslacht'   => $hccGeslacht,
    array(
        'hccStraatnaam' => $hccStraatnaam,
      'nieuw_hccLogin' => $nieuw_hccLogin,
        'hccHuisnummer' => $hccHuisnummer,  
    ['ServerID'      => gethostname(),]
        'hccPostcode'  => $hccPostcode,
    ['SiteID'         => $siteID,]
        'hccWoonplaats' => $hccWoonplaats,
    ['RemoteID'       => $remoteIPaddress]));
        'hccLand'      => $hccLand,  
Output positief:
        'hccTelefoon'   => $hccTelefoon,
  $reply = array(
        'hccMobiel'     => $hccMobiel,
    'Action'  => 'IsDezeNaamNogBeschikbaar',
        'mail'          => $mail,
    'Status' => 'TRUE',
        'mailHccnet'    => $mailHccnet,
    'Message' => 'Gebruikersnaam is nog beschikbaar');
        'hccKaderMail'  => $hccKaderMail,
        'hccRegio'     => $hccRegio,
        'hccIG'         => $hccIG,
        'hccRol'       => $hccRol,
        'hccLogin'     => $hccLogin,
        'hccPseudoniem' => $hccPseudoniem)]*));
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action'  => 'IsDezeNaamNogBeschikbaar',
     'Action'  => 'ZoekGroeperingsLid',
     'Status'  => 'FALSE',
     'Status'  => 'FALSE',
     'Message' => 'Gebruikersnaam bestaat al');
     'Message' => 'Gebruiker(s) niet gevonden' | 'Onjuiste credentials');


// ** Enkel voor gebruik vanaf de kantoor portal **
// ** t.b.v. administreren van bijeenkomsten **
// **  t.b.v. het hernoemen van accounts in CRM  **
// A.4 Lid bezoekt bijeenkomst
// 8.3 Controleer of een Pseudoniem op dit moment bestaat
// (authenticatie op basis van AccountNaam en AccountCode of token)
// (geen authenticatie)
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'IsDezePseudoniemNogBeschikbaar',
     'LidBezoektBijeenkomst',
     array(
     array(
       'nieuw_hccPseudoniem' => $nieuw_hccPseudoniem));
    ['JoomlaToken' => $JoomlaToken,]
      'AccountNaam' => $lidnr,
    ['AccountCode' => $AccountCode,]
    ['token'      => $token,]
       'Bijeenkomst' => $Bijeenkomst, // groepering die deze bijeenkomst organiseert
      'hccLidnr'    => $hccLidnr,    // lid dat aanwezig gemeld moet worden
    ['correctie'  => $hccLidnr,]  // lid dat gecorrigeerd moet worden
    ['ServerID'    => gethostname(),]
    ['SiteID'      => $siteID,]
    ['RemoteID'   => $remoteIPaddress]));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'  => 'IsDezePseudoniemNogBeschikbaar',
     'Action'  => 'LidBezoektBijeenkomst',
     'Status'  => 'TRUE',
     'Status'  => 'TRUE',
     'Message' => 'Pseudoniem is nog beschikbaar');
     'Message' => 'Bezoeker weggeschreven',
    'Results' => array(
      // info van deze bezoeker
      'cn'              => $cn,                // cn (Verbeek, H.J.)
      'hccGeslacht'      => $hccGeslacht,      // hccGeslacht van de bezoeker
      'groeperingslid'  => $groeperingslid,    // TRUE of FALSE: is deze persoon lid van deze groepering
      'mijnGroeperingen' => $mijnGroeperingen,  // komma-gescheiden lijst (regio, [hccIG]*)
      'aantalBezoeken'  => $aantalBezoeken,    // hoe vaak heeft dit lid deze bijeenkomst bezocht
      // info van de bijeenkomst
      'AantalBezoekers' => $AantalBezoekers); // aantal bezoekers van deze bijeenkomst
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action'  => 'IsDezePseudoniemNogBeschikbaar',
     'Action'  => 'LidBezoektBijeenkomst',
     'Status'  => 'FALSE',
     'Status'  => 'FALSE',
     'Message' => 'Pseudoniem bestaat al');
     'Message' => 'Onjuiste credentials');


// ** t.b.v. de verenigingszaken zoekpagina **
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **
// A.1 Zoek alle bij de query passende hcc leden
// A.5 Vraag Lidgegevens token aan (geldig voor dit lid, en deze groepering, op deze datum)
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan
// Als geen datum gegeven is, dan is het token vandaag geldig
// (maximaal tot de door de XML-RPC server ingebouwde limiet)
// (authenticatie op basis van AccountNaam en AccountCode)
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'ZoekHCCLid',
     'VraagLidgegevensTokenAan',
     array(
     array(
       'beheerLogin'   => $beheerLogin,   // beheerder hccLidnummer
       'AccountNaam' => $lidnr,
       'beheerPassword' => $beheerPassword, // beheerder hccCode
       'AccountCode' => $AccountCode,
       'ZoekMethode'    => $ZoekMethode,
       'hccLidnr'    => $hccLidnummer, // vraag het token voor dit lid aan
       'ZoekString'     => $zoekstring,
       'groepering' => $groepering,   // zoek binnen deze groepering
     ['ZoekLimiet'     => $ZoekLimiet,]
     ['datum'       => $datum,]       // optioneel: datum YYYY-MM-DD, anders: vandaag
     ['ServerID'       => gethostname(),]  
     ['ServerID'   => gethostname(),]  
     ['SiteID'         => $siteID,]
     ['SiteID'     => $siteID,]
     ['RemoteID'       => $remoteIPaddress]));
     ['RemoteID'   => $remoteIPaddress]));
+---------------------+-----------------------------------------+
| ZoekMethode        |  ZoekString                            |
+---------------------+-----------------------------------------+
| achternaam          | (eerste deel van) de naam              |
| postcode            | (eerste deel van) postcode              |
| lidnummer          | volledig lidnummer                      |
| emailadres          | (eerste deel van) e-mail adres          |
| gebruikersnaam      | (eerste deel van) de login naam        |
| pseudoniem          | (eerste deel van) het pseudoniem        |
| opgezegde_leden    | YYYYMMDD tot waar gezocht moet worden  |
| uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden  |
| overleden_leden    | YYYYMMDD tot waar gezocht moet worden  |
+---------------------+-----------------------------------------+
 
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'     => 'ZoekHCCLid',
     'Action'     => 'VraagLidgegevensTokenAan',
     'Status'     => 'TRUE',
     'Status'     => 'TRUE',
     'Message'     => 'Gebruiker(s) gevonden',
     'Message'   => 'Token opgevraagd',
     'ZoekMethode' => $ZoekMethode,
     'groepering' => $Groepering,
  ['ExtraInfo'  => 'Zoekopdracht afgebroken, Y van Z getoond',]
     'token'      => $token,
     'Results'    => array(
     'sn'         => $sn);
      'hccLidnummer'      => $hccLidnummer,
      'hccBeginDatum'     => $hccBeginDatum,
      'hccEindDatum'      => $hccEindDatum,
      'sn'               => $sn,
      'givenName'        => $givenName,
      'hccGeslacht'      => $hccGeslacht,
      'hccStraatnaam'    => $hccStraatnaam,
      'hccHuisnummer'    => $hccHuisnummer
      'hccHuisToevoeging' => $hcchuisToevoeging,
      'hccPostcode'      => $hccPostcode,
      'hccWoonplaats'    => $hccWoonplaats,
      'hccLand'          => $hccLand,
      'hccTelefoon'      => $hccTelefoon,
      'hccMobiel'        => $hccMobiel,
      'mail'              => $mail,
      'mailHccnet'        => $mailHccnet,
      'hccIG'            => $hccIG,
      'hccRol'            => $hccRol,
      'hccLogin'          => $hccLogin,
      'hccPseudoniem'    => $hccPseudoniem,
      'ProfielBekend'    => 'TRUE' | 'FALSE'])*);
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action'  => 'ZoekHCCLid',
     'Action'  => 'VraagLidgegevensTokenAan',
     'Status'  => 'FALSE',
     'Status'  => 'FALSE',
    'Message' => 'Gebruiker niet gevonden');
     'Message' => 'Onjuiste credentials');
  $reply = array(
 
    'Action'  => 'ZoekHCCLid',
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **
    'Status'  => 'FALSE',
// A.6 Toon bezoekersoverzicht
     'Message' => 'Onjuiste credentials');
 
// ** t.b.v. het Ledenadministratie overzicht op de kadersite **
// A.3 Zoek alle bij de query passende hcc leden van deze groepering
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan
// (maximaal tot de door de XML-RPC server ingebouwde limiet)
// (authenticatie op basis van AccountNaam en AccountCode of token)
// (authenticatie op basis van AccountNaam en AccountCode of token)
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'ZoekGroeperingsLid',
     'GeefBezoekersOverzicht',
     array(
     array(
    ['JoomlaToken' => $JoomlaToken,]
       'AccountNaam' => $lidnr,
       'AccountNaam' => $lidnr,
    ['AccountCode' => $AccountCode,]
      'AccountCode' => $AccountCode,
    ['token'      => $token,]
      'token'      => $token,
      'Groepering' => $groepering,
    ['datum'      => $datum,]     // optioneel: datum YYYY-MM-DD, anders: vandaag
       'ZoekMethode' => $ZoekMethode,
      'Bijeenkomst' => $Bijeenkomst, // groepering die deze bijeenkomst organiseert
      'ZoekString'  => $zoekstring,
     ['ZoekLimiet'  => $ZoekLimiet,]
    ['Bijeenkomst' => $Bijeenkomst,] // Alleen voor gebruik op de
                                      // bijeenkomsten aanwezigheidsregistratie pagina
     ['ServerID'    => gethostname(),]  
     ['ServerID'    => gethostname(),]  
     ['SiteID'      => $siteID,]
     ['SiteID'      => $siteID,]
     ['RemoteID'    => $remoteIPaddress]));
     ['RemoteID'    => $remoteIPaddress]));
+---------------------+-----------------------------------------+
Output positief:
| ZoekMethode        |  ZoekString                            |
+---------------------+-----------------------------------------+
| achternaam          | (deel van) de naam                      |
| postcode            | (eerste deel van) postcode              |
| lidnummer          | volledig lidnummer                      |
| nieuwe_leden        | YYYYMMDD vanaf waar gezocht moet worden |
| opgezegde_leden    | YYYYMMDD tot waar gezocht moet worden  |
| uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden  |
| overleden_leden    | YYYYMMDD tot waar gezocht moet worden  |
| kaderleden          | n.v.t.                                  |
+---------------------+-----------------------------------------+
 
Output positief:
   $reply = array(
   $reply = array(
     'Action'    => 'ZoekGroeperingsLid',
     'Action'    => 'GeefBezoekersOverzicht',
     'Status'    => 'TRUE',
     'Status'    => 'TRUE',
     'Message'  => 'Gebruiker(s) gevonden',
     'Message'  => 'Bezoekersoverzicht opgevraagd',
  ['ExtraInfo' => 'Zoekopdracht afgebroken, Y van Z getoond',]
     'Bezoekers' => $bezoekers,
     'Results'   =>
  ['Locatie'  => $Locatie]);
      [array(
Output negatief:
        'hccLidnummer'  => $hccLidnummer,
   $reply = array(
        'hccBeginDatum' => $hccBeginDatum,
     'Action'  => 'GeefBezoekersOverzicht',
        'hccEindDatum'  => $hccEindDatum,
        'sn'            => $sn,
        'givenName'    => $givenName,
        'hccGeslacht'  => $hccGeslacht,
        'hccStraatnaam' => $hccStraatnaam,
        'hccHuisnummer' => $hccHuisnummer,
        'hccPostcode'  => $hccPostcode,
        'hccWoonplaats' => $hccWoonplaats,
        'hccLand'      => $hccLand,
        'hccTelefoon'  => $hccTelefoon,
        'hccMobiel'    => $hccMobiel,
        'mail'          => $mail,
        'mailHccnet'    => $mailHccnet,
        'hccKaderMail'  => $hccKaderMail,
        'hccRegio'      => $hccRegio,
        'hccIG'        => $hccIG,
        'hccRol'        => $hccRol,
        'hccLogin'      => $hccLogin,
        'hccPseudoniem' => $hccPseudoniem)]*));
Output negatief:
   $reply = array(
     'Action'  => 'ZoekGroeperingsLid',
     'Status'  => 'FALSE',
     'Status'  => 'FALSE',
     'Message' => 'Gebruiker(s) niet gevonden' | 'Onjuiste credentials');
     'Message' => 'Onjuiste credentials' | 'Geen bijeenkomst gevonden' | 'Geen bezoekers gevonden');


// ** t.b.v. administreren van bijeenkomsten **
// A.7 Geef het array met alle locaties
// A.4 Lid bezoekt bijeenkomst
// (of beperk dit tot de locaties van de groepering $Groepering)
// (authenticatie op basis van AccountNaam en AccountCode of token)
// Desgewenst worden alle resultaten waarbij hccToonInJoomla aan staat onderdrukt
// (iedere waarde anders dan een lege string wordt behandeld alsof 'TRUE' gegeven is)
// Desgewenst worden alle resultaten waarbij ToonOpKaderNet aan staat onderdrukt
// (iedere waarde anders dan een lege string wordt behandeld alsof 'TRUE' gegeven is)
// (geen authenticatie)
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'LidBezoektBijeenkomst',
     'GeefLocaties',
     array(
     array(
     ['JoomlaToken' => $JoomlaToken,]
     ['hccLidnr'       => $hccLidnr,
       'AccountNaam' => $lidnr,
       'JoomlaToken'   => $JoomlaToken,]
     ['AccountCode' => $AccountCode,]
     ['Groepering'     => $hccGroepering,]
     ['token'      => $token,]
     ['ServerID'      => gethostname(),]  
      'Bijeenkomst' => $Bijeenkomst, // groepering die deze bijeenkomst organiseert
    ['SiteID'         => $siteID,]
      'hccLidnr'   => $hccLidnr,   // lid dat aanwezig gemeld moet worden
    ['RemoteID'       => $remoteIPaddress,]
     ['correctie'  => $hccLidnr,]   // lid dat gecorrigeerd moet worden
     ['JoomlaFilter'  => '' | 'TRUE',]
     ['ServerID'   => gethostname(),]
     ['KadernetFilter' => '' | 'TRUE']));
    ['SiteID'     => $siteID,]
    ['RemoteID'   => $remoteIPaddress]));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action' => 'LidBezoektBijeenkomst',
     'Action'         => 'GeefLocaties',
     'Status' => 'TRUE',
     'Status'         => 'TRUE',
     'Message' => 'Bezoeker weggeschreven',
     'Message'       => 'Locaties opgevraagd',
     'Results' => array(
     'Locaties'      => $locaties,
       // info van deze bezoeker
  ['JoomlaFilter'   => 'TRUE',]
      'cn'              => $cn,               // cn (Verbeek, H.J.)
  ['KadernetFilter' => 'TRUE']);
      'hccGeslacht'     => $hccGeslacht,      // hccGeslacht van de bezoeker
      'groeperingslid'   => $groeperingslid,    // TRUE of FALSE: is deze persoon lid van deze groepering
      'mijnGroeperingen' => $mijnGroeperingen, // komma-gescheiden lijst (regio, [hccIG]*)
      'aantalBezoeken'   => $aantalBezoeken,    // hoe vaak heeft dit lid deze bijeenkomst bezocht
      // info van de bijeenkomst
      'AantalBezoekers' => $AantalBezoekers); // aantal bezoekers van deze bijeenkomst
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action' => 'LidBezoektBijeenkomst',
     'Action'         => 'GeefLocaties',
     'Status' => 'FALSE',
     'Status'         => 'FALSE',
     'Message' => 'Onjuiste credentials');
     'Message'       => 'Locaties niet beschikbaar',
    'ExtraInfo'      => 'Geen locaties gevonden voor groepering $hccGroepering',
  ['JoomlaFilter'  => 'TRUE',]
  ['KadernetFilter' => 'TRUE']);


// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **
// A.8 Registreer een niet-hcclid als bezoeker tijdens een bijeenkomst
// A.5 Vraag Lidgegevens token aan (geldig voor dit lid, en deze groepering, op deze datum)
// Als geen datum gegeven is, dan is het token vandaag geldig
// (authenticatie op basis van AccountNaam en AccountCode)
// (authenticatie op basis van AccountNaam en AccountCode)
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'VraagLidgegevensTokenAan',
     'RegistreerGast',
     array(
     array(
       'AccountNaam' => $lidnr,
       'AccountNaam'   => $lidnr,       // credentials
       'AccountCode' => $AccountCode,
       'AccountCode'   => $AccountCode, // credentials
       'hccLidnr'   => $hccLidnummer, // vraag het token voor dit lid aan
       'token'         => $token,       // credentials
       'groepering' => $groepering,   // zoek binnen deze groepering
       'Bijeenkomst'   => $groepering,
    ['datum'       => $datum,]       // optioneel: datum YYYY-MM-DD, anders: vandaag
      'geslacht'     => $geslacht,
    ['ServerID'   => gethostname(),]
       'naam'          => $naam,
    ['SiteID'      => $siteID,]
      'mail'         => $mail,
    ['RemoteID'    => $remoteIPaddress]));
      'postcode'      => $postcode,
Output positief:
      'huisnummer'    => $huisnummer,
  $reply = array(
      'buitenland'   => $buitenland,
    'Action'     => 'VraagLidgegevensTokenAan',
    ['nietLidNummer' => $nietLidNummer,]
    'Status'     => 'TRUE',
    ['instructies'   => $instructies,]
    'Message'   => 'Token opgevraagd',
    ['ServerID'     => gethostname(),]
    'groepering' => $Groepering,
    ['SiteID'       => $siteID,]
    'token'     => $token,
    ['RemoteID'     => $remoteIPaddress]));
    'sn'         => $sn);
Output positief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action'  => 'VraagLidgegevensTokenAan',
     'Action'  => $aanroep,
     'Status'  => 'FALSE',
     'Status'  => 'TRUE',
     'Message' => 'Onjuiste credentials');
     'Message' => 'Niet-lid als bezoeker geregistreerd',
    'Result' => $result_array);


// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **
// A.9 Geef het array met alle locatienamen
// A.6 Toon bezoekersoverzicht
// (geen authenticatie)
// (authenticatie op basis van AccountNaam en AccountCode of token)
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'GeefBezoekersOverzicht',
     'GeefLocatieNamen',
     array(
     array(
     ['JoomlaToken' => $JoomlaToken,]
     ['hccLidnr'      => $hccLidnr,
       'AccountNaam' => $lidnr,
       'JoomlaToken'   => $JoomlaToken,]
       'AccountCode' => $AccountCode,
    ['ServerID'      => gethostname(),]
      'token'      => $token,
     ['SiteID'         => $siteID,]
     ['datum'       => $datum,]      // optioneel: datum YYYY-MM-DD, anders: vandaag
     ['RemoteID'       => $remoteIPaddress,]
      'Bijeenkomst' => $Bijeenkomst, // groepering die deze bijeenkomst organiseert
     ['JoomlaFilter'   => '' | 'TRUE',]
     ['ServerID'   => gethostname(),]  
     ['KadernetFilter' => '' | 'TRUE']));
     ['SiteID'     => $siteID,]
 
    ['RemoteID'   => $remoteIPaddress]));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'   => 'GeefBezoekersOverzicht',
     'Action'         => 'GeefLocatieNamen',
     'Status'   => 'TRUE',
     'Status'         => 'TRUE',
     'Message'   => 'Bezoekersoverzicht opgevraagd',
     'Message'       => 'Locaties opgevraagd',
     'Bezoekers' => $bezoekers,
     'Locaties'       => $locaties,
   ['Locatie'  => $Locatie]);
   ['JoomlaFilter'  => 'TRUE',]
  ['KadernetFilter' => 'TRUE']);
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action' => 'GeefBezoekersOverzicht',
     'Action'         => 'GeefLocatieNamen',
     'Status' => 'FALSE',
     'Status'         => 'FALSE',
     'Message' => 'Onjuiste credentials' | 'Geen bijeenkomst gevonden' | 'Geen bezoekers gevonden');
     'Message'       => 'Locatienamen niet beschikbaar',
    'ExtraInfo'      => 'Geen locatienamen gevonden',
  ['JoomlaFilter'   => 'TRUE',]
  ['KadernetFilter' => 'TRUE']);


// A.7 Geef het array met alle locaties
// A.10 Schrijf een niet-lid in op een bulletin ?? NIET GEBRUIKT ??
// (of beperk dit tot de locaties van de groepering $Groepering)
//     Deze aanroep mag *ook* worden gebruikt om een wel-lid in te schrijven.
// Desgewenst worden alle resultaten waarbij hccToonInJoomla aan staat onderdrukt
//     Voorwaarde is dat bewezen is dat er controle bestaat over het opgegeven email adres
// (iedere waarde anders dan een lege string wordt behandeld alsof 'TRUE' gegeven is)
// Desgewenst worden alle resultaten waarbij ToonOpKaderNet aan staat onderdrukt
// (iedere waarde anders dan een lege string wordt behandeld alsof 'TRUE' gegeven is)
// (geen authenticatie)
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'GeefLocaties',
     'SchrijfNietlidInOpBulletin',
     array(
     array(
     ['hccLidnr'      => $hccLidnr,
      'beheerLogin'    => $beheerLogin,    // xml-rpc user
      'JoomlaToken'   => $JoomlaToken,]
      'beheerPassword' => $beheerPassword, // xml-rpc password
     ['Groepering'     => $hccGroepering,]
      'hccOptin’      => $hccOptin,      // bulletin waarop ingeschreven wordt
      'hccOptinSource’ => $hccOptinSource, // site waar aanmelding vandaan komt
      'Email'          => $Email,          // niet-lid: email adres
      'Naam'          => $Naam,          // niet-lid: naam
     ['hccLidNummer'  => $hccLidNummer,]  // optioneel: ik ben lid, dit is mijn lidnummer
    ['Postcode'      => $Postcode,]      // optioneel: niet-lid: postcode
    ['Huisnummer'     => $Huisnummer,]   // optioneel: niet-lid: huisnummer
     ['hccGeslacht'   => $hccGeslacht,] // optioneel: niet-lid: geslacht (M/V/O)
     ['ServerID'      => gethostname(),]  
     ['ServerID'      => gethostname(),]  
     ['SiteID'        => $siteID,]
     ['SiteID'        => $siteID,]
     ['RemoteID'      => $remoteIPaddress,]
     ['RemoteID'      => $remoteIPaddress]));
    ['JoomlaFilter'  => '' | 'TRUE',]
    ['KadernetFilter' => '' | 'TRUE']));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'         => 'GeefLocaties',
     'Action'   => 'SchrijfNietlidInOpBulletin',
     'Status'         => 'TRUE',
     'Status'   => 'TRUE',
     'Message'        => 'Locaties opgevraagd',
     'Message'  => 'Inschrijving op bulletin gelukt');
    'Locaties'      => $locaties,
  ['JoomlaFilter'  => 'TRUE',]
  ['KadernetFilter' => 'TRUE']);
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action'         => 'GeefLocaties',
     'Action'   => 'SchrijfNietlidInOpBulletin',
     'Status'         => 'FALSE',
     'Status'   => 'FALSE',
     'Message'       => 'Locaties niet beschikbaar',
     'Message'   => 'Onjuiste credentials' |
     'ExtraInfo'     => 'Geen locaties gevonden voor groepering $hccGroepering',
                  'Gegevenscombinatie onjuist',
  ['JoomlaFilter'  => 'TRUE',]
     'ExtraInfo' => 'Invalid DN syntax'   |
  ['KadernetFilter' => 'TRUE']);
                  'Invalid credentials');
 
// ** HenZ **
// ** t.b.v. daily cron job  **
// ** t.b.v. dagelijkse opschoon jobs Joomla template sites **
// C.1 Vraag de lijst met uitgeschreven leden op
//    Dit kan beperkt worden tot een bepaalde regio of interessegroep
//    Daarnaast kan het tijdvak waarin gezocht wordt vrij gekozen worden
//    (gesteld dat de LDAP database nog leden uit die periode bevat)
//    Antwoord: lijst met (lidnummer, hccLogin, sn,
//                          datum einde lidmaatschap (formaat:YYYYMMDD))
 
==> GeefUitgeschrevenLeden <== (oud: GeefOpgezegdeLeden)


// A.8 Registreer een niet-hcclid als bezoeker tijdens een bijeenkomst
// (authenticatie op basis van AccountNaam en AccountCode)
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'RegistreerGast',
     'GeefUitgeschrevenLeden',
     array(
     array(
       'AccountNaam'   => $lidnr,       // credentials
       'beheerLogin'   => $beheerLogin,
       'AccountCode'   => $AccountCode, // credentials
       'beheerPassword' => $beheerPassword,
       'token'         => $token,       // credentials
       'hccRegio'       => $hccRegio,   // of leeg
      'Bijeenkomst'  => $groepering,
       'hccIg'          => $hccIg,      // of leeg
      'geslacht'      => $geslacht,
       'datum_vanaf'    => $datum_sinds, // YYYY-MM-DD of YYYYMMDD of leeg (leeg: 3 dagen geleden)
       'naam'          => $naam,
       'datum_tot'      => $datum_tot// YYYY-MM-DD of YYYYMMDD of leeg (leeg: vandaag)
       'mail'          => $mail,
     ['ServerID'       => gethostname(),]  
      'postcode'      => $postcode,
     ['SiteID'         => $siteID,]
       'huisnummer'    => $huisnummer,
     ['RemoteID'       => $remoteIPaddress]));
       'buitenland'   => $buitenland,
     ['nietLidNummer' => $nietLidNummer,]
    ['instructies'   => $instructies,]
     ['ServerID'     => gethostname(),]  
     ['SiteID'       => $siteID,]
     ['RemoteID'     => $remoteIPaddress]));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action' => $aanroep,
     'Action'     => 'GeefUitgeschrevenLeden',
     'Status' => 'TRUE',
     'Status'     => 'TRUE',
     'Message' => 'Niet-lid als bezoeker geregistreerd',
     'Message'     => 'Uitgeschreven leden',
    'Result' => $result_array);
  ['hccRegio'   => $hccRegio,]
 
  ['hccIg'       => $hccIg,]
// A.9 Geef het array met alle locatienamen
  ['datum_vanaf' => $datum_vanaf,]
// (geen authenticatie)
  ['datum_tot'   => $datum_tot,]
  $request = xmlrpc_encode_request(
  ['Results' => array(
    'GeefLocatieNamen',
     [array(
    array(
        'hccLogin'               => $hccLogin,
    ['hccLidnr'       => $hccLidnr,
         'hccLidNummer'          => $hccLidnummer,
      'JoomlaToken'   => $JoomlaToken,]
        'sn'                     => $sn,
    ['ServerID'       => gethostname(),]
        'DatumEindeLidmaatschap' => $DatumEindeLidmaatschap)]*);
     ['SiteID'        => $siteID,]
Output negatief:
    ['RemoteID'       => $remoteIPaddress,]
   $reply = array(
    ['JoomlaFilter'  => '' | 'TRUE',]
    'Action' => 'GeefUitgeschrevenLeden',
    ['KadernetFilter' => '' | 'TRUE']));
    'Status' => 'FALSE',
    'Message' => 'Onjuiste credentials');
</pre>


Output positief:
=== HCCpartner aanroepen ===
(interface versie 1)<br>
(oude interface, niet meer gebruiken!)
 
<pre>
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **
// D.1 Controleer of iemand lid is op basis van lidnummer en postcode
//    Antwoord: TRUE of FALSE
  $request = xmlrpc_encode_request(
    'HCCpartner',
    array('ControleerHCCLidmaatschap',
    array('partnerLogin',    $partnerLogin),
    array('partnerPassword', $partnerPassword),
    array('hccLidnummer',    $hcclidnummer),
    array('postcode',        $postcode)));
Output positief:
   $reply = array(
   $reply = array(
     'Action'        => 'GeefLocatieNamen',
     'HCCpartner',
     'Status'        => 'TRUE',
     array('Action', 'ControleerHCCLidmaatschap'),
    'Message'        => 'Locaties opgevraagd',
     array('Status', 'TRUE'));
     'Locaties'       => $locaties,
  ['JoomlaFilter'  => 'TRUE',]
  ['KadernetFilter' => 'TRUE']);
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action'         => 'GeefLocatieNamen',
     'HCCpartner',
     'Status'         => 'FALSE',
    array('Action', 'ControleerHCCLidmaatschap'),
     'Message'        => 'Locatienamen niet beschikbaar',
     array('Status', 'FALSE'));
     'ExtraInfo'     => 'Geen locatienamen gevonden',
  $reply = array(
  ['JoomlaFilter'   => 'TRUE',]
     'HCCpartner',
  ['KadernetFilter' => 'TRUE']);
     array('Action''ControleerHCCLidmaatschap'),
    array('Status''FALSE'),
    array('Message', 'Onjuiste credentials'));


// A.10 Schrijf een niet-lid in op een bulletin
// onbekende aanroep
//      Deze aanroep mag *ook* worden gebruikt om een wel-lid in te schrijven.
//      Voorwaarde is dat bewezen is dat er controle bestaat over het opgegeven email adres
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
    'SchrijfNietlidInOpBulletin',
    'HCCpartner',
    array(
    array(
      'beheerLogin'   => $beheerLogin,   // xml-rpc user
      'OnbekendeAanroep',
      'beheerPassword' => $beheerPassword, // xml-rpc password
      array('parameter', $iets)));
      'hccOptin’      => $hccOptin,      // bulletin waarop ingeschreven wordt
Output negatief:
      'hccOptinSource’ => $hccOptinSource, // site waar aanmelding vandaan komt
   $reply = array(
      'Email'          => $Email,          // niet-lid: email adres
     'HCCpartner',
      'Naam'          => $Naam,          // niet-lid: naam
     array('Action''OnbekendeAanroep'),
    ['hccLidNummer'  => $hccLidNummer,]  // optioneel: ik ben lid, dit is mijn lidnummer
     array('Status''FALSE'),
    ['Postcode'      => $Postcode,]      // optioneel: niet-lid: postcode
     array('Message', 'Opdracht onbekend'));
    ['Huisnummer'    => $Huisnummer,]    // optioneel: niet-lid: huisnummer
</pre>
    ['hccGeslacht'    => $hccGeslacht,] // optioneel: niet-lid: geslacht (M/V/O)
    ['ServerID'      => gethostname(),]
    ['SiteID'        => $siteID,]
    ['RemoteID'      => $remoteIPaddress]));
Output positief:
   $reply = array(
     'Action'    => 'SchrijfNietlidInOpBulletin',
     'Status'    => 'TRUE',
    'Message'  => 'Inschrijving op bulletin gelukt');
Output negatief:
  $reply = array(
    'Action'   => 'SchrijfNietlidInOpBulletin',
     'Status'   => 'FALSE',
     'Message'  => 'Onjuiste credentials' |
                  'Gegevenscombinatie onjuist',
    'ExtraInfo' => 'Invalid DN syntax'    |
                  'Invalid credentials');


// ** HenZ **
=== HCCpartners aanroepen ===
// ** t.b.v. daily cron job  **
(interface versie 2)
// ** t.b.v. dagelijkse opschoon jobs Joomla template sites **
// C.1 Vraag de lijst met uitgeschreven leden op
//    Dit kan beperkt worden tot een bepaalde regio of interessegroep
//    Daarnaast kan het tijdvak waarin gezocht wordt vrij gekozen worden
//    (gesteld dat de LDAP database nog leden uit die periode bevat)
//    Antwoord: lijst met (lidnummer, hccLogin, sn,
//                          datum einde lidmaatschap (formaat:YYYYMMDD))
 
==> GeefUitgeschrevenLeden <== (oud: GeefOpgezegdeLeden)


<pre>
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **
// D.2 Controleer of iemand lid is op basis van lidnummer en postcode
//    Antwoord: TRUE of FALSE
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'GeefUitgeschrevenLeden',
     'HCCpartners',
     array(
     array(
       'beheerLogin'   => $beheerLogin,
       'Action'         => 'ControleerHCCLidmaatschap',
      'beheerPassword' => $beheerPassword,
       'partnerLogin'   => $partnerLogin,
       'hccRegio'       => $hccRegio,   // of leeg
       'partnerPassword' => $partnerPassword,
       'hccIg'         => $hccIg,       // of leeg
       'hccLidnummer'    => $hcclidnummer,
       'datum_vanaf'    => $datum_sinds, // YYYY-MM-DD of YYYYMMDD of leeg (leeg: 3 dagen geleden)
       'postcode'       => $postcode,
       'datum_tot'     => $datum_tot,   // YYYY-MM-DD of YYYYMMDD of leeg (leeg: vandaag)
     ['ServerID'       => gethostname(),]  
     ['ServerID'       => gethostname(),]  
     ['SiteID'         => $siteID,]
     ['SiteID'         => $siteID,]
     ['RemoteID'       => $remoteIPaddress]));
     ['RemoteID'       => $remoteIPaddress]));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'      => 'GeefUitgeschrevenLeden',
     '0'      => 'HCCpartners',
     'Status'     => 'TRUE',
     'Action' => 'ControleerHCCLidmaatschap',
     'Message'     => 'Uitgeschreven leden',
     'Status' => 'TRUE',
  ['hccRegio'    => $hccRegio,]
   ['ExtraInfo' => 'groepering=$groepering']); // als de partner beperkt is tot 1 groepering
  ['hccIg'      => $hccIg,]
  ['datum_vanaf' => $datum_vanaf,]
  ['datum_tot'  => $datum_tot,]
   ['Results' => array(
    [array(
        'hccLogin'               => $hccLogin,
        'hccLidNummer'          => $hccLidnummer,
        'sn'                    => $sn,
        'DatumEindeLidmaatschap' => $DatumEindeLidmaatschap)]*);
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action'  => 'GeefUitgeschrevenLeden',
    '0'      => 'HCCpartners',
    'Action' => 'ControleerHCCLidmaatschap',
    'Status' => 'FALSE');
  $reply = array(
    '0'      => 'HCCpartners',
     'Action'  => 'ControleerHCCLidmaatschap',
     'Status'  => 'FALSE',
     'Status'  => 'FALSE',
     'Message' => 'Onjuiste credentials');
     'Message' => 'Onjuiste credentials');
// onbekende aanroep
  $request = xmlrpc_encode_request(
    'HCCpartners',
    array(
      'Action'    => 'OnbekendeAanroep',
      'parameter' => $iets));
Output negatief:
  $reply = array(
    '0'      => 'HCCpartners',
    'Action'  => 'OnbekendeAanroep',
    'Status'  => 'FALSE',
    'Message' => 'Opdracht onbekend');
</pre>
</pre>


=== HCCpartner aanroepen ===
=== HCC-kader aanroepen ===
(interface versie 1)<br>
(oude interface, niet meer gebruiken!)


<pre>
<pre>
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **
// ** beheer.hcc.nl **
// D.1 Controleer of iemand lid is op basis van lidnummer en postcode
// F.2 Controleer of dit een kaderlid is
//    Antwoord: TRUE of FALSE
// (authenticatie op basis van hccLogin en userPassword)
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'HCCpartner',
     'IsKaderLid',
     array('ControleerHCCLidmaatschap',
     array(
    array('partnerLogin',    $partnerLogin),
      'hccLogin'     => $hccLogin,
     array('partnerPassword', $partnerPassword),
      'userPassword' => $userPassword,
    array('hccLidnummer',    $hcclidnummer),
    ['ServerID'     => gethostname(),]
    array('postcode',        $postcode)));
    ['SiteID'       => $siteID,]
    ['RemoteID'     => $remoteIPaddress]));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'HCCpartner',
     'Action'          => 'IsKaderLid',
     array('Action', 'ControleerHCCLidmaatschap'),
    'Status'          => 'TRUE',
     array('Status', 'TRUE'));
    'Message'        => 'Is kaderlid',
    'hccLidnr'        => $hccLidnr,
    'cn'              => $cn,
    'sn'              => $sn,
     'hccRol'          => $hccRol,
    'mail'           => $mail,
    'mailHccnet'     => $mailHccnet,
     'hccKaderMail'   => $hccKaderMail,
    'hccKaderForward' => $hccKaderForward);
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'HCCpartner',
     'Action' => 'IsKaderLid',
    array('Action', 'ControleerHCCLidmaatschap'),
     'Status'  => 'FALSE',
    array('Status', 'FALSE'));
     'Message' => 'Onjuiste credentials' | 'Is geen kaderlid');
  $reply = array(
    'HCCpartner',
     array('Action',  'ControleerHCCLidmaatschap'),
    array('Status', 'FALSE'),
     array('Message', 'Onjuiste credentials'));


// onbekende aanroep
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **
// F.4 Vraag alle groeperingen op
// Het is mogelijk om een groepering te onderdrukken, als er in LDAP '''een''' waarde in een opgegeven attribuur aanwezig is.
// (iedere waarde anders dan een lege string wordt behandeld alsof 'TRUE' gegeven is)
//  JoomlaFilter            : attribuut 'hccToonInJoomla'
//  ToonInOverzichtenFilter : attribuut 'hccToonInOverzichten'
//  KadernetFilter          : attribuut 'hccToonOpKaderNet'
//  BulletinsFilter        : attribuut 'hccBulletins'
//  EmailFilter            : attribuut 'hccFunctionalEmail'
// (geen authenticatie)
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
    'HCCpartner',
    'GeefAlleGroeperingen',
    array(
    array(
      'OnbekendeAanroep',
    ['hccLidnr'               => $hccLidnr,
      array('parameter', $iets)));
      'JoomlaToken'            => $JoomlaToken,]
Output negatief:
    ['ServerID'                => gethostname(),]
    ['SiteID'                 => $siteID,]
    ['RemoteID'                => $remoteIPaddress,]
    ['JoomlaFilter'            => '' | 'TRUE',]
    ['ToonInOverzichtenFilter' => '' | 'TRUE',]
    ['KadernetFilter'          => '' | 'TRUE',]
    ['BulletinsFilter'        => '' | 'TRUE',]
    ['EmailFilter'            => '' | 'TRUE']));
Output positief:
   $reply = array(
   $reply = array(
     'HCCpartner',
     'Action'                  => 'GeefAlleGroeperingen',
     array('Action''OnbekendeAanroep'),
     'Status'                 => 'TRUE',
     array('Status''FALSE'),
     'Message'                 => 'Lijst met groeperingen opgevraagd',
     array('Message', 'Opdracht onbekend'));
     'Result'                 => $groeperingen,
</pre>
  ['JoomlaFilter'           => 'TRUE',]
 
  ['ToonInOverzichtenFilter' => 'TRUE',]
=== HCCpartners aanroepen ===
  ['KadernetFilter'          => 'TRUE']);
(interface versie 2)
   
 
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **
<pre>
// F.5 Vraag alle kaderrollen op
// ** t.b.v. controle op hcc lidmaatschap door hcc partner **
// Desgewenst worden alle resultaten waarbij hccToonInJoomla aan staat onderdrukt
// D.1 Controleer of iemand lid is op basis van lidnummer en postcode
// (iedere waarde anders dan een lege string wordt behandeld alsof 'TRUE' gegeven is)
//     Antwoord: TRUE of FALSE
// Desgewenst worden alle resultaten waarbij ToonOpKaderNet aan staat onderdrukt
// (iedere waarde anders dan een lege string wordt behandeld alsof 'TRUE' gegeven is)
// (geen authenticatie)
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'HCCpartners',
     'GeefAlleKaderRollen',
     array(
     array(
      'Action'         => 'ControleerHCCLidmaatschap',
    ['hccLidnr'       => $hccLidnr,
       'partnerLogin'    => $partnerLogin,
       'JoomlaToken'    => $JoomlaToken,]
       'partnerPassword' => $partnerPassword,
    ['ServerID'       => gethostname(),]
       'hccLidnummer'   => $hcclidnummer,
    ['SiteID'         => $siteID,]
      'postcode'        => $postcode,
    ['RemoteID'       => $remoteIPaddress,]
    ['ServerID'       => gethostname(),]
    ['JoomlaFilter'  => '' | 'TRUE',]
    ['SiteID'         => $siteID,]
    ['KadernetFilter' => '' | 'TRUE']));
    ['RemoteID'       => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'        => 'GeefAlleKaderRollen',
    'Status'        => 'TRUE',
    'Message'        => 'Lijst met kaderrollen opgevraagd',
    'Result'        => $kaderrollen,
  ['JoomlaFilter'  => 'TRUE',]
  ['KadernetFilter' => 'TRUE']);
 
// ** t.b.v. de kantoor-beheerpagina **
// F.9 Geef de gevevens van de mailbox van dit kaderlid
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)
$request = xmlrpc_encode_request(
    'GeefKadermailGegevens',
    array(
      'beheerLogin'    => $beheerLogin,
      'beheerPassword' => $beheerPassword,
      'hccLidnummer'   => $hccLidnummer));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     '0'     => 'HCCpartners',
     'Action' => 'GeefKadermailGegevens',
     'Action' => 'ControleerHCCLidmaatschap',
     'Status' => 'TRUE',
     'Status' => 'TRUE',
     'Message' => 'Gebruiker(s) gevonden',
  ['ExtraInfo' => 'groepering=$groepering']); // als de partner beperkt is tot 1 groepering
    'kadermail_omvang'           => $Formaat,
    'kadermail_aantal_inbox'     => $aantal_inbox,
    'kadermail_aantal_nieuw'     => $aantal_nieuw,
    'kadermail_laatst_opgehaald' => $laatst_opgehaald);
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
    '0'      => 'HCCpartners',
     'Action'  => 'GeefKadermailGegevens',
    'Action' => 'ControleerHCCLidmaatschap',
    'Status' => 'FALSE');
  $reply = array(
    '0'      => 'HCCpartners',
     'Action'  => 'ControleerHCCLidmaatschap',
     'Status'  => 'FALSE',
     'Status'  => 'FALSE',
     'Message' => 'Onjuiste credentials');
     'Message' => 'Onjuiste credentials' |
 
                'Gegevenscombinatie onjuist' |
// onbekende aanroep
                'Vul alle verplichte velden in!',
  $request = xmlrpc_encode_request(
  ['ExtraInfo' => 'Invalid credentials' |
    'HCCpartners',
                  'lidnummer <hccLidnummer> is geen kaderlid'));
    array(
      'Action'    => 'OnbekendeAanroep',
      'parameter' => $iets));
Output negatief:
  $reply = array(
    '0'       => 'HCCpartners',
    'Action' => 'OnbekendeAanroep',
    'Status'  => 'FALSE',
    'Message' => 'Opdracht onbekend');
</pre>
</pre>


=== HCC-kader aanroepen ===
=== HCC-groepering aanroepen ===


<pre>
<pre>
// ** t.b.v. aanpassen kadernet e-mail wachtwoord door de gebruiker **
// LET OP: Oude kadersite aanroep
// E.1 Pas het kadernet e-mail wachtwoord aan
// (t.b.v. kader email wachtwoord-aanpassen procedure)(kadersite)
// (authenticatie op basis van hccLidnr en hccCode)
  $request = xmlrpc_encode_request(
    'PasKaderWachtwoordAan',
    array(
      'hccLidnr'            => $hccLidnr,
      'hccCode'            => $hccCode,
      'nieuw_kaderPassword' => $nieuw_kaderPassword,
    ['ServerID'            => gethostname(),]
    ['SiteID'              => $siteID,]
    ['RemoteID'            => $remoteIPaddress]));


// ** t.b.v. aanpassen kadernet e-mail wachtwoord door de gebruiker **
// I.2 controleer of een gebruiker bestaat op basis van de combinatie
// LET OP: Oude kadersite aanroep
//    lidnummer + postcode + huisnummer
// E.2 Pas het kadernet e-mail wachtwoord aan
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)
// op basis van hccLogin en userpassword (t.b.v. wachtwoord-aanpassen kadernet procedure)
// (alternatieve authenticatie mogelijk door lidnummer + hcc-code in te vullen)
   $request = xmlrpc_encode_request(
//
     'PasKaderWachtwoordAan',
// Aan de aanroeper worden zekere eisen gesteld:
// * dient een rol te vervullen binnen de groepering 'FOR'(forum)
// * dan wel dient de rol 'VRBK' (vraagbaak) te vervullen binnen een groepering
//
// Er wordt door de gehele leden-database gezocht, waarna terug wordt gegeven
// * of dit hcc lid inderdaad bestaat
// en, als het om een aanvraag van een vraagbaak vrijwilliger gaat,
// * tevens of het gezochte hcc lid deel uitmaakt van zijn groepering
 
   $request = xmlrpc_encode_request(
     'IsHCCLid',
     array(
     array(
       'hccLogin'           => $hccLogin,
       'hccLogin'       => [$hccLogin | $hccLidnummer],
       'userPassword'       => $userPassword,
       'userPassword'   => [$userPassword | $hccCode],
       'nieuw_kaderPassword' => $nieuw_kaderPassword,
       'zoekhccLidnr'   => $zoekhccLidnr,
    ['ServerID'           => gethostname(),]
      'zoekhccPostcode' => $zoekhccPostcode,
    ['SiteID'             => $siteID,]
      'zoekhccHuisnr'   => $zoekhccHuisnr,
    ['RemoteID'           => $remoteIPaddress]));
      'zoekgroepering' => $zoekgroepering));
 
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'       => 'PasKaderWachtwoordAan',
     'Action' => 'IsHCCLid',
     'Status'       => 'TRUE',
     'Status' => 'TRUE',
     'Message'     => 'Gebruikersgegevens gewijzigd',
     'Message' => 'Gebruikersgegevens gecontroleerd',
    'cn'          => $cn,
  ['Groeperingslid' => $IsGroeperingLid]));
    'hccKaderMail' => $hccKaderMail);
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action'  => 'PasKaderWachtwoordAan',
     'Action'  => 'IsHCCLid',
     'Status'  => 'FALSE',
     'Status'  => 'FALSE',
     'Message' => 'Onjuiste credentials' | 'Gegevenscombinatie onjuist');
     'Message' => 'Gebruiker bestaat niet' |
                'Onjuiste credentials' |
                'Wel HCC lid, maar geen lid van groepering $groepering' |
                'Onvoldoende rechten' |
                'Vul alle verplichte velden in!'));
</pre>
 
=== HenZ aanroepen ===
 
<pre>


// ** t.b.v. authenticatie op de kadersite of andere kader-gerelateerde sites **
// I.3 Geef de einddatum van een actief dan wel uitgeschreven lid
// F.1 Controleer of dit een kaderlid is
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)
// (authenticatie op basis van hccLidnr en hccCode)
   $request = xmlrpc_encode_request(
   $request = xmlrpc_encode_request(
     'IsKaderLid',
     'GeefhccEindDatum',
     array(
     array(
      'hccLidnr' => $hccLidnr,
       'beheerLogin'    => $beheerLogin,
      'hccCode'  => $hccCode,
       'beheerPassword' => $beheerPassword,
    ['ServerID' => gethostname(),]
       'hccLidnummer'   => $hccLidnummer,
    ['SiteID'  => $siteID,]
    ['RemoteID' => $remoteIPaddress]));
 
// F.2 Controleer of dit een kaderlid is
// (authenticatie op basis van hccLogin en userPassword)
  $request = xmlrpc_encode_request(
    'IsKaderLid',
    array(
      'hccLogin'    => $hccLogin,
      'userPassword' => $userPassword,
    ['ServerID'    => gethostname(),]
    ['SiteID'      => $siteID,]
    ['RemoteID'    => $remoteIPaddress]));
 
// F.3 Controleer of dit een kaderlid is (t.b.v. ledenraad module op kadersite)
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)
// * Als hccLidnr gevuld is, dan wordt hccLidnr gebruikt om het juiste record te zoeken
//  Als hccLidnr leeg  is, dan wordt hccLogin of hccPseudoniem gebruikt om het juiste record te zoeken
//  1 van 3 velden MOET aanwezig zijn
  $request = xmlrpc_encode_request(
    'IsKaderLid',
    array(
       'beheerLogin'    => $beheerLogin,
       'beheerPassword' => $beheerPassword,
    ['hccLidnr'      => $hccLidnr,]
    ['hccLogin'       => $hccLogin,]
    ['hccPseudoniem' => $hccPseudoniem,]
     ['ServerID'      => gethostname(),]  
     ['ServerID'      => gethostname(),]  
     ['SiteID'        => $siteID,]
     ['SiteID'        => $siteID,]
     ['RemoteID'      => $remoteIPaddress]));
     ['RemoteID'      => $remoteIPaddress]));
 
Output positief:
Output positief (F.1 en F.2):
   $reply = array(
   $reply = array(
     'Action'         => 'IsKaderLid',
     'Action'       => 'GeefhccEindDatum',
     'Status'         => 'TRUE',
     'Status'       => 'TRUE',
     'Message'         => 'Is kaderlid',
     'hccLidnummer' => $hccLidnummer,
    'hccLidnr'        => $hccLidnr,
     'hccLogin'    => $hccLogin,
    'cn'              => $cn,
     'hccEindDatum' => $hccEindDatum ('yyyymmdd' | ''));
    'sn'              => $sn,
Output negatief:
     'hccRol'         => $hccRol,
     'mail'            => $mail,
     'mailHccnet'     => $mailHccnet,
    'hccKaderMail'   => $hccKaderMail,
    'hccKaderForward' => $hccKaderForward);
 
Voor F.3 is het antwoord uitgebreider:
   $reply = array(
   $reply = array(
     'Action'         => 'IsKaderLid',
     'Action'   => 'GeefhccEindDatum',
     'Status'         => 'TRUE',
     'Status'   => 'FALSE',
     'Message'         => 'Is kaderlid',
     'Message'   => 'Gegevenscombinatie onjuist'
     'hccLidnr'       => $hccLidnr,
     'ExtraInfo' => 'Invalid credentials' |
    'hccLogin'       => $hccLogin,
                  'Lidnummer niet gevonden');
    'hccPseudoniem'   => $hccPseudoniem,
</pre>
    'cn'              => $cn,
 
    'sn'              => $sn,
=== (Forum,vraagbaak) onderwerpen ===
    'hccRol'          => $hccRol,
    'mail'            => $mail,
    'mailHccnet'      => $mailHccnet,
    'hccKaderMail'    => $hccKaderMail,
    'hccKaderForward' => $hccKaderForward);


<pre>
// L.1 MaakOnderwerp
  $request = xmlrpc_encode_request(
    'MaakOnderwerp',
    array(
      'hccLidnr'    => $hccLidnr,
      'JoomlaToken' => $JoomlaToken,
      'ServerID'    => gethostname(),
      'SiteID'      => $siteID,
      'RemoteID'    => $remoteIPaddress,
      'description' => $description,
      'groepering'  => $groepering));
Output positief:
  $reply = array(
    'Action'      => 'MaakOnderwerp',
    'Status'      => 'TRUE',
    'Message'    => 'Onderwerp is aangemaakt',
    'onderwerp'  => $onderwerpID,
    'description' => $description);
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action' => 'IsKaderLid',
     'Action'   => 'MaakOnderwerp',
     'Status' => 'FALSE',
     'Status'   => 'FALSE',
     'Message' => 'Onjuiste credentials' | 'Is geen kaderlid');
     'Message'   => 'Gegevenscombinatie onjuist'
    'ExtraInfo' => 'Vul alle verplichte velden in!' |
                  'Onjuist JoomlaToken' |
                  'Geen webmaster');


// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **
// L.2 VerwijderOnderwerp
// F.4 Vraag alle groeperingen op
 
// Het is mogelijk om een groepering te onderdrukken, als er in LDAP '''een''' waarde in een opgegeven attribuur aanwezig is.
$request = xmlrpc_encode_request(
// (iedere waarde anders dan een lege string wordt behandeld alsof 'TRUE' gegeven is)
     'VerwijderOnderwerp',
//  JoomlaFilter            : attribuut 'hccToonInJoomla'
//  ToonInOverzichtenFilter : attribuut 'hccToonInOverzichten'
//  KadernetFilter          : attribuut 'hccToonOpKaderNet'
//  BulletinsFilter        : attribuut 'hccBulletins'
//  EmailFilter            : attribuut 'hccFunctionalEmail'
// (geen authenticatie)
  $request = xmlrpc_encode_request(
     'GeefAlleGroeperingen',
     array(
     array(
    ['hccLidnr'               => $hccLidnr,
      'hccLidnr'   => $hccLidnr,
       'JoomlaToken'             => $JoomlaToken,]
       'JoomlaToken' => $JoomlaToken,
    ['ServerID'               => gethostname(),]
      'ServerID'   => gethostname(),
    ['SiteID'                 => $siteID,]
      'SiteID'     => $siteID,
    ['RemoteID'               => $remoteIPaddress,]
      'RemoteID'   => $remoteIPaddress,
    ['JoomlaFilter'           => '' | 'TRUE',]
      'onderwerp'   => $onderwerpID));
    ['ToonInOverzichtenFilter' => '' | 'TRUE',]
    ['KadernetFilter'          => '' | 'TRUE',]
    ['BulletinsFilter'        => '' | 'TRUE',]
    ['EmailFilter'            => '' | 'TRUE']));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'                 => 'GeefAlleGroeperingen',
     'Action'     => 'VerwijderOnderwerp',
     'Status'                 => 'TRUE',
     'Status'     => 'TRUE',
     'Message'                 => 'Lijst met groeperingen opgevraagd',
    'onderwerp'  => $onderwerpID,
     'Result'                 => $groeperingen,
     'Message'     => 'Onderwerp is verwijderd',
  ['JoomlaFilter'           => 'TRUE',]
     'description' => $description);
  ['ToonInOverzichtenFilter' => 'TRUE',]
Output negatief:
  ['KadernetFilter'         => 'TRUE']);
  $reply = array(
   
    'Action'    => 'VerwijderOnderwerp',
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **
    'Status'   => 'FALSE',
// F.5 Vraag alle kaderrollen op
    'Message'   => 'Gegevenscombinatie onjuist'
// Desgewenst worden alle resultaten waarbij hccToonInJoomla aan staat onderdrukt
    'ExtraInfo' => 'Vul alle verplichte velden in!' |
// (iedere waarde anders dan een lege string wordt behandeld alsof 'TRUE' gegeven is)
                  'Onjuist JoomlaToken'           |
// Desgewenst worden alle resultaten waarbij ToonOpKaderNet aan staat onderdrukt
                  'Geen webmaster'                |
// (iedere waarde anders dan een lege string wordt behandeld alsof 'TRUE' gegeven is)
  'Onderwerp bestaat niet'        |
// (geen authenticatie)
  'Ruim eerst alle geautoriseerde gebruikers op' |
  $request = xmlrpc_encode_request(
  'Kan onderwerp niet verwijderen');
     'GeefAlleKaderRollen',
 
// L.3 GeefOnderwerpen
// Geef het array met de lijst van onderwerpen voor de betreffende groepering
//
$request = xmlrpc_encode_request(
     'GeefOnderwerpen',
     array(
     array(
    ['hccLidnr'      => $hccLidnr,
       'ServerID'    => gethostname(),
       'JoomlaToken'    => $JoomlaToken,]
      'SiteID'     => $siteID,
    ['ServerID'      => gethostname(),]
      'RemoteID'   => $remoteIPaddress,
    ['SiteID'         => $siteID,]
      'groepering' => $groepering));
    ['RemoteID'       => $remoteIPaddress,]
    ['JoomlaFilter'   => '' | 'TRUE',]
    ['KadernetFilter' => '' | 'TRUE']));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'         => 'GeefAlleKaderRollen',
     'Action'     => 'GeefOnderwerpen',
     'Status'         => 'TRUE',
     'Status'     => 'TRUE',
     'Message'       => 'Lijst met kaderrollen opgevraagd',
     'Message'     => 'Onderwerpen opgevraagd',
     'Result'         => $kaderrollen,
     'onderwerpen' => $onderwerpen); // het array met onderwerpen
   ['JoomlaFilter'  => 'TRUE',]
Output negatief:
  ['KadernetFilter' => 'TRUE']);
  $reply = array(
    'Action'    => 'GeefOnderwerpen',
    'Status'   => 'FALSE',
    'Message'  => 'Gegevenscombinatie onjuist'
    'ExtraInfo' => 'Vul alle verplichte velden in!');


// ** t.b.v. instellen kadernet email forwards **
// L.4 MuteerOnderwerp
// F.8 Stel de kadermail forward in
// Pas de description van een onderwerp aan
// Authenticatie op basis van hccLogin en userPassword
//
  $request = xmlrpc_encode_request(
$request = xmlrpc_encode_request(
    'ZetKaderForward',
  'MuteerOnderwerp',
    array(
  array(
       'hccLogin'         => $hccLogin,
       'hccLidnr'    => $hccLidnr,
       'userPassword'      => $userPassword,
      'JoomlaToken' => $JoomlaToken,
       'NieuwKaderForward' => $NieuwKaderForward, // mag leeg zijn
       'ServerID'    => gethostname(),
    ['ServerID'         => gethostname(),]
      'SiteID'      => $siteID,
    ['SiteID'           => $siteID,]
       'RemoteID'   => $remoteIPaddress,
    ['RemoteID'         => $remoteIPaddress]));
      'groepering' => $groepering,
      'description' => $description,
      'onderwerp'   => $onderwerpID));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action' => 'ZetKaderForward',
     'Action'     => 'MuteerOnderwerp',
     'Status' => 'TRUE',
     'Status'     => 'TRUE',
     'Message' => 'Kadermail forward ingesteld',
     'Message'     => 'Onderwerp aangepast',
     'cn'     => $cn);
    'onderwerp'   => $onderwerpID,
     'description' => $description);
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action' => 'ZetKaderForward',
     'Action'   => 'MuteerOnderwerp',
     'Status' => 'FALSE');
     'Status'   => 'FALSE',
</pre>
    'Message'  => 'Gegevenscombinatie onjuist'
    'ExtraInfo' => 'Vul alle verplichte velden in!' |
                  'Onjuist JoomlaToken' |
                  'Geen webmaster' |
  'Onderwerp bestaat niet' |
  'Onderwerp behoort bij andere groepering');


 
// L.5 MuteerOnderwerpAutorisatie
=== HCC-groepering aanroepen ===
// Geef kaderlid $kaderLidNr de autorisatie MOD of VRBK bij onderwerp $onderwerp
 
// (of haal die autorisatie weg)
<pre>
$request = xmlrpc_encode_request(
// H.1 controleer of deze gebruiker bestaat, en lid is van de opgegeven groepering(en)
     'MuteerOnderwerpAutorisatie',
// (authenticatie op basis van hccLogin en userPassword)
  $request = xmlrpc_encode_request(
     'IsGroeperingsLid',
     array(
     array(
       'hccLogin'     => $hccLogin,
       'hccLidnr'       => $hccLidnr,
       'userPassword' => $userPassword,
       'JoomlaToken'   => $JoomlaToken,
       'hccGroepering => $hccGroepering, // 1 naam of komma-gescheiden lijst of '*'
       'ServerID'      => gethostname(),
    ['ServerID'    => gethostname(),]
      'SiteID'        => $siteID,
     ['SiteID'      => $siteID,]
      'RemoteID'       => $remoteIPaddress,
     ['RemoteID'     => $remoteIPaddress]));
      'groepering'    => $groepering,
      'onderwerp'     => $onderwerpID,
      'kaderLidNr'     => $kaderLidNr,
       'hccAutorisatie' => 'MOD' | 'VRBK',
     ['verwijder'     => 'TRUE']));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action'       => 'IsGroeperingsLid',
     'Action'     => 'MuteerOnderwerpAutorisatie',
    'hccGroepering' => $hccGroepering,  // de eerstgevonden groepering
     'Status'     => 'TRUE',
                                        // (of '*', als wildcard gebruikt wordt)
     'Message'    => 'Onderwerp autorisatie aangepast');
     'Status'       => 'TRUE',
     'Message'      => 'Gebruikersgegevens gecontroleerd',
    'cn'            => $cn,
  ['hccLidnr'      => $hccLidnr,]
  ['mail'          => $mail,]
  ['mailHccnet'    => $mailHccnet,]
  ['givenName'    => $givenName,]
  ['hccGeslacht'   => $hccGeslacht,] // M/V/O
  ['hccAanhef'    => $hccAanhef,]
  ['hccPseudoniem' => $hccPseudoniem,]
  ['hccRol'        => $hccRol]);   // de rollen in deze eerstgevonden groepering
                                    // (of leeg, als wildcard gebruikt wordt)
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
     'Action' => 'IsGroeperingsLid',
     'Action'   => 'MuteerOnderwerpAutorisatie',
     'Status' => 'FALSE',
     'Status'   => 'FALSE',
     'Message' => 'Onjuiste credentials' | 'Geen groeperingslid');
     'Message'   => 'Gegevenscombinatie onjuist'
    'ExtraInfo' => 'Vul alle verplichte velden in!' |
                  'Onjuist JoomlaToken' |
                  'Geen webmaster' |
  'Geen kaderlid' |
  'Onjuiste autorisatie opgegeven' |
  'Onderwerp bestaat niet');


// I.2 controleer of een gebruiker bestaat op basis van de combinatie
* L.6 ToonOnderwerpAutorisatie
//    lidnummer + postcode + huisnummer
$request = xmlrpc_encode_request(
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)
     'ToonOnderwerpAutorisatie',
// (alternatieve authenticatie mogelijk door lidnummer + hcc-code in te vullen)
     array(
//
       'hccLidnr'   => $hccLidnr,
// Aan de aanroeper worden zekere eisen gesteld:
       'JoomlaToken' => $JoomlaToken,
// * dient een rol te vervullen binnen de groepering 'FOR'(forum)
       'ServerID'    => gethostname(),
// * dan wel dient de rol 'VRBK' (vraagbaak) te vervullen binnen een groepering
       'SiteID'     => $siteID,
//
       'RemoteID'   => $remoteIPaddress,
// Er wordt door de gehele leden-database gezocht, waarna terug wordt gegeven
       'onderwerp'   => $onderwerpID));
// * of dit hcc lid inderdaad bestaat
// en, als het om een aanvraag van een vraagbaak vrijwilliger gaat,
// * tevens of het gezochte hcc lid deel uitmaakt van zijn groepering
 
  $request = xmlrpc_encode_request(
     'IsHCCLid',
     array(
       'hccLogin'       => [$hccLogin | $hccLidnummer],
       'userPassword'   => [$userPassword | $hccCode],
       'zoekhccLidnr'    => $zoekhccLidnr,
       'zoekhccPostcode' => $zoekhccPostcode,
       'zoekhccHuisnr'   => $zoekhccHuisnr,
       'zoekgroepering' => $zoekgroepering));
Output positief:
Output positief:
   $reply = array(
   $reply = array(
     'Action' => 'IsHCCLid',
     'Action'       => 'ToonOnderwerpAutorisatie',
     'Status' => 'TRUE',
     'Status'       => 'TRUE',
     'Message' => 'Gebruikersgegevens gecontroleerd',
     'Message'     => 'Autorisaties opgehaald',
   ['Groeperingslid' => $IsGroeperingLid]));
    'onderwerp'   => $onderwerpID,
    'description'  => $description,
    'autorisaties' =>
      [Array(
        'hccLidnummer'    => $hccLidnummer
        'cn'             => $cn
        'hccAutorisatie'  => {komma-gescheiden autorisaties})]);
Output negatief:
Output negatief:
   $reply = array(
   $reply = array(
    'Action'  => 'IsHCCLid',
     'Action'    => 'ToonOnderwerpAutorisatie',
    'Status'  => 'FALSE',
     'Status'    => 'FALSE',
    'Message' => 'Gebruiker bestaat niet' |
     'Message'  => 'Gegevenscombinatie onjuist'
                'Onjuiste credentials' |
     'ExtraInfo' => 'Vul alle verplichte velden in!' |
                'Wel HCC lid, maar geen lid van groepering $groepering' |
                  'Onjuist JoomlaToken' |
                'Onvoldoende rechten' |
                  'Geen webmaster' |
                'Vul alle verplichte velden in!'));
  'Onderwerp bestaat niet');
</pre>
 
=== HenZ aanroepen ===
 
<pre>
 
// I.3 Geef de einddatum van een actief dan wel uitgeschreven lid
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)
  $request = xmlrpc_encode_request(
    'GeefhccEindDatum',
    array(
      'beheerLogin'    => $beheerLogin,
      'beheerPassword' => $beheerPassword,
      'hccLidnummer'  => $hccLidnummer,
    ['ServerID'      => gethostname(),]
    ['SiteID'        => $siteID,]
    ['RemoteID'      => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'      => 'GeefhccEindDatum',
    'Status'      => 'TRUE',
    'hccLidnummer' => $hccLidnummer,
    'hccLogin'    => $hccLogin,
    'hccEindDatum' => $hccEindDatum ('yyyymmdd' | ''));
Output negatief:
  $reply = array(
     'Action'    => 'GeefhccEindDatum',
     'Status'    => 'FALSE',
     'Message'  => 'Gegevenscombinatie onjuist'
     'ExtraInfo' => 'Invalid credentials' |
                  'Lidnummer niet gevonden');
</pre>
 
== Kale TRUE/FALSE validatie aanroepen ==
(tbv Joomla kadersite / Joomla bezoekersregistratie module)
 
<pre>
// K.1 Valideer een opgegeven lidnummer / hcc code combinatie
  $request = xmlrpc_encode_request(
    'ValideerHCCCode',
    array(
      'hccLidnr' => $hccLidnr,
      'hccCode'  => $hccCode,
    ['ServerID' => gethostname(),]
    ['SiteID'  => $siteID,]
    ['RemoteID' => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'    => 'ValideerHCCCode',
    'Status'    => 'TRUE',
    'Message'    => 'Gegevens gevalideerd');
Output negatief:
  $reply = array(
    'Action'    => 'ValideerHCCCode',
    'Status'    => 'FALSE',
    'Message'    => 'Gegevenscombinatie onjuist',
  ['ExtraInfo'  => 'Vul alle verplichte velden in!']);
 
// K.2 Valideer een opgegeven lidnummer / bijeenkomst / token combinatie
  $request = xmlrpc_encode_request(
    'ValideerToken',
    array(
      'hccLidnr'   => $hccLidnr,    // credentials
      'token'      => $token,      // credentials
      'Bijeenkomst' => $Bijeenkomst, // groepering die deze bijeenkomst organiseert
    ['ServerID'    => gethostname(),]
    ['SiteID'      => $siteID,]
    ['RemoteID'    => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'      => 'ValideerToken',
    'Status'      => 'TRUE');
Output negatief:
  $reply = array(
    'Action'      => 'ValideerToken',
    'Status'      => 'FALSE',
    'Message'      => 'Gegevenscombinatie onjuist',
  ['ExtraInfo'    => 'Vul alle verplichte velden in!']);
</pre>
</pre>


Line 1,892: Line 1,729:
   * A.1 beheer authenticatie op basis van lidnummer + hccCode (tbv VZ-portal)
   * A.1 beheer authenticatie op basis van lidnummer + hccCode (tbv VZ-portal)
   * A.2 HaalPC30Token weggehaald
   * A.2 HaalPC30Token weggehaald
2018.08.22 Wijzigingen versie 55
  * 1.2 GebruikerBestaatControle' (op basis van hccLogin en userPassword) weggehaald
  * 1.4 GebruikerBestaatControle' (op basis van zoekHccLogin of zoekHccLidnr) weggehaald
  * 2.8 HaalOptInLijst weggehaald
  * E.1 PasKaderWachtwoordAan weggehaald
  * F.1 IsKaderLid (op basis van hccLidnr en hccCode) weggehaald
  * F.3 IsKaderLid (op basis van beheerdernaam en beheerderwachtwoord) was al weg
  * F.8 ZetKaderForward weggehaald
  * H.1 IsGroeperingsLid weggehaald
  * H.6 GeefMijnKaderDetails weggehaald
  * H.7 GeefMinimaleKaderGegevens weggehaald
  * H.8 ZetMinimaleKaderGegevens weggehaald
  * K.1 ValideerHCCCode weggehaald
  * K.2 ValideerToken weggehaald
  * H.3 GeefMijnGegevens geeft omvang kader mailbox mee terug
2018.11.06 Wijzigingen versie 56
  Nieuwe aanroepen t.b.v. forum en vraagbaak autorisaties
  * L.1 MaakOnderwerp
  * L.2 VerwijderOnderwerp
  * L.3 GeefOnderwerpen (geef lijst van onderwerpen)
  * L.4 MuteerOnderwerp
  * L.5 MuteerOnderwerpAutorisatie
  * L.6 ToonOnderwerpAutorisatie
  * H.5 ZoekKaderLeden heeft compact optie
</pre>
</pre>



Revision as of 22:14, 6 November 2018

XML-RPC interface

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.

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.

Globale functie omschrijving

  • Algemene aanroepen
    • Controleer of een gebruiker bestaat
    • Wijzig het wachtwoord ('userPassword')
    • Zoek een gebruiker (t.b.v. kantoor en/of LA-akties groeperingssecretaris)
    • Maak een gebruiker aan (geef gebruiker een andere hccLogin waarde, maak ook bij HCCnet deze gebruiker aan)
    • Controleer of een gebruiker zijn profiel al doorlopen heeft
    • Haal de lijst met opgeheven accounts op
    • Haal de lijst met bulletins van een hcc lid (OptIn)
  • Aanroepen t.b.v. hcc partners
    • Controleer of lidnummer/postcode correct is
    • Controleer of lidnummer/postcode correct is, en tevens ingeschreven staat bij een specifieke IG
  • Joomla template site functies (op basis van JoomlaToken)
    • Maak een JoomlaToken
    • Pas mijn OptIn (bulletin inschrijving) aan
  • Joomla kadernet site functies (op basis van JoomlaToken)
    • Zoek een hcc kaderlid (t.b.v. de kaderleden zoekpagina)
    • Pas mijn kadermail forwarding aan en toon ja/nee mijn GSM nummer
    • Pas het kadernet e-mail wachtwoord aan
    • Haal de lijst met alle groeperingen op
    • Haal de lijst met alle kaderrollen op
  • HenZ
    • Haal de lijst met opzeggers op
    • Valideer de opzegdatum van een opgegeven gebruiker

Authenticatie

Alle aanroepen gebeuren op basis van authenticatie vanuit de aanroeper. Dit valt uiteen in de volgende categorieën:

  • gebruikersnaam ('hccLogin') en wachtwoord ('userPassword')
  • hcc lidnummer ('hccLidnr'), Joomla token ('JoomlaToken') en website ('siteID')
  • hcc lidnummer ('hccLidnr') en hcc code ('hccCode')
  • beheerders-DN ('beheerLogin') en beheerders wachtwoord ('beheerPassword')
  • partner-DN ('partnerLogin') en partner wachtwoord ('partnerPassword')

Aanroepen, gedaan via de bezoekersregistratie-proxy

(de bezoekersregistratie proxy is een mislukt project tbv de Android app van René Prins) (deze proxy bestaat niet meer) Diverse aanroepen kunnen ook via de bezoekersregistratie-proxy aangeroepen worden.
Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:

  • GeefAlleGroeperingen
  • GeefAlleKaderRollen
  • GeefLocaties
  • GeefLocatieNamen

De bezoekersregistratie aanroepen hebben 'JoomlaToken' als extra parameter nodig:

  • LidBezoektBijeenkomst
  • GeefBezoekersOverzicht

Alle aanroepen dienen voorafgegaan te worden door een aanroep naar

  • GeefMijnGegevens (dit geeft na validatie immers 'JoomlaToken' terug)

Resultaten

Alle aanroepen geven de volgende elementen terug:

  • Naam van de uitgevoerde procedure ('Action')
  • Resultaat van de uitgevoerde procedure ('Status')
  • Een tekstuele vertaling van het resultaat dan wel de foutmelding ('Message')
  • Tijdens de ontwikkelfase kan er debug-info teruggeleverd worden ('ExtraInfo')

Daarnaast geven specifieke aanroepen extra resultaten terug

Technische omschrijving

XML-RPC beschrijving van acties in hcc.nl LDAP database

2018.11.06 HaVe
XML-RPC Hobbynet versie 56.

Kort overzicht

Dit is een lijst met alle XML-RPC aanroepen. In het volgende hoofdstuk worden ze in detail besproken.

echo				(partners)
GebruikerBestaatControle	(Joomla sites)
GeefAlleGroeperingen		(kadersite, forum, secr. portal, kantoor portal, hobbynet portal)
GeefAlleKaderRollen		(forum, secr. portal, kantoor portal, hobbynet portal)
GeefBezoekersOverzicht		(bezoekersregistratie)
GeefhccEindDatum		(HenZ)
GeefLocatieNamen		(kadersite, secr. portal, kantoor portal, hobbynet portal)
GeefLocaties			(kadersite, secr. portal, kantoor portal, hobbynet portal)
GeefMijnGegevens		(Joomla inlog module Bas)
GeefMijnLidnummer		(beheer.hcc.nl secretaris portal)
GeefUitgeschrevenLeden		(Joomla sites, HenZ)
HaalOptInKeuzen			(kantoor portal)
HaalOptInLijst			(kantoor portal)
HCCpartner			(Partner aanroep)
HCCpartners			(Partner aanroep)
IsDezeNaamNogBeschikbaar	(aangeroepen vanuit de CRM omgeving)
IsDezePseudoniemNogBeschikbaar	(kantoor portal)
IsHCCLid			(vraagbaak aanroep)
IsKaderLid			(in veel apps gebruikt)
LidBezoektBijeenkomst		(bezoekersregistratie)
MaakGebruikerAan		(mijnhcc.nl, maak hccnet account aan en ldap gebruikersnaam)
PasKaderGegevensAan		(kadersite, Joomla module Bas)
PasOptInKeuzeAan		(Joomla inlog module Bas)
RegistreerGast			(bezoekersregistratie)
SchrijfNietlidInOpBulletin      (Joomla site bulletin module Bas)
VraagLidgegevensTokenAan	(bezoekersregistratie)
WijzigGebruikersGegevens	(kantoor en Joomla template sites, ww aanpassen van gebruiker)
ZoekGroeperingsLid		(secr. portal, kantoor portal, hobbynet portal)
ZoekKaderLeden			(Joomla kadernet module Bas)
ZoekHCCLid			(VZ portal)

HCC-ldap en/of HCC-net aanroepen

// ** Joomla sites, www.hcc.nl **
// 1.1 controleer of een gebruiker bestaat - optie 1
// (authenticatie op basis van hccLidnr en hccCode)
// Alleen bedoeld om gebruikers op www.hcc.nl op basis van het lidnr het ww te laten wijzigen
  $request = xmlrpc_encode_request(
    'GebruikerBestaatControle',
    array(
      'hccLidnr' => $hccLidnr,
      'hccCode'  => $hccCode,
     ['ServerID' => gethostname(),] 
     ['SiteID'   => $siteID,]
     ['RemoteID' => $remoteIPaddress]));

// ** Portal mijn.hcc.nl **
// 2.1 wijzig wachtwoord - optie 1
// op basis van hccLidnummer en hccCode 
// Essentiele aanroep, gebruikt vanuit mijnhcc.nl (lidnr + hccCode)
// Ook gebruikt t.b.v. wachtwoord-vergeten procedure op de Joomla template sites
// Als de profielpagina nog niet is doorlopen wordt deze aanroep afgekeurd.
//
// Ook gebruikt om gebruiker rechtstreeks vanaf Joomla template sites wachtwoord te
// laten aanpassen (op basis van lidnummer en hcc code)
//
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **
  $request = xmlrpc_encode_request(
    'WijzigGebruikersGegevens',
    array(
      'hccLidnr'           => $hccLidnr,
      'hccCode'            => $hccCode,
      'nieuw_userPassword' => $nieuw_userPassword,
     ['ServerID'           => gethostname(),] 
     ['SiteID'             => $siteID,]
     ['RemoteID'           => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'   => 'WijzigGebruikersGegevens',
    'Status'   => 'TRUE',
    'Message'  => 'Gebruikersgegevens gewijzigd',
    'hccLogin' => $hccLogin,
    'cn'       => $cn,
    'sn'       => $sn);

// 2.3 wijzig wachtwoord - optie 3
// (t.b.v. VZ-portal)
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)
// * Als hccLidnr gevuld is, dan wordt hccLidnr gebruikt om het juiste record te zoeken
//   Als hccLidnr leeg   is, dan wordt hccLogin gebruikt om het juiste record te zoeken
//   1 van beide velden MOET aanwezig zijn
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) **
  $request = xmlrpc_encode_request(
    'WijzigGebruikersGegevens',
    array(
      'beheerLogin'        => $beheerLogin,    // beheerder lidnummer
      'beheerPassword'     => $beheerPassword, // beheerder hccCode
     ['hccLidnr'           => $hccLidnr,]
     ['hccLogin'           => $hccLogin,]
      'nieuw_userPassword' => $nieuw_userPassword,
     ['ServerID'           => gethostname(),] 
     ['SiteID'             => $siteID,]
     ['RemoteID'           => $remoteIPaddress]));

// ** t.b.v. ophalen van de opt-in keuzes op de beheer pagina **
// 2.6 Geef de complete lijst met opt-ins van dit lid
// (LET OP: authenticatie op basis van beheerdernaam en beheerderwachtwoord)
  $request = xmlrpc_encode_request(
    'HaalOptInKeuzen',
    array(
      'beheerLogin'    => $beheerLogin,
      'beheerPassword' => $beheerPassword,
     ['hccLidnr'       => $hccLidnr,]
     ['hccLogin'       => $hccLogin,]
     ['ServerID'       => gethostname(),] 
     ['SiteID'         => $siteID,]
     ['RemoteID'       => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'   => 'HaalOptInKeuzen',
    'Status'   => 'TRUE',
    'Message'  => 'OptInLijst opgehaald',
    'hccOptIn' => $hccOptIn);
Output negatief:
  $reply = array(
    'Action'  => 'HaalOptInKeuzen',
    'Status'  => 'FALSE',
    'Message' => 'Gegevenscombinatie onjuist');

// ** Portal mijn.hcc.nl **
// ** t.b.v. 1e keer doorlopen van de profielpagina **
// 8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gebruikersnaam, pseudoniem 
//     en wachtwoord tevens in LDAP op
// (authenticatie op basis van hcc lidnummer en hcc-code)
// ** Deze gegevens worden doorgezet naar hccnet.nl (action=4) **
// 
  $request = xmlrpc_encode_request(
    'MaakGebruikerAan',
    array(
      'hccLidnr'            => $hccLidnr,
      'hccCode'             => $hccCode,
      'nieuw_hccLogin'      => $nieuw_hccLogin,
      'nieuw_userPassword'  => $nieuw_userPassword,
      'nieuw_hccPseudoniem' => $nieuw_hccPseudoniem,
     ['ServerID'            => gethostname(),] 
     ['SiteID'              => $siteID,]
     ['RemoteID'            => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'        => 'MaakGebruikerAan',
    'Status'        => 'TRUE',
    'Message'       => 'Gebruiker aangemaakt',
    'mail'          => $mail,
    'hccPseudoniem' => $hccPseudoniem);
Output negatief:
  $reply = array(
    'Action'  => 'MaakGebruikerAan',
    'Status'  => 'FALSE',
    'Message' => 'Onjuiste credentials'       |
                 'Gebruikersnaam bestaat al'  |
                 'Pseudoniem bestaat al'      |
                 'Gegevenscombinatie onjuist' |
                 'Vul alle verplichte velden in!');

// H.3 Haal al mijn gegevens
// (wordt gebruikt door de Joomla inlogmodule)
// Voor gebruik over de proxy t.b.v. de Android app kan compact=TRUE meegegeven worden.
// In dat geval worden enkel de meest essentiele gegevens teruggestuurd
$request = xmlrpc_encode_request(
    'GeefMijnGegevens',
    array(
      'hccLogin'     => $hccLogin,
      'userPassword' => $userPassword,
     ['compact'      => $compact,]        // leeg of 'TRUE'
      'ServerID'     => gethostname(), 
      'SiteID'       => $siteID,
      'RemoteID'     => $remoteIPaddress));
Output positief:
  $reply = array(
    'Action'             => 'GeefMijnGegevens',
    'Status'             => 'TRUE',
    'Message'            => 'Gebruikersgegevens opgevraagd',
    'hccLidnr'           => $hccLidnr,
    'hccRegio'           => $hccRegio,
    'hccIG'              => $hccIG,
    'hccRol'             => $hccRol,
    'hccAutorisatie'     => $hccAutorisatie,
    'cn'                 => $cn,
    'sn'                 => $sn,
    'JoomlaToken'        => $JoomlaToken,
   ['hccLogin'           => $hccLogin,
    'hccPseudoniem'      => $hccPseudoniem,
    'givenname'          => $givenname,
    'hccAanhef'          => $hccAanhef,
    'hccGeslacht'        => $hccGeslacht,
    'hccTussenVoegsels'  => $hccTussenVoegsels,
    'hccAchternaam'      => $hccAchternaam,
    'hccStraatnaam'      => $hccStraatnaam,
    'hccHuisnummer'      => $hccHuisnummer
    'hccPostcode'        => $hccPostcode,
    'hccWoonplaats'      => $hccWoonplaats,
    'hccLand'            => $hccLand,
    'hccTelefoon'        => $hccTelefoon,
    'mail'               => $mail,
    'mailHccnet'         => $mailHccnet,
    'hccKaderMail'       => $hccKaderMail, 
    'hccKaderForward'    => $hccKaderForward,
    'hccKaderToonMobiel' => $hccKaderToonMobiel,
    'hccOptIn'           => $hccOptIn,
    'ProfielBekend'      => $ProfielBekend,
    'hccBeginDatum'      => $hccBeginDatum,
   ['kadermail_omvang'           => $Formaat,
    'kadermail_aantal_inbox'     => $aantal_inbox,
    'kadermail_aantal_nieuw'     => $aantal_nieuw,
    'kadermail_laatst_opgehaald' => $laatst_opgehaald;]]);

Output negatief:
  $reply = array(
    'Action'  => 'GeefMijnGegevens',
    'Status'  => 'FALSE',
    'Message' => 'Gegevenscombinatie onjuist' | 'Onjuiste credentials');

// ** t.b.v. aanpassen van de opt-in keuzes op een Joomla site **
// H.4 Pas 1 opt-in van een lid aan
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en serverID)
  $request = xmlrpc_encode_request(
    'PasOptInKeuzeAan',
    array(
      'hccLidnr'    => $hccLidnr,
      'JoomlaToken' => $JoomlaToken,
      'hccOptIn'    => $hccOptIn,
      'actie'       => 'Nieuw' | 'Weg',
      'ServerID'    => gethostname(), 
      'SiteID'      => $siteID,
      'RemoteID'    => $remoteIPaddress));
Output positief:
  $reply = array(
    'Action'   => 'PasOptInKeuzeAan',
    'Status'   => 'TRUE',
    'Message'  => 'OptIn aangepast');
Output negatief:
  $reply = array(
    'Action'  => 'PasOptInKeuzeAan',
    'Status'  => 'FALSE',
    'Message' => 'Gegevenscombinatie onjuist' | 'Onjuiste credentials');
    
// H.5 Zoek kaderleden NAW (t.b.v. de Joomla kadersite)
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)
// (wordt gebruikt door de Joomla kadersite module)
//
// * Er dient minstens 1 zoekcriterium opgegeven te worden.
// * Als zowel hccRegio als tegelijk ook hccIG opgegeven worden is de uitkomst onvoorspelbaar.
// * Als compact=TRUE worden enkel lidnummer, cn en sn in het antwoord gezet
$request = xmlrpc_encode_request(
    'ZoekKaderLeden',
    array(
      'hccLidnr'    => $hccLidnr,
      'JoomlaToken' => $JoomlaToken,
      'ServerID'    => gethostname(), 
      'SiteID'      => $siteID,
      'RemoteID'    => $remoteIPaddress,
     ['hccRegio'    => $hccRegio,]
     ['hccIG'       => $hccIG,]
     ['hccRol'      => $hccRol,]
     ['hccLocatie'  => $hccLocatie,]
     ['achternaam'  => $achternaam,]
     ['compact'     => $compact]));        // leeg of 'TRUE'

Output positief:
  $reply = array(
    'Action'  => 'ZoekKaderLeden',
    'Status'  => 'TRUE',
    'Message' => 'Kaderleden opgevraagd'
    'Kaderleden'      => array(
      'hccLidNummer'  => $hccLidNummer,
      'hccRol'        => $hccRol,
      'hccAanhef'     => $hccAanhef,
      'givenname'     => $givenname,
      'cn'            => $cn,
      'sn'            => $sn,
      'hccWoonplaats' => $hccWoonplaats,
      'hccTelefoon'   => $hccTelefoon,
      'hccMobiel'     => $hccMobiel,
      'hccKaderMail'  => $hccKaderMail);

Output negatief:
  $reply = array(
    'Action'    => 'ZoekKaderLeden',
    'Status'    => 'FALSE',
    'Message'   => 'Gegevenscombinatie onjuist' | 'Onjuiste credentials',
   ['ExtraInfo' => 'Ongeldig token']);

// H.9 PasKaderGegevensAan
// (LET OP: authenticatie op basis van lidnummer, JoomlaToken en siteID)
// (wordt gebruikt door de Joomla kadersite module)
// Om de kaderleden hun forward in te laten stellen,
// en tegelijkertijd de opt-in / opt-out voor hccToonMobiel te laten regelen
// Kan tevens het kader email wachtwoord aanpassen
  $request = xmlrpc_encode_request(
    'PasKaderGegevensAan',
    array(
      'hccLidnr'            => $hccLidnr,
      'JoomlaToken'         => $JoomlaToken,
      'ServerID'            => gethostname(), 
      'SiteID'              => $siteID,
      'RemoteID'            => $remoteIPaddress,
      'hccKaderForward'     => $hccKaderForward,    // '' | $mail | $mailHccNet
      'hccKaderToonMobiel'  => $hccKaderToonMobiel, // 'TRUE' | 'FALSE' | 'NULL'
     ['nieuw_kaderPassword' => $nieuw_kaderPassword]));

Output positief:
  $reply = array(
    'Action'             => 'PasKaderGegevensAan',
    'Status'             => 'TRUE',
    'Message'            => 'kadergegevens aangepast');

Output negatief:
  $reply = array(
    'Action'    => 'PasKaderGegevensAan',
    'Status'    => 'FALSE',
    'Message'   => 'Gegevenscombinatie onjuist' | 'Onjuiste credentials',
   ['ExtraInfo' => 'Ongeldig token'|'Alleen kaderleden mogen deze aanroep uitvoeren']);

// 3.1 Geef mijn lidnummer
// (authenticatie op basis van hccLogin en userPassword)
  $request = xmlrpc_encode_request(
    'GeefMijnLidnummer',
    array(
      'hccLogin'     => $hccLogin,
      'userPassword' => $userPassword,
     ['ServerID'     => gethostname(),] 
     ['SiteID'       => $siteID,]
     ['RemoteID'     => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'   => 'GeefMijnLidnummer',
    'Status'   => 'TRUE',
    'Message'  => 'Lidnummer opgevraagd',
    'hccLidnr' => $hccLidnr);
Output negatief:
  $reply = array(
    'Action'  => 'GeefMijnLidnummer',
    'Status'  => 'FALSE',
    'Message' => 'Onjuiste credentials' | 'Gegevenscombinatie onjuist');

// ** Portal mijn.hcc.nl **
// ** t.b.v. 1e keer doorlopen van de profielpagina **
// 8.2 Controleer of de gebruikersnaam op dit moment bestaat
// (geen authenticatie)
// ** Deze gegevens worden opgevraagd bij hccnet.nl (action=3)       **
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **
  $request = xmlrpc_encode_request(
    'IsDezeNaamNogBeschikbaar',
    array(
      'nieuw_hccLogin' => $nieuw_hccLogin,
     ['ServerID'       => gethostname(),] 
     ['SiteID'         => $siteID,]
     ['RemoteID'       => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'  => 'IsDezeNaamNogBeschikbaar',
    'Status'  => 'TRUE',
    'Message' => 'Gebruikersnaam is nog beschikbaar');
Output negatief:
  $reply = array(
    'Action'  => 'IsDezeNaamNogBeschikbaar',
    'Status'  => 'FALSE',
    'Message' => 'Gebruikersnaam bestaat al');

// ** Enkel voor gebruik vanaf de kantoor portal **
// **  t.b.v. het hernoemen van accounts in CRM  **
// 8.3 Controleer of een Pseudoniem op dit moment bestaat		??? NIET GEBRUIKT ??
// (geen authenticatie)
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! **
  $request = xmlrpc_encode_request(
    'IsDezePseudoniemNogBeschikbaar',
    array(
      'nieuw_hccPseudoniem' => $nieuw_hccPseudoniem));
Output positief:
  $reply = array(
    'Action'  => 'IsDezePseudoniemNogBeschikbaar',
    'Status'  => 'TRUE',
    'Message' => 'Pseudoniem is nog beschikbaar');
Output negatief:
  $reply = array(
    'Action'  => 'IsDezePseudoniemNogBeschikbaar',
    'Status'  => 'FALSE',
    'Message' => 'Pseudoniem bestaat al');

// ** t.b.v. de verenigingszaken zoekpagina **
// A.1 Zoek alle bij de query passende hcc leden
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan
// (maximaal tot de door de XML-RPC server ingebouwde limiet)
  $request = xmlrpc_encode_request(
    'ZoekHCCLid',
    array(
      'beheerLogin'    => $beheerLogin,    // beheerder hccLidnummer
      'beheerPassword' => $beheerPassword, // beheerder hccCode
      'ZoekMethode'    => $ZoekMethode,
      'ZoekString'     => $zoekstring,
     ['ZoekLimiet'     => $ZoekLimiet,]
     ['Groepering'     => $Groepering,]
     ['ServerID'       => gethostname(),] 
     ['SiteID'         => $siteID,]
     ['RemoteID'       => $remoteIPaddress]));
 +---------------------+-----------------------------------------+
 | ZoekMethode         |  ZoekString                             |
 +---------------------+-----------------------------------------+
 | achternaam          | (eerste deel van) de naam               |
 | postcode            | (eerste deel van) postcode              |
 | lidnummer           | volledig lidnummer                      |
 | emailadres          | (eerste deel van) e-mail adres          |
 | gebruikersnaam      | (eerste deel van) de login naam         |
 | pseudoniem          | (eerste deel van) het pseudoniem        |
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |
 +---------------------+-----------------------------------------+

Output positief:
  $reply = array(
    'Action'      => 'ZoekHCCLid',
    'Status'      => 'TRUE',
    'Message'     => 'Gebruiker(s) gevonden',
    'ZoekMethode' => $ZoekMethode,
   ['ExtraInfo'   => 'Zoekopdracht afgebroken, Y van Z getoond',]
    'Results'     => array(
      'hccLidnummer'      => $hccLidnummer,
      'hccBeginDatum'     => $hccBeginDatum,
      'hccEindDatum'      => $hccEindDatum,
      'sn'                => $sn,
      'givenName'         => $givenName,
      'hccGeslacht'       => $hccGeslacht,
      'hccStraatnaam'     => $hccStraatnaam,
      'hccHuisnummer'     => $hccHuisnummer
      'hccHuisToevoeging' => $hcchuisToevoeging,
      'hccPostcode'       => $hccPostcode,
      'hccWoonplaats'     => $hccWoonplaats,
      'hccLand'           => $hccLand,
      'hccTelefoon'       => $hccTelefoon,
      'hccMobiel'         => $hccMobiel,
      'mail'              => $mail,
      'mailHccnet'        => $mailHccnet,
      'hccIG'             => $hccIG,
      'hccRol'            => $hccRol,
      'hccLogin'          => $hccLogin,
      'hccPseudoniem'     => $hccPseudoniem,
      'ProfielBekend'     => 'TRUE' | 'FALSE'])*);
Output negatief:
  $reply = array(
    'Action'  => 'ZoekHCCLid',
    'Status'  => 'FALSE',
    'Message' => 'Gebruiker niet gevonden');
  $reply = array(
    'Action'  => 'ZoekHCCLid',
    'Status'  => 'FALSE',
    'Message' => 'Onjuiste credentials');

// ** t.b.v. beheer.hcc.nl **
// A.3 Zoek alle bij de query passende hcc leden van deze groepering
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan
// (maximaal tot de door de XML-RPC server ingebouwde limiet)
// (authenticatie op basis van AccountNaam en AccountCode of token)
  $request = xmlrpc_encode_request(
    'ZoekGroeperingsLid',
    array(
      'AccountNaam' => $lidnr,
     ['AccountCode' => $AccountCode,]
     ['token'       => $token,]
      'Groepering'  => $groepering,
      'ZoekMethode' => $ZoekMethode,
      'ZoekString'  => $zoekstring,
     ['ZoekLimiet'  => $ZoekLimiet,]
     ['Bijeenkomst' => $Bijeenkomst,] // Alleen voor gebruik op de
                                      // bijeenkomsten aanwezigheidsregistratie pagina
     ['ServerID'    => gethostname(),] 
     ['SiteID'      => $siteID,]
     ['RemoteID'    => $remoteIPaddress]));
 +---------------------+-----------------------------------------+
 | ZoekMethode         |  ZoekString                             |
 +---------------------+-----------------------------------------+
 | achternaam          | (deel van) de naam                      |
 | postcode            | (eerste deel van) postcode              |
 | lidnummer           | volledig lidnummer                      |
 | nieuwe_leden        | YYYYMMDD vanaf waar gezocht moet worden |
 | opgezegde_leden     | YYYYMMDD tot waar gezocht moet worden   |
 | uitgeschreven_leden | YYYYMMDD tot waar gezocht moet worden   |
 | overleden_leden     | YYYYMMDD tot waar gezocht moet worden   |
 | kaderleden          | n.v.t.                                  |
 +---------------------+-----------------------------------------+

Output positief:
  $reply = array(
    'Action'    => 'ZoekGroeperingsLid',
    'Status'    => 'TRUE',
    'Message'   => 'Gebruiker(s) gevonden',
   ['ExtraInfo' => 'Zoekopdracht afgebroken, Y van Z getoond',]
    'Results'   =>
      [array(
         'hccLidnummer'  => $hccLidnummer,
         'hccBeginDatum' => $hccBeginDatum,
         'hccEindDatum'  => $hccEindDatum,
         'sn'            => $sn,
         'givenName'     => $givenName,
         'hccGeslacht'   => $hccGeslacht,
         'hccStraatnaam' => $hccStraatnaam,
         'hccHuisnummer' => $hccHuisnummer, 
         'hccPostcode'   => $hccPostcode,
         'hccWoonplaats' => $hccWoonplaats,
         'hccLand'       => $hccLand, 
         'hccTelefoon'   => $hccTelefoon,
         'hccMobiel'     => $hccMobiel,
         'mail'          => $mail,
         'mailHccnet'    => $mailHccnet,
         'hccKaderMail'  => $hccKaderMail,
         'hccRegio'      => $hccRegio,
         'hccIG'         => $hccIG,
         'hccRol'        => $hccRol,
         'hccLogin'      => $hccLogin,
         'hccPseudoniem' => $hccPseudoniem)]*));
Output negatief:
  $reply = array(
    'Action'  => 'ZoekGroeperingsLid',
    'Status'  => 'FALSE',
    'Message' => 'Gebruiker(s) niet gevonden' | 'Onjuiste credentials');

// ** t.b.v. administreren van bijeenkomsten **
// A.4 Lid bezoekt bijeenkomst
// (authenticatie op basis van AccountNaam en AccountCode of token)
  $request = xmlrpc_encode_request(
    'LidBezoektBijeenkomst',
    array(
     ['JoomlaToken' => $JoomlaToken,]
      'AccountNaam' => $lidnr,
     ['AccountCode' => $AccountCode,]
     ['token'       => $token,]
      'Bijeenkomst' => $Bijeenkomst, // groepering die deze bijeenkomst organiseert
      'hccLidnr'    => $hccLidnr,    // lid dat aanwezig gemeld moet worden
     ['correctie'   => $hccLidnr,]   // lid dat gecorrigeerd moet worden
     ['ServerID'    => gethostname(),] 
     ['SiteID'      => $siteID,]
     ['RemoteID'    => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'  => 'LidBezoektBijeenkomst',
    'Status'  => 'TRUE',
    'Message' => 'Bezoeker weggeschreven',
    'Results' => array(
      // info van deze bezoeker
      'cn'               => $cn,                // cn (Verbeek, H.J.)
      'hccGeslacht'      => $hccGeslacht,       // hccGeslacht van de bezoeker
      'groeperingslid'   => $groeperingslid,    // TRUE of FALSE: is deze persoon lid van deze groepering
      'mijnGroeperingen' => $mijnGroeperingen,  // komma-gescheiden lijst (regio, [hccIG]*)
      'aantalBezoeken'   => $aantalBezoeken,    // hoe vaak heeft dit lid deze bijeenkomst bezocht
      // info van de bijeenkomst
      'AantalBezoekers'  => $AantalBezoekers);  // aantal bezoekers van deze bijeenkomst
Output negatief:
  $reply = array(
    'Action'  => 'LidBezoektBijeenkomst',
    'Status'  => 'FALSE',
    'Message' => 'Onjuiste credentials');

// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **
// A.5 Vraag Lidgegevens token aan (geldig voor dit lid, en deze groepering, op deze datum)
// Als geen datum gegeven is, dan is het token vandaag geldig
// (authenticatie op basis van AccountNaam en AccountCode)
  $request = xmlrpc_encode_request(
    'VraagLidgegevensTokenAan',
    array(
      'AccountNaam' => $lidnr,
      'AccountCode' => $AccountCode,
      'hccLidnr'    => $hccLidnummer, // vraag het token voor dit lid aan
      'groepering'  => $groepering,   // zoek binnen deze groepering
     ['datum'       => $datum,]       // optioneel: datum YYYY-MM-DD, anders: vandaag
     ['ServerID'    => gethostname(),] 
     ['SiteID'      => $siteID,]
     ['RemoteID'    => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'     => 'VraagLidgegevensTokenAan',
    'Status'     => 'TRUE',
    'Message'    => 'Token opgevraagd',
    'groepering' => $Groepering,
    'token'      => $token,
    'sn'         => $sn);
Output negatief:
  $reply = array(
    'Action'  => 'VraagLidgegevensTokenAan',
    'Status'  => 'FALSE',
    'Message' => 'Onjuiste credentials');

// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens **
// A.6 Toon bezoekersoverzicht
// (authenticatie op basis van AccountNaam en AccountCode of token)
  $request = xmlrpc_encode_request(
    'GeefBezoekersOverzicht',
    array(
     ['JoomlaToken' => $JoomlaToken,]
      'AccountNaam' => $lidnr,
      'AccountCode' => $AccountCode,
      'token'       => $token,
     ['datum'       => $datum,]      // optioneel: datum YYYY-MM-DD, anders: vandaag
      'Bijeenkomst' => $Bijeenkomst, // groepering die deze bijeenkomst organiseert
     ['ServerID'    => gethostname(),] 
     ['SiteID'      => $siteID,]
     ['RemoteID'    => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'    => 'GeefBezoekersOverzicht',
    'Status'    => 'TRUE',
    'Message'   => 'Bezoekersoverzicht opgevraagd',
    'Bezoekers' => $bezoekers,
   ['Locatie'   => $Locatie]);
Output negatief:
  $reply = array(
    'Action'  => 'GeefBezoekersOverzicht',
    'Status'  => 'FALSE',
    'Message' => 'Onjuiste credentials' | 'Geen bijeenkomst gevonden' | 'Geen bezoekers gevonden');

// A.7 Geef het array met alle locaties
// (of beperk dit tot de locaties van de groepering $Groepering)
// Desgewenst worden alle resultaten waarbij hccToonInJoomla aan staat onderdrukt
// (iedere waarde anders dan een lege string wordt behandeld alsof 'TRUE' gegeven is)
// Desgewenst worden alle resultaten waarbij ToonOpKaderNet aan staat onderdrukt
// (iedere waarde anders dan een lege string wordt behandeld alsof 'TRUE' gegeven is)
// (geen authenticatie)
  $request = xmlrpc_encode_request(
    'GeefLocaties',
    array(
     ['hccLidnr'       => $hccLidnr,
      'JoomlaToken'    => $JoomlaToken,]
     ['Groepering'     => $hccGroepering,]
     ['ServerID'       => gethostname(),] 
     ['SiteID'         => $siteID,]
     ['RemoteID'       => $remoteIPaddress,]
     ['JoomlaFilter'   => '' | 'TRUE',]
     ['KadernetFilter' => '' | 'TRUE']));
Output positief:
  $reply = array(
    'Action'         => 'GeefLocaties',
    'Status'         => 'TRUE',
    'Message'        => 'Locaties opgevraagd',
    'Locaties'       => $locaties,
   ['JoomlaFilter'   => 'TRUE',]
   ['KadernetFilter' => 'TRUE']);
Output negatief:
  $reply = array(
    'Action'         => 'GeefLocaties',
    'Status'         => 'FALSE',
    'Message'        => 'Locaties niet beschikbaar',
    'ExtraInfo'      => 'Geen locaties gevonden voor groepering $hccGroepering',
   ['JoomlaFilter'   => 'TRUE',]
   ['KadernetFilter' => 'TRUE']);

// A.8 Registreer een niet-hcclid als bezoeker tijdens een bijeenkomst
// (authenticatie op basis van AccountNaam en AccountCode)
  $request = xmlrpc_encode_request(
    'RegistreerGast',
    array(
      'AccountNaam'   => $lidnr,        // credentials
      'AccountCode'   => $AccountCode,  // credentials
      'token'         => $token,        // credentials
      'Bijeenkomst'   => $groepering,
      'geslacht'      => $geslacht,
      'naam'          => $naam,
      'mail'          => $mail,
      'postcode'      => $postcode,
      'huisnummer'    => $huisnummer,
      'buitenland'    => $buitenland,
     ['nietLidNummer' => $nietLidNummer,]
     ['instructies'   => $instructies,]
     ['ServerID'      => gethostname(),] 
     ['SiteID'        => $siteID,]
     ['RemoteID'      => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'  => $aanroep,
    'Status'  => 'TRUE',
    'Message' => 'Niet-lid als bezoeker geregistreerd',
    'Result'  => $result_array);

// A.9 Geef het array met alle locatienamen
// (geen authenticatie)
  $request = xmlrpc_encode_request(
    'GeefLocatieNamen',
    array(
     ['hccLidnr'       => $hccLidnr,
      'JoomlaToken'    => $JoomlaToken,]
     ['ServerID'       => gethostname(),] 
     ['SiteID'         => $siteID,]
     ['RemoteID'       => $remoteIPaddress,]
     ['JoomlaFilter'   => '' | 'TRUE',]
     ['KadernetFilter' => '' | 'TRUE']));

Output positief:
  $reply = array(
    'Action'         => 'GeefLocatieNamen',
    'Status'         => 'TRUE',
    'Message'        => 'Locaties opgevraagd',
    'Locaties'       => $locaties,
   ['JoomlaFilter'   => 'TRUE',]
   ['KadernetFilter' => 'TRUE']);
Output negatief:
  $reply = array(
    'Action'         => 'GeefLocatieNamen',
    'Status'         => 'FALSE',
    'Message'        => 'Locatienamen niet beschikbaar',
    'ExtraInfo'      => 'Geen locatienamen gevonden',
   ['JoomlaFilter'   => 'TRUE',]
   ['KadernetFilter' => 'TRUE']);

// A.10 Schrijf een niet-lid in op een bulletin					?? NIET GEBRUIKT ??
//      Deze aanroep mag *ook* worden gebruikt om een wel-lid in te schrijven.
//      Voorwaarde is dat bewezen is dat er controle bestaat over het opgegeven email adres
  $request = xmlrpc_encode_request(
    'SchrijfNietlidInOpBulletin',
    array(
      'beheerLogin'    => $beheerLogin,    // xml-rpc user
      'beheerPassword' => $beheerPassword, // xml-rpc password
      'hccOptin’       => $hccOptin,       // bulletin waarop ingeschreven wordt
      'hccOptinSource’ => $hccOptinSource, // site waar aanmelding vandaan komt
      'Email'          => $Email,          // niet-lid: email adres
      'Naam'           => $Naam,           // niet-lid: naam
     ['hccLidNummer'   => $hccLidNummer,]  // optioneel: ik ben lid, dit is mijn lidnummer
     ['Postcode'       => $Postcode,]      // optioneel: niet-lid: postcode
     ['Huisnummer'     => $Huisnummer,]    // optioneel: niet-lid: huisnummer
     ['hccGeslacht'    => $hccGeslacht,] // optioneel: niet-lid: geslacht (M/V/O)
     ['ServerID'       => gethostname(),] 
     ['SiteID'         => $siteID,]
     ['RemoteID'       => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'    => 'SchrijfNietlidInOpBulletin',
    'Status'    => 'TRUE',
    'Message'   => 'Inschrijving op bulletin gelukt');
Output negatief:
  $reply = array(
    'Action'    => 'SchrijfNietlidInOpBulletin',
    'Status'    => 'FALSE',
    'Message'   => 'Onjuiste credentials' |
                   'Gegevenscombinatie onjuist',
    'ExtraInfo' => 'Invalid DN syntax'    |
                   'Invalid credentials');

// ** HenZ **
// ** t.b.v. daily cron job  **
// ** t.b.v. dagelijkse opschoon jobs Joomla template sites **
// C.1 Vraag de lijst met uitgeschreven leden op
//     Dit kan beperkt worden tot een bepaalde regio of interessegroep
//     Daarnaast kan het tijdvak waarin gezocht wordt vrij gekozen worden
//     (gesteld dat de LDAP database nog leden uit die periode bevat)
//     Antwoord: lijst met (lidnummer, hccLogin, sn,
//                          datum einde lidmaatschap (formaat:YYYYMMDD))

==> GeefUitgeschrevenLeden <== (oud: GeefOpgezegdeLeden)

  $request = xmlrpc_encode_request(
    'GeefUitgeschrevenLeden',
    array(
      'beheerLogin'    => $beheerLogin,
      'beheerPassword' => $beheerPassword,
      'hccRegio'       => $hccRegio,    // of leeg
      'hccIg'          => $hccIg,       // of leeg
      'datum_vanaf'    => $datum_sinds, // YYYY-MM-DD of YYYYMMDD of leeg (leeg: 3 dagen geleden)
      'datum_tot'      => $datum_tot,   // YYYY-MM-DD of YYYYMMDD of leeg (leeg: vandaag)
     ['ServerID'       => gethostname(),] 
     ['SiteID'         => $siteID,]
     ['RemoteID'       => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'      => 'GeefUitgeschrevenLeden',
    'Status'      => 'TRUE',
    'Message'     => 'Uitgeschreven leden',
   ['hccRegio'    => $hccRegio,]
   ['hccIg'       => $hccIg,]
   ['datum_vanaf' => $datum_vanaf,]
   ['datum_tot'   => $datum_tot,]
   ['Results' => array(
     [array(
        'hccLogin'               => $hccLogin,
        'hccLidNummer'           => $hccLidnummer,
        'sn'                     => $sn,
        'DatumEindeLidmaatschap' => $DatumEindeLidmaatschap)]*);
Output negatief:
  $reply = array(
    'Action'  => 'GeefUitgeschrevenLeden',
    'Status'  => 'FALSE',
    'Message' => 'Onjuiste credentials');

HCCpartner aanroepen

(interface versie 1)
(oude interface, niet meer gebruiken!)

// ** t.b.v. controle op hcc lidmaatschap door hcc partner **
// D.1 Controleer of iemand lid is op basis van lidnummer en postcode
//     Antwoord: TRUE of FALSE
  $request = xmlrpc_encode_request(
    'HCCpartner',
    array('ControleerHCCLidmaatschap',
    array('partnerLogin',    $partnerLogin),
    array('partnerPassword', $partnerPassword),
    array('hccLidnummer',    $hcclidnummer),
    array('postcode',        $postcode)));
Output positief:
  $reply = array(
    'HCCpartner',
    array('Action', 'ControleerHCCLidmaatschap'),
    array('Status', 'TRUE'));
Output negatief:
  $reply = array(
    'HCCpartner',
    array('Action', 'ControleerHCCLidmaatschap'),
    array('Status', 'FALSE'));
  $reply = array(
    'HCCpartner',
    array('Action',  'ControleerHCCLidmaatschap'),
    array('Status',  'FALSE'),
    array('Message', 'Onjuiste credentials'));

// onbekende aanroep
  $request = xmlrpc_encode_request(
     'HCCpartner',
     array(
       'OnbekendeAanroep',
       array('parameter', $iets)));
Output negatief:
  $reply = array(
    'HCCpartner',
    array('Action',  'OnbekendeAanroep'),
    array('Status',  'FALSE'),
    array('Message', 'Opdracht onbekend'));

HCCpartners aanroepen

(interface versie 2)

// ** t.b.v. controle op hcc lidmaatschap door hcc partner **
// D.2 Controleer of iemand lid is op basis van lidnummer en postcode
//     Antwoord: TRUE of FALSE
  $request = xmlrpc_encode_request(
    'HCCpartners',
    array(
      'Action'          => 'ControleerHCCLidmaatschap',
      'partnerLogin'    => $partnerLogin,
      'partnerPassword' => $partnerPassword,
      'hccLidnummer'    => $hcclidnummer,
      'postcode'        => $postcode,
     ['ServerID'        => gethostname(),] 
     ['SiteID'          => $siteID,]
     ['RemoteID'        => $remoteIPaddress]));
Output positief:
  $reply = array(
    '0'      => 'HCCpartners',
    'Action' => 'ControleerHCCLidmaatschap',
    'Status' => 'TRUE',
   ['ExtraInfo' => 'groepering=$groepering']); // als de partner beperkt is tot 1 groepering
Output negatief:
  $reply = array(
    '0'      => 'HCCpartners',
    'Action' => 'ControleerHCCLidmaatschap',
    'Status' => 'FALSE');
  $reply = array(
    '0'       => 'HCCpartners',
    'Action'  => 'ControleerHCCLidmaatschap',
    'Status'  => 'FALSE',
    'Message' => 'Onjuiste credentials');

// onbekende aanroep
  $request = xmlrpc_encode_request(
    'HCCpartners',
    array(
      'Action'    => 'OnbekendeAanroep',
      'parameter' => $iets));
Output negatief:
  $reply = array(
    '0'       => 'HCCpartners',
    'Action'  => 'OnbekendeAanroep',
    'Status'  => 'FALSE',
    'Message' => 'Opdracht onbekend');

HCC-kader aanroepen

// ** beheer.hcc.nl **
// F.2 Controleer of dit een kaderlid is
// (authenticatie op basis van hccLogin en userPassword)
  $request = xmlrpc_encode_request(
    'IsKaderLid',
    array(
      'hccLogin'     => $hccLogin,
      'userPassword' => $userPassword,
     ['ServerID'     => gethostname(),] 
     ['SiteID'       => $siteID,]
     ['RemoteID'     => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'          => 'IsKaderLid',
    'Status'          => 'TRUE',
    'Message'         => 'Is kaderlid',
    'hccLidnr'        => $hccLidnr,
    'cn'              => $cn,
    'sn'              => $sn,
    'hccRol'          => $hccRol,
    'mail'            => $mail,
    'mailHccnet'      => $mailHccnet,
    'hccKaderMail'    => $hccKaderMail,
    'hccKaderForward' => $hccKaderForward);
Output negatief:
  $reply = array(
    'Action'  => 'IsKaderLid',
    'Status'  => 'FALSE',
    'Message' => 'Onjuiste credentials' | 'Is geen kaderlid');

// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **
// F.4 Vraag alle groeperingen op
// Het is mogelijk om een groepering te onderdrukken, als er in LDAP '''een''' waarde in een opgegeven attribuur aanwezig is.
// (iedere waarde anders dan een lege string wordt behandeld alsof 'TRUE' gegeven is)
//  JoomlaFilter            : attribuut 'hccToonInJoomla'
//  ToonInOverzichtenFilter : attribuut 'hccToonInOverzichten'
//  KadernetFilter          : attribuut 'hccToonOpKaderNet'
//  BulletinsFilter         : attribuut 'hccBulletins'
//  EmailFilter             : attribuut 'hccFunctionalEmail'
// (geen authenticatie)
  $request = xmlrpc_encode_request(
    'GeefAlleGroeperingen',
    array(
     ['hccLidnr'                => $hccLidnr,
      'JoomlaToken'             => $JoomlaToken,]
     ['ServerID'                => gethostname(),] 
     ['SiteID'                  => $siteID,]
     ['RemoteID'                => $remoteIPaddress,]
     ['JoomlaFilter'            => '' | 'TRUE',]
     ['ToonInOverzichtenFilter' => '' | 'TRUE',]
     ['KadernetFilter'          => '' | 'TRUE',]
     ['BulletinsFilter'         => '' | 'TRUE',]
     ['EmailFilter'             => '' | 'TRUE']));
Output positief:
  $reply = array(
    'Action'                  => 'GeefAlleGroeperingen',
    'Status'                  => 'TRUE',
    'Message'                 => 'Lijst met groeperingen opgevraagd',
    'Result'                  => $groeperingen,
   ['JoomlaFilter'            => 'TRUE',]
   ['ToonInOverzichtenFilter' => 'TRUE',]
   ['KadernetFilter'          => 'TRUE']);
     
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina **
// F.5 Vraag alle kaderrollen op
// Desgewenst worden alle resultaten waarbij hccToonInJoomla aan staat onderdrukt
// (iedere waarde anders dan een lege string wordt behandeld alsof 'TRUE' gegeven is)
// Desgewenst worden alle resultaten waarbij ToonOpKaderNet aan staat onderdrukt
// (iedere waarde anders dan een lege string wordt behandeld alsof 'TRUE' gegeven is)
// (geen authenticatie)
  $request = xmlrpc_encode_request(
    'GeefAlleKaderRollen',
    array(
     ['hccLidnr'       => $hccLidnr,
      'JoomlaToken'    => $JoomlaToken,]
     ['ServerID'       => gethostname(),] 
     ['SiteID'         => $siteID,]
     ['RemoteID'       => $remoteIPaddress,]
     ['JoomlaFilter'   => '' | 'TRUE',]
     ['KadernetFilter' => '' | 'TRUE']));
Output positief:
  $reply = array(
    'Action'         => 'GeefAlleKaderRollen',
    'Status'         => 'TRUE',
    'Message'        => 'Lijst met kaderrollen opgevraagd',
    'Result'         => $kaderrollen,
   ['JoomlaFilter'   => 'TRUE',]
   ['KadernetFilter' => 'TRUE']);

// ** t.b.v. de kantoor-beheerpagina **
// F.9 Geef de gevevens van de mailbox van dit kaderlid
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)
 $request = xmlrpc_encode_request(
    'GeefKadermailGegevens',
    array(
      'beheerLogin'     => $beheerLogin,
      'beheerPassword'  => $beheerPassword,
      'hccLidnummer'    => $hccLidnummer));
Output positief:
  $reply = array(
    'Action'  => 'GeefKadermailGegevens',
    'Status'  => 'TRUE',
    'Message' => 'Gebruiker(s) gevonden',
    'kadermail_omvang'           => $Formaat,
    'kadermail_aantal_inbox'     => $aantal_inbox,
    'kadermail_aantal_nieuw'     => $aantal_nieuw,
    'kadermail_laatst_opgehaald' => $laatst_opgehaald);
Output negatief:
  $reply = array(
    'Action'  => 'GeefKadermailGegevens',
    'Status'  => 'FALSE',
    'Message' => 'Onjuiste credentials' |
                 'Gegevenscombinatie onjuist' |
                 'Vul alle verplichte velden in!',
   ['ExtraInfo' => 'Invalid credentials' |
                   'lidnummer <hccLidnummer> is geen kaderlid'));

HCC-groepering aanroepen


// I.2 controleer of een gebruiker bestaat op basis van de combinatie
//     lidnummer + postcode + huisnummer
// (authenticatie op basis van beheerder hccLogin en beheerder userPassword)
// (alternatieve authenticatie mogelijk door lidnummer + hcc-code in te vullen)
//
// Aan de aanroeper worden zekere eisen gesteld:
// * dient een rol te vervullen binnen de groepering 'FOR'(forum)
// * dan wel dient de rol 'VRBK' (vraagbaak) te vervullen binnen een groepering
//
// Er wordt door de gehele leden-database gezocht, waarna terug wordt gegeven 
// * of dit hcc lid inderdaad bestaat
// en, als het om een aanvraag van een vraagbaak vrijwilliger gaat, 
// * tevens of het gezochte hcc lid deel uitmaakt van zijn groepering

  $request = xmlrpc_encode_request(
    'IsHCCLid',
    array(
      'hccLogin'        => [$hccLogin | $hccLidnummer],
      'userPassword'    => [$userPassword | $hccCode],
      'zoekhccLidnr'    => $zoekhccLidnr,
      'zoekhccPostcode' => $zoekhccPostcode,
      'zoekhccHuisnr'   => $zoekhccHuisnr,
      'zoekgroepering'  => $zoekgroepering));
Output positief:
  $reply = array(
    'Action'  => 'IsHCCLid',
    'Status'  => 'TRUE',
    'Message' => 'Gebruikersgegevens gecontroleerd',
   ['Groeperingslid' => $IsGroeperingLid]));
Output negatief:
  $reply = array(
    'Action'  => 'IsHCCLid',
    'Status'  => 'FALSE',
    'Message' => 'Gebruiker bestaat niet' |
                 'Onjuiste credentials' |
                 'Wel HCC lid, maar geen lid van groepering $groepering' |
                 'Onvoldoende rechten' |
                 'Vul alle verplichte velden in!'));

HenZ aanroepen


// I.3 Geef de einddatum van een actief dan wel uitgeschreven lid
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord)
  $request = xmlrpc_encode_request(
    'GeefhccEindDatum',
    array(
      'beheerLogin'    => $beheerLogin,
      'beheerPassword' => $beheerPassword,
      'hccLidnummer'   => $hccLidnummer,
     ['ServerID'       => gethostname(),] 
     ['SiteID'         => $siteID,]
     ['RemoteID'       => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'       => 'GeefhccEindDatum',
    'Status'       => 'TRUE',
    'hccLidnummer' => $hccLidnummer,
    'hccLogin'     => $hccLogin,
    'hccEindDatum' => $hccEindDatum ('yyyymmdd' | ''));
Output negatief:
  $reply = array(
    'Action'    => 'GeefhccEindDatum',
    'Status'    => 'FALSE',
    'Message'   => 'Gegevenscombinatie onjuist'
    'ExtraInfo' => 'Invalid credentials' |
                   'Lidnummer niet gevonden');

(Forum,vraagbaak) onderwerpen

// L.1 MaakOnderwerp
  $request = xmlrpc_encode_request(
    'MaakOnderwerp',
    array(
      'hccLidnr'    => $hccLidnr,
      'JoomlaToken' => $JoomlaToken,
      'ServerID'    => gethostname(),
      'SiteID'      => $siteID,
      'RemoteID'    => $remoteIPaddress,
      'description' => $description,
      'groepering'  => $groepering));
Output positief:
  $reply = array(
    'Action'      => 'MaakOnderwerp',
    'Status'      => 'TRUE',
    'Message'     => 'Onderwerp is aangemaakt',
    'onderwerp'   => $onderwerpID,
    'description' => $description);
Output negatief:
  $reply = array(
    'Action'    => 'MaakOnderwerp',
    'Status'    => 'FALSE',
    'Message'   => 'Gegevenscombinatie onjuist'
    'ExtraInfo' => 'Vul alle verplichte velden in!' |
                   'Onjuist JoomlaToken' |
                   'Geen webmaster');

// L.2 VerwijderOnderwerp

$request = xmlrpc_encode_request(
    'VerwijderOnderwerp',
    array(
      'hccLidnr'    => $hccLidnr,
      'JoomlaToken' => $JoomlaToken,
      'ServerID'    => gethostname(),
      'SiteID'      => $siteID,
      'RemoteID'    => $remoteIPaddress,
      'onderwerp'   => $onderwerpID));
Output positief:
  $reply = array(
    'Action'      => 'VerwijderOnderwerp',
    'Status'      => 'TRUE',
    'onderwerp'   => $onderwerpID,
    'Message'     => 'Onderwerp is verwijderd',
    'description' => $description);
Output negatief:
  $reply = array(
    'Action'    => 'VerwijderOnderwerp',
    'Status'    => 'FALSE',
    'Message'   => 'Gegevenscombinatie onjuist'
    'ExtraInfo' => 'Vul alle verplichte velden in!' |
                   'Onjuist JoomlaToken'            |
                   'Geen webmaster'                 |
		   'Onderwerp bestaat niet'         |
		   'Ruim eerst alle geautoriseerde gebruikers op' |
		   'Kan onderwerp niet verwijderen');

// L.3 GeefOnderwerpen 
// Geef het array met de lijst van onderwerpen voor de betreffende groepering
//
$request = xmlrpc_encode_request(
    'GeefOnderwerpen',
    array(
      'ServerID'    => gethostname(),
      'SiteID'      => $siteID,
      'RemoteID'    => $remoteIPaddress,
      'groepering'  => $groepering));
Output positief:
  $reply = array(
    'Action'      => 'GeefOnderwerpen',
    'Status'      => 'TRUE',
    'Message'     => 'Onderwerpen opgevraagd',
    'onderwerpen' => $onderwerpen); // het array met onderwerpen
Output negatief:
  $reply = array(
    'Action'    => 'GeefOnderwerpen',
    'Status'    => 'FALSE',
    'Message'   => 'Gegevenscombinatie onjuist'
    'ExtraInfo' => 'Vul alle verplichte velden in!');

// L.4 MuteerOnderwerp
// Pas de description van een onderwerp aan
//
$request = xmlrpc_encode_request(
   'MuteerOnderwerp',
   array(
      'hccLidnr'    => $hccLidnr,
      'JoomlaToken' => $JoomlaToken,
      'ServerID'    => gethostname(),
      'SiteID'      => $siteID,
      'RemoteID'    => $remoteIPaddress,
      'groepering'  => $groepering,
      'description' => $description,
      'onderwerp'   => $onderwerpID));
Output positief:
  $reply = array(
    'Action'      => 'MuteerOnderwerp',
    'Status'      => 'TRUE',
    'Message'     => 'Onderwerp aangepast',
    'onderwerp'   => $onderwerpID,
    'description' => $description);
Output negatief:
  $reply = array(
    'Action'    => 'MuteerOnderwerp',
    'Status'    => 'FALSE',
    'Message'   => 'Gegevenscombinatie onjuist'
    'ExtraInfo' => 'Vul alle verplichte velden in!' |
                   'Onjuist JoomlaToken' |
                   'Geen webmaster' |
		   'Onderwerp bestaat niet' |
		   'Onderwerp behoort bij andere groepering');

// L.5 MuteerOnderwerpAutorisatie
// Geef kaderlid $kaderLidNr de autorisatie MOD of VRBK bij onderwerp $onderwerp
// (of haal die autorisatie weg)
$request = xmlrpc_encode_request(
    'MuteerOnderwerpAutorisatie',
    array(
      'hccLidnr'       => $hccLidnr,
      'JoomlaToken'    => $JoomlaToken,
      'ServerID'       => gethostname(),
      'SiteID'         => $siteID,
      'RemoteID'       => $remoteIPaddress,
      'groepering'     => $groepering,
      'onderwerp'      => $onderwerpID,
      'kaderLidNr'     => $kaderLidNr,
      'hccAutorisatie' => 'MOD' | 'VRBK',
     ['verwijder'      => 'TRUE']));
Output positief:
  $reply = array(
    'Action'      => 'MuteerOnderwerpAutorisatie',
    'Status'      => 'TRUE',
    'Message'     => 'Onderwerp autorisatie aangepast');
Output negatief:
  $reply = array(
    'Action'    => 'MuteerOnderwerpAutorisatie',
    'Status'    => 'FALSE',
    'Message'   => 'Gegevenscombinatie onjuist'
    'ExtraInfo' => 'Vul alle verplichte velden in!' |
                   'Onjuist JoomlaToken' |
                   'Geen webmaster' |
		   'Geen kaderlid' |
		   'Onjuiste autorisatie opgegeven' |
		   'Onderwerp bestaat niet');

* L.6 ToonOnderwerpAutorisatie
$request = xmlrpc_encode_request(
    'ToonOnderwerpAutorisatie',
    array(
      'hccLidnr'    => $hccLidnr,
      'JoomlaToken' => $JoomlaToken,
      'ServerID'    => gethostname(),
      'SiteID'      => $siteID,
      'RemoteID'    => $remoteIPaddress,
      'onderwerp'   => $onderwerpID));
Output positief:
  $reply = array(
    'Action'       => 'ToonOnderwerpAutorisatie',
    'Status'       => 'TRUE',
    'Message'      => 'Autorisaties opgehaald',
    'onderwerp'    => $onderwerpID,
    'description'  => $description,
    'autorisaties' => 
      [Array(
        'hccLidnummer'    => $hccLidnummer
        'cn'              => $cn
        'hccAutorisatie'  => {komma-gescheiden autorisaties})]);
Output negatief:
  $reply = array(
    'Action'    => 'ToonOnderwerpAutorisatie',
    'Status'    => 'FALSE',
    'Message'   => 'Gegevenscombinatie onjuist'
    'ExtraInfo' => 'Vul alle verplichte velden in!' |
                   'Onjuist JoomlaToken' |
                   'Geen webmaster' |
		   'Onderwerp bestaat niet');

Echo test


// t.b.v. controle of de verbinding met de XML-RPC server functioneert
// Eenvoudige echo test

  $request = xmlrpc_encode_request(
    'echo',
    array(
      'What'     => $string,
     ['ServerID' => gethostname(),] 
     ['SiteID'   => $siteID,]
     ['RemoteID' => $remoteIPaddress]));
Output positief:
  $reply = array(
    'Action'  => 'echo',
    'Status'  => 'TRUE',
    'Message' => $string);

HenZ XML-RPC interface

Overzicht van XML-RPC procedures die bij HenZ draaien (worden via de Hobbynet XML-RPC server afgehandeld)

- Action=2
  wijzig gebruikersnaam en wachtwoord op basis van hcclidnummer en de hash van de hcccode.
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)

- Action=3
  controleer of een gebruikersnaam bestaat
  (XML-RPC server voert de hccnet XML-call uit, zie 8.2)

- Action=4
  creer een nieuwe gebruiker. Per lidnummer is er 1 account. Als er al een 
  account voor dit lidnummer bestaat wordt het bestaande account hernoemd.
  (XML-RPC server voert de hccnet XML-call uit, zie 8.1)

- Action=5
  wijzig wachtwoord op basis van hcclidnummer en de hash van de hcccode.
  (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server)
  (XML-RPC server voert de hccnet XML-call uit, zie 2.1, 2.2 en 2.3)

- Action=7
  Uitgeschreven lid is weer actief lid geworden
  (Wordt aangeroepen vanuit de cronjob)

- Action=8
  Lid heeft een nieuwe hcc-code gekregen
  (Wordt aangeroepen vanuit de cronjob)

Release notes

2012.02.08 Wijzigingen versie 5:
 - 4.1 verwijder_hcc_Lidnummer i.p.v. hcc_Lidnummer
 - 4.1 optionele extra parameter verwijder_hccLogin
 - Optionele parameters aangegeven
 - Vanwege de duidelijkheid de beheerLogin en beheerPassword velden
   bovenin de betreffende aanroepen gezet
   (De volgorde van de parameters is niet relevant, dus dit is geen
    interface-aanpassing)
2012.02.16 Wijzigingen versie 6:
 - 2.1/2.2/2.3 geef ook cn en sn terug na aanpassen van het wachtwoord
 - 3.1 geef cn en sn terug na aanmaken nieuwe gebruiker
2012.02.27 Wijzigingen versie 7:
 - Neem de XML-RPC interface van HenZ in deze XML-RPC server op
   8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gegevens tevens in LDAP op
 - 2.1 wijzig wachtwoord - optie 1
   * Nieuw wachtwoord is verplicht, niet optioneel
   * wijzigingen worden naar hccnet.nl doorgezet
 - 2.2 wijzig wachtwoord, optie 2
   * Nieuw wachtwoord is verplicht, niet optioneel
   * gebruikersnaam kan niet meer via deze interface aangepast worden
   * wijzigingen worden naar hccnet.nl doorgezet
 - 2.3 wijzig wachtwoord, optie 3
   * wijzigingen worden naar hccnet.nl doorgezet
2012.03.26 Wijzigingen versie 8:
  - Breidt de XML-RPC interface van HenZ in deze XML-RPC server uit met
    8.2 Controleer of de gebruikersnaam op dit moment bestaat
2012.04.09 Wijzigingen versie 9:
 - Vervang alle 'ldap' aanroepen door 'HCCldap' aanroepen
 - documentatie van HenZ call action=2 aangepast, action=5 toegevoegd
2012.05.03 Wijzigingen versie 10:
 - 1.1 / 1.2 / 1.3 geven nu ook 'ProfielBekend' terug om uniek te bepalen
   of deze bezoeker een first-time-login pagina te zien dient te krijgen
 - documentatie van 2.1 (wijzig wachtwoord) aangepast: 
   2.1 kan alleen als profiel is doorlopen
 - nieuwe procedure t.b.v. zoekscherm PC30
   * A.1 ZoekHCCLid 
     - hiervoor is de database met diverse velden uitgebreid
       (postcode, e-mailadres, huisadres, woonplaats, land, telefoonnummer)
       Dit heeft impact op diverse andere procedures (t.b.s.)
 - nieuwe procedure t.b.v. 'gewone' profielpagina
   * B.1 GeefDBFPersoonID
 - nieuwe procedure t.b.v. cron-job
   * C.1 GeefOpgezegdeLeden
2012.05.10 Wijzigingen versie 11
 - 1.3 GebruikerBestaatControle
   * nieuwe parameter: hccPseudoniem
   * nieuw veld in antwoord: hccPseudoniem
 - 2.3 WijzigGebruikersGegevens
   * nieuwe parameter: hccPseudoniem
 - 2.4 WijzigGebruikersGegevens
   * nieuwe parameter: hccPseudoniem
 - 3.1 NieuweGebruiker
   * nieuwe parameter: hccPseudoniem
 - 8.1 MaakGebruikerAan
   * nieuwe parameter: nieuw_hccPseudoniem
   * alle parameters zijn verplicht (niet langer optioneel)
   * nieuw antwoord: Gegevenscombinatie onjuist
 - 8.3 IsDezePseudoniemNogBeschikbaar
   * Nieuwe procedure t.b.v. 1e keer doorlopen profielpagina
 - A.1 ZoekHCCLid
   * 'Zoeklimiet bereikt' wordt als ExtraInfo meegegeven
   * nieuwe velden in antwoord: hccPseudoniem en hccLogin
 - B.1 GeefDBFPersoonID
   * Zoeken kan nu ook op hccLogin en op hccPseudoniem
 - C.1 GeefOpgezegdeLeden
   * Geef nu ook hccLogin en hccPseudoniem terug
2012.05.14 Wijzigingen versie 12
 - 1.x GebruikerBestaatControle
   * Geef ook DBFPersoonID terug
 - 4.1 Gooi een gebruiker weg.
   * Haal ongebruikte parameter hccLogin weg
 - 5.1 Wijzig hccIG
   * Haal ongebruikte parameter hccLogin weg
 - 6.1 Wijzig hccRegio
   * Haal ongebruikte parameter hccLogin weg
 - 7.1 Wijzig hccRol
   * Haal ongebruikte parameter hccLogin weg
2012.05.20 Wijzigingen versie 13
 - A.1 ZoekHCCLid 
   * Geef resultaten gestructureerder formaat
   * Geef in ExtraInfo weer hoeveel echte resultaten er gevonden zijn
 - C.1 GeefOpgezegdeLeden 
   * Geef resultaten in gestructureerder formaat
2012.06.03 Wijzigingen versie 14
 - 3.1 NieuweGebruiker
   * Geef ook DBFPersoonID mee
2012.08.17 Wijzigingen versie 15
 - C.1 GeefOpgezegdeLeden 
   * Geef ook hccLogin in het antwoord terug
 - D.1 HCCpartner/ControleerHCCLidmaatschap
   * Nieuwe aanroep
2012.09.29 Wijzigingen versie 16
 - Alle cron gerelateerde opdrachten verwijderd
   * 3.1 NieuweGebruiker
   * 4.1 GooiGebruikerWeg
   * 5.1 WijzigHccIG
   * 6.1 WijzigHccRegio
   * 7.1 WijzigHccRol
2012.10.28 Wijzigingen versie 17
 - nieuwe procedure t.b.v. PC30 beheerpagina
   * A.2 HaalPC30Token
 - nieuwe procedure t.b.v. Drupal profielpagina
   * 2.4 vervallen 
     (WijzigGebruikersGegevens op basis van pseudoniem)
   * 2.5 WijzigGebruikersGegevens
     Nieuwe keuze: wijzig pseudoniem
2012.11.14 Wijzigingen versie 18
 - 1.x GebruikerBestaatControle
   * Geef ook mail in het antwoord terug
2012.11.30 Wijzigingen versie 19
 - E.1 HCCkader/WijzigGebruikersGegevens
   * Nieuwe aanroep
 - F.1 / F.2 / F.3 ControleerKaderlid
   * Nieuwe aanroep
2012.12.18 Wijzigingen versie 20
 - Haal DBFPersoonID weg uit alle aanroepen en alle resultaten
   * Antwoord van 1.x GebruikerBestaatControle
   * B.1 GeefDBFPersoonID opgeheven
 - A.1 ZoekHCCLid geeft nu ook hccMobiel terug (t.b.v. PC30 zoekpagina)
 - C.1 GeefOpgezegdeLeden verder uitgewerkt:
   * Geeft alleen de door Drupal gebruikte velden 'hccLogin' en 'hccEindDatum'
     terug in het antwoord
   * Geeft nu 'echte' antwoorden i.p.v. dummy resultaten
 - F.1 ControleerKaderlid geeft nu ook optioneel 'sn' en 'givenName' 
     terug (in de beheer-variant)
2013.01.25 Wijzigingen versie 21
 - A.1 ZoekHCCLid uitgebreid
   * Geeft nu ook hccBeginDatum, hccEindDatum en hccRol terug
2013.02.02 Wijzigingen versie 22
 - A.1 ZoekHCCLid
   * Interface aangepast
 - A.3 ZoekGroeperingsLid
   * Nieuwe aanroep
 - F.4 GeefAlleGroeperingen
   * Nieuwe aanroep
 - F.5 GeefAlleKaderRollen
   * Nieuwe aanroep
2013.03.01 Wijzigingen versie 23
 - A.3 ZoekGroeperingsLid
   * Geeft andere resultaten terug
 - 2.2 WijzigWachtwoord
   * Geeft nu ook hccLogin terug (voor ww-vergeten op de Drupal site)
 - HCCenquete implementatie
   * G.1 Expandeer NL postcode
   * G.2 Haal lidgegevens op
   * G.3 Pas lidgegevens aan
2013.03.18 Wijzigingen versie 24
 - ZoekGroeperingsLid op basis van token
 - A.4 Lid bezoekt bijeenkomst
   * nieuwe aanroep 
 - A.5 VraagLidgegevensTokenAan
   * nieuwe aanroep 
2013.04.07 Wijzigingen versie 25
 - D.1 HCCpartner/ControleerHCCLidmaatschap
   Simpeler interface ontwikkeld ('HCCpartners' i.p.v. 'HCCpartner')
 - G.3 mag ook Tussenvoegsels aanpassen
2013.04.25 Wijzigingen versie 26
 - H.1 HCC-groepering / GebruikerBestaatControle
   Nieuwe interface voor validatie vanaf groeperings websites
2013.05.03 Wijzigingen versie 27
 - 2.6 HaalOptInKeuzen
   * nieuwe aanroep 
 - 2.7 SchrijfOptInKeuzen
   * nieuwe aanroep 
 - 2.8 HaalOptInLijst
   * nieuwe aanroep 
 - I.1 HCC-forum / GebruikerBestaatControle
   * nieuwe aanroep
 - HCCpartners aanroep nieuwe interface ('Action' => 'ControleerHCCLidmaatschap')
2013.07.05 Wijzigingen versie 28
 - 8.1 MaakGebruikerAan
   * extra parameters (mail, hccPseudoniem) in het antwoord
 - 1.1/1.2/1.3 GebruikerBestaatControle
   * extra parameter (mailHccnet)
 - A.1 ZoekHCCLid
   * extra parameter (mailHccnet)
 - A.3 ZoekGroeperingsLid
   * extra parameter (mailHccnet)
2013.08.31 Wijzigingen versie 29
 - F.1 / F.2 / F.3 HCC-kader / ControleerKaderlid
   * extra output parameter (hccKaderMail)
 - 1.1/1.2/1.3 GebruikerBestaatControle
   * extra output parameter (hccForumLogin)
 - H.1 HCC-groepering / GebruikerBestaatControle
   * komma-gescheiden lijst met groeperingen mogelijk
   * extra output parameter (mailHccnet)
2013.12.26 Wijzigingen versie 30
 - 3.1 Geef mijn lidnummer
   * nieuwe aanroep
 - A.1 ZoekHCCLid
   * geef nu ook 'ProfielBekend' terug om aan de PC30 omgeving door te geven
     dat het wachtwoord niet veranderd mag worden door PC30
 - A.6 GeefBezoekersOverzicht
   * geef nu ook 'Locatie' terug indien van toepassing
 - A.7 GeefLocaties
   * nieuwe aanroep
 - I.1 HCC-forum / GebruikerBestaatControle
   * parameters aangepast
   * authenticatie op basis van hccLogin + userPassword of lidnummer + hcc-code
   * geen algemene hcc-forum authenticatie meer mogelijk
 - F.7 ControleerKaderlidGroep
   * Nieuwe aanroep
2014.02.01 Wijzingingen versie 31
 - A.8 RegistreerGast
   * nieuwe aanroep
 - H.2 MatchPostcodeMetRegio
   * nieuwe aanroep
 - nieuwe interface (losse, unieke aanroepen, niet meer gegroepeerd)
2014.09.27 Wijzigingen versie 32
 - C.1 GeefOpgezegdeLeden hernoemd naar GeefUitgeschrevenLeden
 - I.3 GeefhccEindDatum
   * nieuwe aanroep
 - Action=7 en Action=8 toegevoegd aan de HenZ interface
2014.12.12 Wijzigingen versie 33
 - F.1 / F.2 / F.3 HCC-kader / IsKaderLid
   * extra output parameter (mail, mailHccnet, hccKaderForward)
 - F.8 HCC-kader / ZetKaderForward
   * nieuwe aanroep
2015.05.06 Wijzigingen versie 34
 - GeefMijnGegevens
   * nieuwe aanroep
 - ValideerPCActiveAbonnee
   * vervallen
 - 1.4 GebruikerBestaatControle
   * extra output parameter (hccKaderForward)
 - D.1 HCCpartner/ControleerHCCLidmaatschap
   * optionele extra output parameter (ExtraInfo)
2015.09.27 Wijzigingen versie 35
 - HeeftForumCredentials
   * vervallen
2015.11.20 Wijzigingen versie 36
 - SchrijfNietlidInOpBulletin
   * nieuwe aanroep
2015.12.13 Wijzigingen versie 37
 - serverID als optionele parameter
 - SchrijfNietlidInOpBulletin
   * Maak velden optioneel
2016.01.05 Wijzigingen versie 38
 - A.7 GeefLocaties
   * optionele parameter JoomlaFilter
 - F.4 GeefAlleGroeperingen
   * optionele parameter JoomlaFilter
 - F.5 GeefAlleKaderRollen
   * optionele parameter JoomlaFilter
2016.01.15 Wijzigingen versie 39
 - H.3 GeefMijnGegevens
   * geeft nu ook hccOptIn terug
   * geeft nu ook JoomlaToken terug
 - H.4 PasOptInKeuzeAan
   * nieuwe aanroep
 - SiteID en RemoteID als optionele parameter
2016.03.17 Wijzigingen versie 40
 - H.5 ZoekKaderLeden
   * nieuwe aanroep 
2016.03.20 Wijzigingen versie 41
 - ServerID, SiteID en RemoteID als optionele parameters bij alle aanroepen
 - A.7 GeefLocaties
   * optionele parameter KadernetFilter
 - A.9 GeefLocatieNamen
   * optionele parameter KadernetFilter
 - F.4 GeefAlleGroeperingen
   * optionele parameter KadernetFilter
 - F.5 GeefAlleKaderRollen
   * optionele parameter KadernetFilter
 - F.6 WijzigHccRol
   * vervallen
 - F.7 IsGroeperingsKaderlid
   * vervallen
 - 8.3 IsDezePseudoniemNogBeschikbaar
   * vervallen
 - 2.7 SchrijfOptInKeuzen
   * vervallen
 - 2.5 WijzigGebruikersGegevens (hccPseudoniem)
   * vervallen
 - H.2 MatchPostcodeMetRegio
   * vervallen
2016.04.02 Wijzigingen versie 42
 - H.6 GeefMijnKaderDetails
   * nieuwe aanroep 
2016.07.03 Wijzigingen versie 43
 - Ubuntu 16.04 aanpassingen (PHP versie 7) beschreven
2016.09.01 Wijzigingen versie 44
 - H.5 ZoekKaderLeden
   * extra parameter 'hccMobiel'
2016.10.13 Wijzigingen versie 45
 - H.3 GeefMijnGegevens (dedecated Joomla aanroep)
   * hccForumLogin weg als parameter
   * Als het om een webmaster gaat, vul dan eventueel hccRegio of hccIG aan 
     met die groepering, ook als hij geen lid is van die groepering
 - I.4 GebruikerBestaatControle
   * hccForumLogin weg als parameter
2016.12.01 Wijzigingen versie 46
 - 8.3 IsDezePseudoniemNogBeschikbaar teruggezet
2017.05.28 Wijzigingen versie 47
 - H.7 GeefMinimaleKaderGegevens (t.b.v. eenmalige kadermailing)
 - H.8 ZetMinimaleKaderGegevens  (t.b.v. eenmalige kadermailing)
2017.09.01 Wijzigingen versie 48
 - A.10 SchrijfNietlidInOpBulletin nu alleen voor 1 bulletin tegelijk
 - 2.2 WijzigGebruikersGegevens (op basis van gebruikersnaam en wachtwoord)
       is vervallen (was een oude Drupal aanroep)
 - A.3 ZoekGroeperingsLid geeft ook hccKaderToonMobiel terug
 - H.7 GeefMinimaleKaderGegevens geeft ook hccKaderToonMobiel terug
2017.11.14 Wijzigingen versie 49
 - A.3 ZoekGroeperingsLid geeft geen hccKaderToonMobiel meer terug
 - A.3 ZoekGroeperingsLid geeft alleen hccMobiel als hccKaderToonMobiel dat toestaat
2018.02.18 Wijzigingen versie 50
 - H.6 GeefMijnKaderDetails geeft ook hccKaderToonMobiel terug
 - H.9 PasKaderGegevensAan
   * nieuwe aanroep
 - H.3 GeefMijnGegevens geeft 3 extra parameters terug (hccKaderMail, hccKaderForward,
   hccKaderToonMobiel)
 - JoomlaTokens worden gevalideerd op siteID, niet langer op serverID
 - diverse aanroepen kunnen nu ook via de bezoekersregistratie-proxy aangeroepen worden. 
   Dan zullen ze hccLidnr en JoomlaToken als extra parameter moeten hebben:
   (GeefAlleGroeperingen, GeefAlleKaderRollen, GeefLocaties, GeefLocatieNamen)
   De bezoekersregistratie aanroepen hebben enkel JoomlaToken als extra parameter nodig:
   (LidBezoektBijeenkomst, GeefBezoekersOverzicht)
2018.02.26 Wijzigingen versie 51
 - H.3 GeefMijnGegevens geeft extra parameter hccMobiel terug 
 - H.9 PasKaderGegevensAan kan nu ook kadermail password aanpassen
 - K.1 ValideerToken
   * nieuwe aanroep
 - K.2 ValideerHCCCode
   * nieuwe aanroep
2018.03.17 Wijzigingen versie 52
 - H.3 Haal al mijn gegevens
   Extra optie 'compact' om alleen essentiele resultaten te verkrijgen
   (t.b.v. de Android bezoekersregistratie applicatie)
2018.03.25 Wijzigingen versie 53
 - I.2 IsHCCLid
   (Oude aanroep teruggezet, wordt nog in vraagbaak module gebruikt)
2018.07.01 Wijzigingen versie 54
   * A.1 beheer authenticatie op basis van lidnummer + hccCode (tbv VZ-portal)
   * A.2 HaalPC30Token weggehaald
2018.08.22 Wijzigingen versie 55
  * 1.2 GebruikerBestaatControle' (op basis van hccLogin en userPassword) weggehaald
  * 1.4 GebruikerBestaatControle' (op basis van zoekHccLogin of zoekHccLidnr) weggehaald
  * 2.8 HaalOptInLijst weggehaald
  * E.1 PasKaderWachtwoordAan weggehaald
  * F.1 IsKaderLid (op basis van hccLidnr en hccCode) weggehaald
  * F.3 IsKaderLid (op basis van beheerdernaam en beheerderwachtwoord) was al weg
  * F.8 ZetKaderForward weggehaald
  * H.1 IsGroeperingsLid weggehaald
  * H.6 GeefMijnKaderDetails weggehaald
  * H.7 GeefMinimaleKaderGegevens weggehaald
  * H.8 ZetMinimaleKaderGegevens weggehaald
  * K.1 ValideerHCCCode weggehaald
  * K.2 ValideerToken weggehaald
  * H.3 GeefMijnGegevens geeft omvang kader mailbox mee terug
2018.11.06 Wijzigingen versie 56
  Nieuwe aanroepen t.b.v. forum en vraagbaak autorisaties
  * L.1 MaakOnderwerp
  * L.2 VerwijderOnderwerp
  * L.3 GeefOnderwerpen (geef lijst van onderwerpen)
  * L.4 MuteerOnderwerp
  * L.5 MuteerOnderwerpAutorisatie
  * L.6 ToonOnderwerpAutorisatie
  * H.5 ZoekKaderLeden heeft compact optie

Aanpassingen aan de Apache omgeving

php.ini aanpassingen

De XML-RPC server zal 'ergens' een bestand moeten kunnen vinden met de gebruikersnamen t.b.v. het authenticeren bij de LDAP-server.

Dit bestand wordt geplaatst in de map '/usr/local/hobbynet/etc'. Om dit vanuit Apache te mogen benaderen, dient een aanpassing aan php.ini gemaakt te worden:

/etc/php5/apache2/php.ini

include_path = ".:/usr/share/php:/usr/share/pear:/usr/local/hobbynet/etc"

Apache modules

Nieuwe server geschikt maken voor XML-RPC gebruik

Apache modules (PHP 5.x)

apt-get install php5-xmlrpc
Look for xmlrpc.ini. If it does not exist, create it. Now, make sure it has the following contents:
; Enable xmlrpc extension module
extension=xmlrpc.so
now restart Apache!

De xmlrpc server moet secure ldap sessies kunnen maken. Daar is de module php5-sasl voor nodig:

apt-get install ldap-utils
apt-get install php5-ldap
apt-get install libapache2-mod-php5

Als je ldaps wilt gebruiken (port 636), dan is sasl nodig:

apt-get install php5-sasl

Apache modules (PHP 7)

Ubuntu 16.04 wordt standaard met PHP versie 7.0 uitgeleverd. De opdrachten om de modules op te halen zijn marginaal anders:

apt-get install php-xmlrpc
apt-get install apache2
apt-get install ldap-utils
apt-get install php-ldap
apt-get install libapache2-mod-php

Loadbalancer akties niet naar de logbestanden schrijven

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.

Pas de apache configuratie zo aan, dat logging van alle opvragingen vanaf de loadbalancers uitgezet wordt.

/etc/apache2/sites-enabled/xml-server

# Mark requests from loadbalancers
SetEnvIf Remote_Addr "212\.72\.227\.93"          dontlog
SetEnvIf Remote_Addr "212\.72\.227\.94"          dontlog
SetEnvIf Remote_Addr "172\.31\.1\.249"           dontlog
SetEnvIf Remote_Addr "172\.31\.1\.250"           dontlog
CustomLog ${APACHE_LOG_DIR}/access.log common env=!dontlog

Firewall algemeen

In de file /etc/hobby-firewall/hobby-firewall.local wordt het script '/usr/local/hobbynet/bin/gen_fw.sh' aangeroepen. Deze haalt de IP adressen op uit ldap. (.local omdat we dit ook zo doen op de webservers).

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:

Op lb1:

 0  0 * * * /etc/init.d/hobby-firewall restart         >/dev/null
55  5 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh >/dev/null
 0  6 * * * /etc/init.d/hobby-firewall restart         >/dev/null
55 11 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh >/dev/null
 0 12 * * * /etc/init.d/hobby-firewall restart         >/dev/null
55 17 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh >/dev/null
 0 18 * * * /etc/init.d/hobby-firewall restart         >/dev/null
55 23 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh >/dev/null

Op lb2:

15  6 * * * /etc/init.d/hobby-firewall restart >/dev/null
15 12 * * * /etc/init.d/hobby-firewall restart >/dev/null
15 18 * * * /etc/init.d/hobby-firewall restart >/dev/null
15  0 * * * /etc/init.d/hobby-firewall restart >/dev/null 

Het encrypted backup script is verplaatst naar '/usr/local/hobbynet/local' en hernoemd naar 'backup-encrypted.bash'. Dit is omdat deze niet mee mag worden gesynchroniseerd.

Tevens wordt 1x per dag /usr/local/hobbynet/bin gesynchroniseerd (1-richting van hcc-ldap-lb1 naar hcc-ldap-lb2)

Aanpassingen in de firewall

Op de server waar de XML-RPC server staat, moeten enkele firewall aanpassingen gemaakt worden.

  • inkomend: sta TCP 443 toe vanaf het interne netwerk (www-prod, www-test), en vanaf eventuele andere plekken die we expliciet toe willen staan.
  • inkomend: sta TCP 443 toe vanaf mijn.hcc.nl (XML-RPC aanroepen vanaf de portal)
  • inkomend: sta TCP 443 toe vanaf service.hccnet.nl toe (XML-RPC aanroep GeefUitgeschrevenLeden vanuit HenZ)
  • uitgaand: sta TCP 443 naar service.hccnet.nl toe (XML-RPC aanroepen naar HenZ)
  • uitgaand: sta TCP 990 en 5000-6000 naar Apps.HCC.local (FTPS verkeer naar de HCC server bij Hobbynet)

Aanpassingen aan AppArmor

Alhoewel technisch gezien dit bij slapd behoort, neem ik het toch hier op.

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 local directory van apparmor het volgende op:

# /etc/apparmor.d/local/usr.sbin.slapd
# Site-specific additions and overrides for usr.sbin.slapd.
# For more details, please see /etc/apparmor.d/local/README.
#include <abstractions/ssl_certs>
/disk/site/etc/ssl/hobby.nl/ r,
/disk/site/etc/ssl/hobby.nl/* r,