XML-RPC: Difference between revisions
(HCCpartners interface beschreven (simpeler XML bericht)) |
(Compacte interface beschreven) |
||
Line 1: | Line 1: | ||
= XML-RPC interface = | = 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. | 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. | 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 == | == Globale functie omschrijving == | ||
Line 15: | Line 21: | ||
** Controleer of een gebruiker zijn profiel al doorlopen heeft | ** Controleer of een gebruiker zijn profiel al doorlopen heeft | ||
** Haal de lijst met opgeheven accounts op | ** Haal de lijst met opgeheven accounts op | ||
** Lees/schrijf de lijst met bulletins van een hcc lid (OptIn) | |||
* Aanroepen t.b.v. hcc partners | * Aanroepen t.b.v. hcc partners | ||
** Controleer of lidnummer/postcode correct is | ** Controleer of lidnummer/postcode correct is | ||
* Kadernet functies | * Kadernet functies | ||
** Pas het kadernet e-mail wachtwoord aan | ** Pas het kadernet e-mail wachtwoord aan | ||
Line 22: | Line 31: | ||
** 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 | ||
* Enquete | * Enquete | ||
** | ** Expandeer postcode/huisnummer (via SOAP call bij DBF) | ||
** Haal lidgegevens op | ** Haal lidgegevens op (via SOAP call bij DBF) | ||
** Pas lidgegevens aan | ** Pas lidgegevens aan (via SOAP call bij DBF) | ||
* Forum | |||
** Controleer of combinatie lidnummer/postcode/huisnummer correct is | |||
=== Authenticatie === | === Authenticatie === | ||
Alle aanroepen gebeuren op basis van authenticatie vanuit de aanroeper. Dit valt uiteen in de volgende categorieën: | Alle aanroepen gebeuren op basis van authenticatie vanuit de aanroeper. | ||
Dit valt uiteen in de volgende categorieën: | |||
* gebruikersnaam ('hccLogin') en wachtwoord ('userPassword') | * gebruikersnaam ('hccLogin') en wachtwoord ('userPassword') | ||
* hcc lidnummer ('hccLidnummer') en hcc code ('hccCode') | * hcc lidnummer ('hccLidnummer') en hcc code ('hccCode') | ||
Line 35: | Line 49: | ||
* partner-DN ('partnerLogin') en partner wachtwoord ('partnerPassword') | * partner-DN ('partnerLogin') en partner wachtwoord ('partnerPassword') | ||
* enquete-DN ('username') en enquete wachtwoord ('password') | * enquete-DN ('username') en enquete wachtwoord ('password') | ||
* forum-DN ('forumLogin') en forum wachtwoord ('forumPassword') | |||
=== Resultaten === | === Resultaten === | ||
Line 49: | Line 64: | ||
<pre> | <pre> | ||
2013. | 2013.05.22 HaVe | ||
XML-RPC Hobbynet versie | XML-RPC Hobbynet versie 27. | ||
</pre> | </pre> | ||
Line 56: | Line 71: | ||
<pre> | <pre> | ||
// ** Drupal 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) | ||
$request = xmlrpc_encode_request(' | $request = xmlrpc_encode_request('HCC-ldap', | ||
array( | |||
'Action' => 'GebruikerBestaatControle', | |||
'hccLidnr' => $hccLidnr, | |||
'hccCode' => $hccCode)); | |||
// ** Drupal www.hcc.nl ** | |||
// 1.2 controleer of een gebruiker bestaat - optie 2 | // 1.2 controleer of een gebruiker bestaat - optie 2 | ||
// (authenticatie op basis van hccLogin en user) | // (authenticatie op basis van hccLogin en user) | ||
$request = xmlrpc_encode_request(' | $request = xmlrpc_encode_request('HCC-ldap', | ||
array( | |||
'Action' => 'GebruikerBestaatControle', | |||
'hccLogin' => $hccLogin, | |||
'userPassword' => $userPassword)); | |||
// 1.3 controleer of een gebruiker bestaat - optie 3 | // 1.3 controleer of een gebruiker bestaat - optie 3 | ||
Line 76: | Line 95: | ||
// Als hccLidnr leeg is, dan wordt hccLogin of hccPseudoniem 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 beide velden MOET aanwezig zijn | // 1 van beide velden MOET aanwezig zijn | ||
$request = xmlrpc_encode_request(' | $request = xmlrpc_encode_request('HCC-ldap', | ||
array( | |||
'Action' => 'GebruikerBestaatControle', | |||
'beheerLogin' => $beheerLogin, | |||
'beheerPassword' => $beheerPassword, | |||
['hccLidnr' => $hccLidnr,] | |||
['hccLogin' => $hccLogin,] | |||
['hccPseudoniem' => $hccPseudoniem])); | |||
Output positief: | Output positief: | ||
$reply = array( | |||
'0' => 'HCC-ldap', | |||
'Action' => 'GebruikerBestaatControle', | |||
'Status' => 'TRUE', | |||
'Message' => 'Gebruikersgegevens opgevraagd', | |||
'hccLidnr' => $hccLidnr, | |||
'hccLogin' => $hccLogin, | |||
'hccPseudoniem' => $hccPseudoniem, | |||
'cn' => $cn, | |||
'sn' => $sn, | |||
'mail' => $mail, | |||
'Regio' => $hccRegio, | |||
'hccIG' => $hccIG, | |||
'hccRol' => $hccRol, | |||
'ProfielBekend' => 'TRUE' / 'FALSE'); | |||
Output negatief: | Output negatief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'Action' => 'GebruikerBestaatControle', | |||
'Status' => 'FALSE', | |||
'Message' => 'Onjuiste credentials' | 'Gegevenscombinatie onjuist'); | |||
// ** Drupal www.hcc.nl ** | |||
// 2.1 wijzig wachtwoord - optie 1 | // 2.1 wijzig wachtwoord - optie 1 | ||
// op basis van hccLidnummer en hccCode (t.b.v. wachtwoord-vergeten procedure) | // op basis van hccLidnummer en hccCode (t.b.v. wachtwoord-vergeten procedure) | ||
Line 114: | Line 133: | ||
// Als de profielpagina nog niet is doorlopen wordt deze aanroep afgekeurd. | // Als de profielpagina nog niet is doorlopen wordt deze aanroep afgekeurd. | ||
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) ** | // ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) ** | ||
$request = xmlrpc_encode_request(' | $request = xmlrpc_encode_request('HCC-ldap', | ||
array( | |||
'Action' => 'WijzigGebruikersGegevens', | |||
'hccLidnr' => $hccLidnr, | |||
'hccCode' => $hccCode, | |||
'nieuw_userPassword' => $nieuw_userPassword)); | |||
Output positief: | Output positief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'Action' => 'WijzigGebruikersGegevens', | |||
'Status' => 'TRUE', | |||
'Message' => 'Gebruikersgegevens gewijzigd', | |||
'hccLogin' => $hccLogin, | |||
'cn' => $cn, | |||
'sn' => $sn); | |||
// ** Drupal www.hcc.nl ** | |||
// ** t.b.v. profielpagina van bestaande leden ** | // ** t.b.v. profielpagina van bestaande leden ** | ||
// 2.2 wijzig wachtwoord - optie 2 | // 2.2 wijzig wachtwoord - optie 2 | ||
Line 134: | Line 155: | ||
// (authenticatie op basis van hccLogin en userPassword) | // (authenticatie op basis van hccLogin en userPassword) | ||
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) ** | // ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) ** | ||
$request = xmlrpc_encode_request(' | $request = xmlrpc_encode_request('HCC-ldap', | ||
array( | |||
'Action' => 'WijzigGebruikersGegevens', | |||
'hccLogin' => $hccLogin, | |||
'userPassword' => $userPassword, | |||
'nieuw_userPassword' => $nieuw_userPassword)); | |||
// 2.3 wijzig wachtwoord en/of pseudoniem - optie 3 | // 2.3 wijzig wachtwoord en/of pseudoniem - optie 3 | ||
Line 147: | Line 169: | ||
// 1 van beide velden MOET aanwezig zijn | // 1 van beide velden MOET aanwezig zijn | ||
// ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) ** | // ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) ** | ||
$request = xmlrpc_encode_request(' | $request = xmlrpc_encode_request('HCC-ldap', | ||
array( | |||
'Action' => 'WijzigGebruikersGegevens', | |||
'beheerLogin' => $beheerLogin, | |||
'beheerPassword' => $beheerPassword, | |||
['hccLidnr' => $hccLidnr,] | |||
['hccLogin' => $hccLogin,] | |||
'nieuw_userPassword' => $nieuw_userPassword, | |||
['nieuw_hccPseudoniem' => $nieuw_hccPseudoniem])); | |||
// ** Drupal www.hcc.nl ** | |||
// ** t.b.v. profielpagina van bestaande leden ** | // ** t.b.v. profielpagina van bestaande leden ** | ||
// 2.5 wijzig pseudoniem | // 2.5 wijzig pseudoniem | ||
// (t.b.v. Drupal profiel-pagina) | // (t.b.v. Drupal profiel-pagina) | ||
// (authenticatie op basis van hccLogin en userPassword) | // (authenticatie op basis van hccLogin en userPassword) | ||
$request = xmlrpc_encode_request(' | $request = xmlrpc_encode_request('HCC-ldap', | ||
array( | |||
'Action' => 'WijzigGebruikersGegevens', | |||
'hccLogin' => $hccLogin, | |||
'userPassword' => $userPassword, | |||
'nieuw_hccPseudoniem' => $nieuw_hccPseudoniem)); | |||
Output positief: | |||
$reply = array( | |||
'0' => 'HCC-ldap', | |||
'Action' => 'WijzigGebruikersGegevens', | |||
'Status' => 'TRUE', | |||
'Message' => 'Gebruikersgegevens gewijzigd', | |||
'cn' => $cn, | |||
'sn' => $sn); | |||
Output negatief: | |||
$reply = array( | |||
'0' => 'HCC-ldap', | |||
'Action' => 'WijzigGebruikersGegevens', | |||
'Status' => 'FALSE', | |||
'Message' => 'Onjuiste credentials' | 'Gegevenscombinatie onjuist'); | |||
// ** Drupal www.hcc.nl ** | |||
// ** t.b.v. aanpassen van de opt-in keuzes op de profielpagina ** | |||
// 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('HCC-ldap', | |||
array( | |||
'Action' => 'HaalOptInKeuzen', | |||
'beheerLogin' => $beheerLogin, | |||
'beheerPassword' => $beheerPassword, | |||
['hccLidnr' => $hccLidnr,] | |||
['hccLogin' => $hccLogin]); | |||
Output positief: | |||
$reply = array( | |||
'0' => 'HCC-ldap', | |||
'Action' => 'HaalOptInKeuzen', | |||
'Status' => 'TRUE', | |||
'Message' => 'OptInLijst opgehaald', | |||
'hccOptIn' => $hccOptIn); | |||
Output negatief: | |||
$reply = array( | |||
'0' => 'HCC-ldap', | |||
'Action' => 'HaalOptInKeuzen', | |||
'Status' => 'FALSE', | |||
'Message' => 'Gegevenscombinatie onjuist'); | |||
// ** Drupal www.hcc.nl ** | |||
// ** t.b.v. aanpassen van de opt-in keuzes op de profielpagina ** | |||
// 2.7 Schrijf de complete lijst met opt-ins van dit lid | |||
// (LET OP: authenticatie op basis van beheerdernaam en beheerderwachtwoord) | |||
$request = xmlrpc_encode_request('HCC-ldap', | |||
array( | |||
'Action' => 'SchrijfOptInKeuzen', | |||
'beheerLogin' => $beheerLogin, | |||
'beheerPassword' => $beheerPassword, | |||
['hccLidnr' => $hccLidnr,] | |||
['hccLogin' => $hccLogin,] | |||
hccOptIn' => $hccOptIn); | |||
Output positief: | Output positief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'Action' => 'SchrijfOptInKeuzen', | |||
'Status' => 'TRUE', | |||
'Message' => 'OptInLijst weggeschreven', | |||
'hccOptIn' => $hccOptIn); | |||
Output negatief: | Output negatief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'Action' => 'SchrijfOptInKeuzen', | |||
'Status' => 'FALSE', | |||
$reply = array(' | 'Message' => 'Gegevenscombinatie onjuist'); | ||
// ** Drupal www.hcc.nl ** | |||
// ** t.b.v. aanpassen van de opt-in keuzes op de profielpagina ** | |||
// 2.8 Haal de lijst met alle mogelijke bulletins | |||
// (geen authenticatie) | |||
$request = xmlrpc_encode_request('HCC-ldap', | |||
array( | |||
'Action' => 'HaalOptInLijst')); | |||
Output positief: | |||
$reply = array( | |||
'0' => 'HCC-ldap', | |||
'Action' => 'HaalOptInLijst', | |||
'Status' => 'TRUE', | |||
'Message' => 'OptInLijst opgehaald', | |||
'OptInLijst' => $OptInLijst); | |||
// ** Drupal www.hcc.nl ** | |||
// ** t.b.v. 1e keer doorlopen van de profielpagina ** | // ** t.b.v. 1e keer doorlopen van de profielpagina ** | ||
// 8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gebruikersnaam, pseudoniem | // 8.1 Maak nieuwe gebruiker bij hccnet.nl, en sla gebruikersnaam, pseudoniem | ||
Line 189: | Line 279: | ||
// ** Deze gegevens worden doorgezet naar hccnet.nl (action=4) ** | // ** Deze gegevens worden doorgezet naar hccnet.nl (action=4) ** | ||
// | // | ||
$request = xmlrpc_encode_request(' | $request = xmlrpc_encode_request('HCC-net', | ||
array( | |||
'Action' => 'MaakGebruikerAan', | |||
'hccLidnr' => $hccLidnr, | |||
'hccCode' => $hccCode, | |||
'nieuw_hccLogin' => $nieuw_hccLogin, | |||
'nieuw_userPassword' => $nieuw_userPassword, | |||
'nieuw_hccPseudoniem' => $nieuw_hccPseudoniem)); | |||
Output positief: | Output positief: | ||
$reply = array( | |||
'0' => 'HCC-net', | |||
'Action' => 'MaakGebruikerAan', | |||
'Status' => 'TRUE', | |||
'Message' => 'Gebruiker aangemaakt'); | |||
Output negatief: | Output negatief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-net', | |||
'Action' => 'MaakGebruikerAan', | |||
'Status' => 'FALSE', | |||
'Message' => 'Onjuiste credentials' | | |||
'Gebruikersnaam bestaat al' | | |||
'Pseudoniem bestaat al' | | |||
'Gegevenscombinatie onjuist'); | |||
// ** Drupal www.hcc.nl ** | |||
// ** t.b.v. 1e keer doorlopen van de profielpagina ** | // ** t.b.v. 1e keer doorlopen van de profielpagina ** | ||
// 8.2 Controleer of de gebruikersnaam op dit moment bestaat | // 8.2 Controleer of de gebruikersnaam op dit moment bestaat | ||
Line 224: | Line 309: | ||
// ** Deze gegevens worden opgevraagd bij hccnet.nl (action=3) ** | // ** Deze gegevens worden opgevraagd bij hccnet.nl (action=3) ** | ||
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! ** | // ** Het betreft een momentopname, de naam wordt niet gereserveerd! ** | ||
$request = xmlrpc_encode_request(' | $request = xmlrpc_encode_request('HCC-net', | ||
array( | |||
'Action' => 'IsDezeNaamNogBeschikbaar', | |||
'nieuw_hccLogin' => $nieuw_hccLogin)); | |||
Output positief: | Output positief: | ||
$reply = array( | |||
'0' => 'HCC-net', | |||
'Action' => 'IsDezeNaamNogBeschikbaar', | |||
'Status' => 'TRUE', | |||
'Message' => 'Gebruikersnaam is nog beschikbaar'); | |||
Output negatief: | Output negatief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-net', | |||
'Action' => 'IsDezeNaamNogBeschikbaar', | |||
'Status' => 'FALSE', | |||
'Message' => 'Gebruikersnaam bestaat al'); | |||
// ** Drupal www.hcc.nl ** | |||
// ** t.b.v. 1e keer doorlopen van de profielpagina ** | // ** t.b.v. 1e keer doorlopen van de profielpagina ** | ||
// 8.3 Controleer of een Pseudoniem op dit moment bestaat | // 8.3 Controleer of een Pseudoniem op dit moment bestaat | ||
// (geen authenticatie) | // (geen authenticatie) | ||
// ** Het betreft een momentopname, de naam wordt niet gereserveerd! ** | // ** Het betreft een momentopname, de naam wordt niet gereserveerd! ** | ||
$request = xmlrpc_encode_request(' | $request = xmlrpc_encode_request('HCC-net', | ||
array( | |||
'Action' => 'IsDezePseudoniemNogBeschikbaar', | |||
'nieuw_hccPseudoniem' => $nieuw_hccPseudoniem)); | |||
Output positief: | Output positief: | ||
$reply = array( | |||
'0' => 'HCC-net', | |||
'Action' => 'IsDezePseudoniemNogBeschikbaar', | |||
'Status' => 'TRUE', | |||
'Message' => 'Pseudoniem is nog beschikbaar'); | |||
Output negatief: | Output negatief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-net', | |||
'Action' => 'IsDezePseudoniemNogBeschikbaar', | |||
'Status' => 'FALSE', | |||
'Message' => 'Pseudoniem bestaat al'); | |||
// ** t.b.v. de PC30 zoekpagina ** | // ** t.b.v. de PC30 zoekpagina ** | ||
Line 260: | Line 352: | ||
// Het optionele veld ZoekLimiet past maximum aantal antwoorden aan | // Het optionele veld ZoekLimiet past maximum aantal antwoorden aan | ||
// (maximaal tot de door de XML-RPC server ingebouwde limiet) | // (maximaal tot de door de XML-RPC server ingebouwde limiet) | ||
$request = xmlrpc_encode_request('HCC-ldap', | |||
array( | |||
'Action' => 'ZoekHCCLid', | |||
'beheerLogin' => $beheerLogin, | |||
'beheerPassword' => $beheerPassword, | |||
'ZoekMethode' => $ZoekMethode, | |||
'ZoekString' => $zoekstring, | |||
'ZoekLimiet' => $ZoekLimiet])); | |||
+----------------+-----------------------------------------+ | +----------------+-----------------------------------------+ | ||
| ZoekMethode | ZoekString | | | ZoekMethode | ZoekString | | ||
Line 279: | Line 372: | ||
Output positief: | Output positief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'Action' => 'ZoekHCCLid', | |||
'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 | |||
'hccHuisToevoeging' => $hcchuisToevoeging, | |||
'hccPostcode' => $hccPostcode, | |||
'hccWoonplaats' => $hccWoonplaats, | |||
'hccLand' => $hccLand, | |||
'hccTelefoon' => $hccTelefoon, | |||
'hccMobiel' => $hccMobiel, | |||
'mail' => $mail, | |||
'hccIG' => $hccIG, | |||
'hccRol' => $hccRol, | |||
'hccLogin' => $hccLogin, | |||
'hccPseudoniem' => $hccPseudoniem)]*)); | |||
Output negatief: | Output negatief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'Action' => 'ZoekHCCLid', | |||
'Status' => 'FALSE', | |||
$reply = array(' | 'Message' => 'Gebruiker niet gevonden'); | ||
$reply = array( | |||
'0' => 'HCC-ldap', | |||
'Action' => 'ZoekHCCLid', | |||
'Status' => 'FALSE', | |||
'Message' => 'Onjuiste credentials'); | |||
// ** t.b.v. de PC30 zoekpagina ** | // ** t.b.v. de PC30 zoekpagina ** | ||
// A.2 Haal een hccnet.nl token t.b.v. 1 hcc lid op | // A.2 Haal een hccnet.nl token t.b.v. 1 hcc lid op | ||
$request = xmlrpc_encode_request('HCC-ldap', | |||
array( | |||
'Action' => 'HaalPC30Token' | |||
'beheerLogin' => $beheerLogin, | |||
'beheerPassword' => $beheerPassword, | |||
'hccLidnr' => $hccLidnr)); | |||
Output positief: | Output positief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'Action' => 'HaalPC30Token', | |||
'Status' => 'TRUE', | |||
'Message' => 'Token opgevraagd', | |||
'Token' => $PC30Token); | |||
Output negatief: | Output negatief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'Action' => 'HaalPC30Token', | |||
'Status' => 'FALSE', | |||
'Message' => 'Gebruiker niet gevonden' | 'Onjuiste credentials'); | |||
// ** t.b.v. het Ledenadministratie overzicht op de kadersite ** | // ** t.b.v. het Ledenadministratie overzicht op de kadersite ** | ||
Line 342: | Line 437: | ||
// (maximaal tot de door de XML-RPC server ingebouwde limiet) | // (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('HCC-ldap', | |||
array( | |||
'Action' => 'ZoekGroeperingsLid', | |||
'AccountNaam' => $lidnr, | |||
['AccountCode' => $AccountCode,] | |||
['token' => $token,] | |||
'Groepering' => $groepering, | |||
'ZoekMethode' => $ZoekMethode, | |||
'ZoekString' => $zoekstring, | |||
'ZoekLimiet' => $ZoekLimiet,] | |||
['Bijeenkomst' => $Bijeenkomst])); // Alleen voor gebruik op de | |||
// bijeenkomsten aanwezigheidsregistratie pagina | |||
+--------------+-----------------------------------------+ | +--------------+-----------------------------------------+ | ||
| ZoekMethode | ZoekString | | | ZoekMethode | ZoekString | | ||
Line 364: | Line 460: | ||
Output positief: | Output positief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'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, | |||
'hccKaderMail' => $hccKaderMail, | |||
'hccRegio' => $hccRegio, | |||
'hccIG' => $hccIG, | |||
'hccRol' => $hccRol, | |||
'hccLogin' => $hccLogin, | |||
'hccPseudoniem' => $hccPseudoniem)]*))); | |||
Output negatief: | Output negatief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'Action' => 'ZoekGroeperingsLid', | |||
'Status' => 'FALSE', | |||
'Message' => 'Gebruiker(s) niet gevonden' | 'Onjuiste credentials'); | |||
// ** t.b.v. administreren van bijeenkomsten ** | // ** t.b.v. administreren van bijeenkomsten ** | ||
// A.4 Lid bezoekt bijeenkomst | // A.4 Lid bezoekt bijeenkomst | ||
// (authenticatie op basis van AccountNaam en AccountCode of token) | // (authenticatie op basis van AccountNaam en AccountCode of token) | ||
$request = xmlrpc_encode_request('HCC-ldap', | |||
array( | |||
'Action' => 'LidBezoektBijeenkomst', | |||
'AccountNaam' => $lidnr, | |||
['AccountCode' => $AccountCode,] | |||
['token' => $token,] | |||
'Bijeenkomst' => $Bijeenkomst, // groepering die deze bijeenkomst organiseert | |||
'hccLidnr' => $hccLidnr)); // lid dat aanwezig gemeld moet worden | |||
Output positief: | Output positief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'Action' => 'LidBezoektBijeenkomst', | |||
'Status' => 'TRUE', | |||
'Message' => 'Bezoeker weggeschreven', | |||
'Results' => array( | |||
'cn' => $cn, // cn van laatste bezoeker | |||
'hccgeslacht' => $hccGeslacht, // hccGeslacht van laatste bezoeker | |||
'AantalBezoekers' => $AantalBezoekers)); | |||
Output negatief: | Output negatief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'Action' => 'LidBezoektBijeenkomst', | |||
'Status' => 'FALSE', | |||
'Message' => 'Onjuiste credentials'; | |||
// ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens ** | // ** t.b.v. administreren van bijeenkomsten en opvragen van lidgegevens ** | ||
Line 430: | Line 527: | ||
// Als geen datum gegeven is, dan is het token vandaag geldig | // 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('HCCldap', | |||
array( | |||
'Action' => 'VraagLidgegevensTokenAan', | |||
'AccountNaam' => $lidnr, | |||
'AccountCode' => $AccountCode, | |||
['datum' => $datum,] // optioneel: datum YYYY-MM-DD | |||
'Groepering' => $Groepering)); // groepering | |||
Output positief: | Output positief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'Action' => 'VraagLidgegevensTokenAan', | |||
'Status' => 'TRUE', | |||
'Message' => 'Token opgevraagd', | |||
'token' => $token, | |||
'sn' => $sn); | |||
Output negatief: | Output negatief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'Action' => 'VraagLidgegevensTokenAan', | |||
'Status' => 'FALSE', | |||
'Message' => 'Onjuiste credentials'); | |||
// ** Drupal www.hcc.nl ** | |||
// ** t.b.v. daily cron job ** | // ** t.b.v. daily cron job ** | ||
// C.1 Vraag de lijst met opgeheven leden op | // C.1 Vraag de lijst met opgeheven leden op | ||
// Antwoord: lijst met (lidnummer, hccLogin, hccPseudoniem, | // Antwoord: lijst met (lidnummer, hccLogin, hccPseudoniem, | ||
// datum einde lidmaatschap (formaat:YYYYMMDD)) | // datum einde lidmaatschap (formaat:YYYYMMDD)) | ||
$request = xmlrpc_encode_request('HCC-ldap', | |||
array( | |||
'Action' => GeefOpgezegdeLeden', | |||
'beheerLogin' => $beheerLogin, | |||
'beheerPassword' => $beheerPassword)); | |||
Output positief: | Output positief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'Action' => 'GeefOpgezegdeLeden', | |||
'Status' => 'TRUE', | |||
'Message' => 'Opgezegde leden', | |||
['Results' => array( | |||
[array( | |||
'0' => 'Result', | |||
'hccLogin' => $hccLogin, | |||
'hccLidnummer' => $hccLidnummer, | |||
'DatumEindeLidmaatschap' => $DatumEindeLidmaatschap)]*)); | |||
Output negatief: | Output negatief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'Action' => 'GeefOpgezegdeLeden', | |||
'Status' => 'FALSE', | |||
'Message' => 'Onjuiste credentials')); | |||
// onbekende aanroep | // onbekende aanroep | ||
$request = xmlrpc_encode_request(' | $request = xmlrpc_encode_request('HCC-ldap', | ||
array( | |||
'Action' => 'OnbekendeAanroep', | |||
'parameter' => $iets)); | |||
Output negatief: | Output negatief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-ldap', | |||
'Action' => 'OnbekendeAanroep', | |||
'Status' => 'FALSE', | |||
'Message' => 'Opdracht onbekend'); | |||
</pre> | </pre> | ||
Line 491: | Line 600: | ||
// Antwoord: TRUE of FALSE | // Antwoord: TRUE of FALSE | ||
$request = xmlrpc_encode_request('HCCpartner', | $request = xmlrpc_encode_request('HCCpartner', | ||
array('ControleerHCCLidmaatschap', | |||
array('partnerLogin', $partnerLogin), | |||
array('partnerPassword', $partnerPassword), | |||
array('hccLidnummer', $hcclidnummer), | |||
array('postcode', $postcode))); | |||
Output positief: | Output positief: | ||
$reply = array('HCCpartner', | $reply = array('HCCpartner', | ||
array('Action', 'ControleerHCCLidmaatschap'), | |||
array('Status', 'TRUE')); | |||
Output negatief: | Output negatief: | ||
$reply = array('HCCpartner', | $reply = array('HCCpartner', | ||
array('Action', 'ControleerHCCLidmaatschap'), | |||
array('Status', 'FALSE')); | |||
$reply = array('HCCpartner', | $reply = array('HCCpartner', | ||
array('Action', 'ControleerHCCLidmaatschap'), | |||
array('Status', 'FALSE'), | |||
array('Message', 'Onjuiste credentials')); | |||
// onbekende aanroep | // onbekende aanroep | ||
$request = xmlrpc_encode_request('HCCpartner', | $request = xmlrpc_encode_request('HCCpartner', | ||
array('OnbekendeAanroep', | |||
array('parameter', $iets))); | |||
Output negatief: | Output negatief: | ||
$reply = array('HCCpartner', | $reply = array('HCCpartner', | ||
array('Action', 'OnbekendeAanroep'), | |||
array('Status', 'FALSE'), | |||
array('Message', 'Opdracht onbekend')); | |||
</pre> | </pre> | ||
Line 528: | Line 636: | ||
// D.1 Controleer of iemand lid is op basis van lidnummer en postcode | // D.1 Controleer of iemand lid is op basis van lidnummer en postcode | ||
// Antwoord: TRUE of FALSE | // Antwoord: TRUE of FALSE | ||
$request = xmlrpc_encode_request('HCCpartners', | |||
array( | |||
'Action' => 'ControleerHCCLidmaatschap', | |||
'partnerLogin' => $partnerLogin, | |||
'partnerPassword' => $partnerPassword, | |||
'hccLidnummer' => $hcclidnummer, | |||
'postcode' => $postcode)); | |||
Output positief: | Output positief: | ||
$reply = array('HCCpartners', | $reply = array( | ||
'0' => 'HCCpartners', | |||
'Action' => 'ControleerHCCLidmaatschap', | |||
'Status' => 'TRUE'); | |||
Output negatief: | Output negatief: | ||
$reply = array('HCCpartners', | $reply = array( | ||
'0' => 'HCCpartners', | |||
'Action' => 'ControleerHCCLidmaatschap', | |||
$reply = array('HCCpartners', | 'Status' => 'FALSE'); | ||
$reply = array( | |||
'0' => 'HCCpartners', | |||
'Action' => 'ControleerHCCLidmaatschap', | |||
'Status' => 'FALSE', | |||
'Message' => 'Onjuiste credentials'); | |||
// onbekende aanroep | // onbekende aanroep | ||
$request = xmlrpc_encode_request('HCCpartners', | $request = xmlrpc_encode_request('HCCpartners', | ||
array( | |||
'Action' => 'OnbekendeAanroep', | |||
'parameter' => $iets)); | |||
Output negatief: | Output negatief: | ||
$reply = array('HCCpartners', | $reply = array( | ||
'0' => 'HCCpartners', | |||
'Action' => 'OnbekendeAanroep', | |||
'Status' => 'FALSE', | |||
'Message' => 'Opdracht onbekend'); | |||
</pre> | </pre> | ||
Line 565: | Line 679: | ||
// op basis van hccLidnummer en hccCode (t.b.v. wachtwoord-aanpassen kadernet procedure) | // op basis van hccLidnummer en hccCode (t.b.v. wachtwoord-aanpassen kadernet procedure) | ||
// (authenticatie op basis van hccLidnr en hccCode) | // (authenticatie op basis van hccLidnr en hccCode) | ||
$request = xmlrpc_encode_request('HCC-kader', | |||
array( | |||
'Action' => 'WijzigGebruikersGegevens', | |||
'hccLidnr' => $hccLidnr, | |||
'hccCode' => $hccCode, | |||
'nieuw_kaderPassword' => $nieuw_kaderPassword)); | |||
Output positief: | Output positief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-kader', | |||
'Action' => 'WijzigGebruikersGegevens', | |||
'Status' => 'TRUE', | |||
'Message' => 'Gebruikersgegevens gewijzigd', | |||
'cn' => $cn, | |||
'hccKaderMail' => $hccKaderMail); | |||
Output negatief: | Output negatief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-kader', | |||
'Action' => 'WijzigGebruikersGegevens', | |||
'Status' => 'FALSE', | |||
'Message' => 'Onjuiste credentials' | 'Gegevenscombinatie onjuist'); | |||
// ** t.b.v. authenticatie op de kadersite of andere kader-gerelateerde sites ** | // ** t.b.v. authenticatie op de kadersite of andere kader-gerelateerde sites ** | ||
// F.1 Controleer of dit een kaderlid is | // F.1 Controleer of dit een kaderlid is | ||
// (authenticatie op basis van hccLidnr en hccCode) | // (authenticatie op basis van hccLidnr en hccCode) | ||
$request = xmlrpc_encode_request('HCC-kader', | |||
array( | |||
'Action' => 'ControleerKaderlid', | |||
'hccLidnr' => $hccLidnr, | |||
'hccCode' => $hccCode)); | |||
// F.2 Controleer of dit een kaderlid is | // F.2 Controleer of dit een kaderlid is | ||
// (authenticatie op basis van hccLogin en userPassword) | // (authenticatie op basis van hccLogin en userPassword) | ||
$request = xmlrpc_encode_request('HCC-kader', | |||
array( | |||
'Action' => 'ControleerKaderlid', | |||
'hccLogin' => $hccLogin, | |||
'userPassword' => $userPassword)); | |||
// F.3 Controleer of dit een kaderlid is (t.b.v. ledenraad module op kadersite) | // F.3 Controleer of dit een kaderlid is (t.b.v. ledenraad module op kadersite) | ||
Line 607: | Line 722: | ||
// Als hccLidnr leeg is, dan wordt hccLogin of hccPseudoniem 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 | // 1 van 3 velden MOET aanwezig zijn | ||
$request = xmlrpc_encode_request('HCC-kader', | |||
array( | |||
'Action' => 'ControleerKaderlid', | |||
'beheerLogin' => $beheerLogin, | |||
'beheerPassword' => $beheerPassword, | |||
['hccLidnr' => $hccLidnr,] | |||
['hccLogin' => $hccLogin,] | |||
['hccPseudoniem' => $hccPseudoniem])); | |||
Output positief: | Output positief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-kader', | |||
'Action' => 'ControleerKaderlid', | |||
'Status' => 'TRUE', | |||
'Message' => 'Is kaderlid', | |||
'hccRol' => $hccRol); | |||
Voor F.3 is het antwoord uitgebreider: | Voor F.3 is het antwoord uitgebreider: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-kader', | |||
'Action' => 'ControleerKaderlid', | |||
'Status' => 'TRUE', | |||
'Message' => 'Is kaderlid', | |||
'hccLidnr' => $hccLidnr, | |||
'hccLogin' => $hccLogin, | |||
'hccPseudoniem' => $hccPseudoniem, | |||
'cn' => $cn, | |||
'hccRol' => $hccRol); | |||
Output negatief: | Output negatief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-kader', | |||
'Action' => 'ControleerKaderlid', | |||
'Status' => 'FALSE', | |||
'Message' => 'Onjuiste credentials' | 'Is geen kaderlid'); | |||
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina ** | // ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina ** | ||
// F.4 Vraag alle groeperingen op | // F.4 Vraag alle groeperingen op | ||
// (geen authenticatie) | // (geen authenticatie) | ||
$request = xmlrpc_encode_request(' | $request = xmlrpc_encode_request('HCC-kader', | ||
array( | |||
'Action' => 'GeefAlleGroeperingen')); | |||
Output positief: | Output positief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-kader', | |||
'Action' => 'GeefAlleGroeperingen', | |||
'Status' => 'TRUE', | |||
'Message' => 'Lijst met groeperingen opgevraagd', | |||
'Result' => $groeperingen); | |||
// ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina ** | // ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina ** | ||
// F.5 Vraag alle kaderrollen op | // F.5 Vraag alle kaderrollen op | ||
// (geen authenticatie) | // (geen authenticatie) | ||
$request = xmlrpc_encode_request('HCCkader', | $request = xmlrpc_encode_request('HCCkader', | ||
array( | |||
'Action' => 'GeefAlleKaderRollen')); | |||
Output positief: | Output positief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-kader', | |||
'Action' => 'GeefAlleKaderRollen', | |||
'Status' => 'TRUE', | |||
'Message' => 'Lijst met kaderrollen opgevraagd', | |||
'Result' => $kaderrollen); | |||
$request = xmlrpc_encode_request(' | // F.6 - Wijzig 1 kaderrol van een gebruiker | ||
$request = xmlrpc_encode_request('HCC-kader', | |||
array( | |||
'Action' => 'WijzigHccRol', | |||
'beheerLogin' => $beheerLidnr, | |||
'beheerPassword' => $accountCode, | |||
'hccLidnr' => $hccLidnr, | |||
'kaderrol' => $groepering . '#' . $rol, | |||
'waarde' => $waarde)); | |||
// onbekende aanroep | // onbekende aanroep | ||
$request = xmlrpc_encode_request('HCCkader', | $request = xmlrpc_encode_request('HCCkader', | ||
array( | |||
'Action' => 'OnbekendeAanroep', | |||
'parameter' => $iets)); | |||
Output negatief: | Output negatief: | ||
$reply = array(' | $reply = array( | ||
'0' => 'HCC-kader', | |||
'Action' => 'OnbekendeAanroep', | |||
'Status' => 'FALSE', | |||
'Message' => 'Opdracht onbekend'); | |||
</pre> | </pre> | ||
Line 690: | Line 813: | ||
// G.1 Expandeer NL postcode | // G.1 Expandeer NL postcode | ||
// (geen authenticatie) | // (geen authenticatie) | ||
$request = xmlrpc_encode_request('HCCenquete', | |||
array('ExpandeerPostcode', | |||
array('PostCode', $postcode), | |||
array('HuisNummer', $huisnummer))); | |||
Output positief: | Output positief: | ||
$reply = array('HCCenquete', | $reply = array( | ||
'0' => 'HCCenquete', | |||
'Action' => 'ExpandeerPostcode', | |||
'Status' => 'TRUE', | |||
'Message' => 'Postcode opgevraagd', | |||
'Adresgegevens' => array( | |||
'Straat' => $straat, | |||
'HuisNr' => $huisnummer, | |||
'HuisNrToev' => $huisnummerToevoeging, | |||
'Postcode' => $postcode, | |||
'Plaats' => $woonplaats, | |||
'GemeenteCode' => $gemeenteCode, | |||
'ProvincieCode' => $provincieCode, | |||
'LandCode' => $landcode))); | |||
Output negatief: | Output negatief: | ||
$reply = array('HCCenquete', | $reply = array('HCCenquete', | ||
array('Action', 'ExpandeerPostcode'), | |||
array('Status', 'FALSE'), | |||
array('Message', 'Onjuiste postcode/huisnummer combinatie' | 'SOAP Error')); | |||
// G.2 Haal lidgegevens op | // G.2 Haal lidgegevens op | ||
// (authenticatie op basis van username/password) | // (authenticatie op basis van username/password) | ||
$request = xmlrpc_encode_request('HCCenquete', | |||
array('HaalLidGegevens', | |||
array('username', $username), | |||
array('password', $password), | |||
array('hccLidnummer', $hccLidnummer))); | |||
Output positief: | Output positief: | ||
$reply = array('HCCenquete', | $reply = array('HCCenquete', | ||
array( | |||
'Action' => 'HaalLidGegevens', | |||
'Status' => 'TRUE', | |||
'Message' => 'Lidgegevens opgevraagd', | |||
'Lidgegevens' => json_encode( | |||
array( | |||
'Achternaam' => $achternaam, | |||
'Voornaam' => $voornaam, | |||
'Tussenvoegsels' => $tussenvoegsels, | |||
'Voorletters' => $voorletters, | |||
'Geboortedatum' => $geboortedatum // YYYY-MM-DD, 1900-01-01 | |||
'Geslacht' => 'Man' | 'Vrouw' | 'Onbekend', | |||
'Emailadres' => $emailadres, | |||
'TelefoonNr' => $telefoon, | |||
'MobielNr' => $gsm_nummer, | |||
'Adres' => array( | |||
'Straat' => $straat, | |||
'HuisNr' => $huisnummer, | |||
'HuisNrToev' => $huisnummerToevoeging, | |||
'Postcode' => $postcode, | |||
'Plaats' => $woonplaats, | |||
'GemeenteCode' => $gemeenteCode, | |||
'ProvincieCode' => $provincieCode, | |||
'LandCode' => $landcode))))); | |||
Output negatief: | Output negatief: | ||
$reply = array('HCCenquete', | $reply = array('HCCenquete', | ||
array('Action', 'HaalLidGegevens'), | |||
array('Status', 'FALSE'), | |||
array('Message', 'Onjuiste gegevenscombinatie' | 'Onjuiste credentials')); | |||
// G.3 Pas lidgegevens aan | // G.3 Pas lidgegevens aan | ||
// (authenticatie op basis van username/password) | // (authenticatie op basis van username/password) | ||
$request = xmlrpc_encode_request('HCCenquete', | |||
array('PasLidGegevensAan', | |||
array('username', $username), | |||
array('password', $password), | |||
array('hccLidnummer', $hccLidnummer))); | |||
array('Lidgegevens' => json_encode( | |||
array( | |||
'Voornaam' => $voornaam, | |||
'Voorletters' => $voorletters, | |||
'Tussenvoegsels' => $tussenvoegsels, | |||
'Geboortedatum' => $geboortedatum // YYYY-MM-DD, 1900-01-01 | |||
'Geslacht' => 'Man' | 'Vrouw' | 'Onbekend', | |||
'Emailadres' => $emailadres, | |||
'TelefoonNr' => $telefoon, | |||
'MobielNr' => $gsm_nummer, | |||
'Adres' => array( | |||
'Straat' => $straat, | |||
'HuisNr' => $huisnummer, | |||
'HuisNrToev' => $huisnummerToevoeging, | |||
'Postcode' => $postcode, | |||
'Plaats' => $woonplaats, | |||
'GemeenteCode' => $gemeenteCode, | |||
'ProvincieCode' => $provincieCode, | |||
'LandCode' => $landcode))))); | |||
Output positief: | Output positief: | ||
$reply = array('HCCenquete', | $reply = array('HCCenquete', | ||
array('Action' => 'PasLidGegevensAan', | |||
array('Status', 'TRUE'), | |||
array('Message', 'Lidgegevens aangepast')); | |||
Output negatief: | Output negatief: | ||
$reply = array('HCCenquete', | $reply = array('HCCenquete', | ||
array('Action' => 'PasLidGegevensAan', | |||
array('Status', 'FALSE'), | |||
array('Message', 'Onjuiste gegevenscombinatie' | 'Onjuiste credentials')); | |||
</pre> | |||
=== HCC-groepering aanroepen === | |||
<pre> | |||
// H.1 controleer of een gebruiker bestaat | |||
// (authenticatie op basis van hccLogin en userPassword) | |||
$request = xmlrpc_encode_request('HCC-groepering', | |||
array( | |||
'Action' => 'GebruikerBestaatControle', | |||
'hccLogin' => $hccLogin, | |||
'userPassword' => $userPassword, | |||
'hccGroepering => $hccGroepering)); | |||
Output positief: | |||
$reply = array( | |||
'0' => 'HCC-groepering', | |||
'Action' => 'GebruikerBestaatControle', | |||
'hccGroepering' => $hccGroepering, | |||
'Status' => 'TRUE', | |||
'Message' => 'Gebruikersgegevens gecontroleerd', | |||
'cn' => $cn, | |||
['hccLidnr' => $hccLidnr], | |||
['mail' => $mail,] | |||
['givenName' => $givenName,] | |||
['hccGeslacht' => $hccGeslacht,] | |||
['hccAanhef' => $hccAanhef,] | |||
['hccPseudoniem' => $hccPseudoniem,] | |||
['hccRol' => $hccRol]); | |||
Output negatief: | |||
$reply = array( | |||
'0' => 'HCC-groepering', | |||
'Action' => 'GebruikerBestaatControle', | |||
'Status' => 'FALSE', | |||
'Message' => 'Onjuiste credentials' | 'Geen groeperingslid'); | |||
</pre> | |||
=== HCC-forum aanroepen === | |||
<pre> | |||
// I.1 controleer of een gebruiker bestaat | |||
// (authenticatie op basis van beheerdernaam en beheerderwachtwoord) | |||
$request = xmlrpc_encode_request('HCC-forum', | |||
array( | |||
'Action' => 'GebruikerBestaatControle', | |||
'forumLogin' => $forumLogin, | |||
'forumPassword' => $forumPassword, | |||
'hccLidnr' => $hccLidnr, | |||
'hccPostcode' => $hccPostcode, | |||
'hccHuisnr' => $hccHuisnr)); | |||
Output positief: | |||
$reply = array( | |||
'0' => 'HCC-forum', | |||
'Action' => 'GebruikerBestaatControle', | |||
'Status' => 'TRUE', | |||
'Message' => 'Gebruikersgegevens gecontroleerd')); | |||
Output negatief: | |||
$reply = array( | |||
'0' => 'HCC-forum', | |||
'Action' => 'GebruikerBestaatControle', | |||
'Status' => 'FALSE', | |||
'Message' => 'Onjuiste credentials' | 'Geen hcclid'); | |||
</pre> | |||
=== Echo test === | |||
<pre> | |||
// t.b.v. controle of de verbinding met de XML-RPC server functioneert | |||
// Eenvoudige echo test | |||
$request = xmlrpc_encode_request('echo', | |||
array( | |||
'Action' => 'echo', | |||
'What' => $string)); | |||
Output positief: | |||
$reply = array( | |||
'0' => 'echo', | |||
'Action' => 'echo', | |||
'Status' => 'TRUE', | |||
'Message' => $string); | |||
</pre> | </pre> | ||
=== HenZ | |||
=== HenZ XMLRPC interface === | |||
Overzicht van XML procedures die bij HenZ draaien | Overzicht van XML procedures die bij HenZ draaien | ||
Line 981: | Line 1,193: | ||
- D.1 HCCpartner/ControleerHCCLidmaatschap | - D.1 HCCpartner/ControleerHCCLidmaatschap | ||
Simpeler interface ontwikkeld ('HCCpartners' i.p.v. 'HCCpartner') | 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 GebruikerBestaatControle | |||
* nieuwe aanroep | |||
- HCCpartners aanroep nieuwe interface ('Action' => 'ControleerHCCLidmaatschap') | |||
</pre> | </pre> | ||
Line 987: | Line 1,213: | ||
== php.ini aanpassingen == | == 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. | 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: | 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 | /etc/php5/apache2/php.ini | ||
Line 1,013: | Line 1,242: | ||
== Loadbalancer akties niet naar de logbestanden schrijven == | == 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. | 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. | Pas de apache configuratie zo aan, dat logging van alle opvragingen | ||
vanaf de loadbalancers uitgezet wordt. | |||
/etc/apache2/sites-enabled/xml-server | /etc/apache2/sites-enabled/xml-server | ||
Line 1,024: | Line 1,256: | ||
SetEnvIf Remote_Addr "172\.31\.1\.250" dontlog | SetEnvIf Remote_Addr "172\.31\.1\.250" dontlog | ||
CustomLog ${APACHE_LOG_DIR}/access.log common env=!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 (eenrichting 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<br> | |||
* inkomend: sta TCP 443 toe vanaf het interne netwerk (www-prod, www-test), en vanaf eventuele andere plekken die we expliciet toe willen staan.<br> | |||
* uitgaand: sta TCP 443 naar service.hccnet.nl toe | |||
== Overige akties == | == Overige akties == | ||
Line 1,030: | Line 1,298: | ||
* Zorg ervoor dat de CAcert.org certificaten in /etc/ssl/certs staan, doe daarna een "c_rehash ." | * Zorg ervoor dat de CAcert.org certificaten in /etc/ssl/certs staan, doe daarna een "c_rehash ." | ||
cd /etc/ssl/certs | cd /etc/ssl/certs | ||
wget http://www.cacert.org/certs/root.crt -O cacert_org.pem | wget http://www.cacert.org/certs/root.crt -O cacert_org.pem | ||
wget http://www.cacert.org/certs/class3.crt -O cacert_org_class3.pem | wget http://www.cacert.org/certs/class3.crt -O cacert_org_class3.pem | ||
c_rehash . | c_rehash . | ||
Line 1,040: | Line 1,308: | ||
* Voeg deze regel toe aan /etc/ldap/ldap.conf: | * Voeg deze regel toe aan /etc/ldap/ldap.conf: | ||
TLS_CACERT /etc/ssl/certs/ca-certificates.crt | TLS_CACERT /etc/ssl/certs/ca-certificates.crt | ||
Revision as of 17:51, 23 May 2013
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')
- Wijzig het pseudoniem ('hccPseudoniem')
- Zoek een gebruiker (t.b.v. PC30 en/of kantoor en/of LA-akties groeperingssecretaris)
- Haal een token om als PC30 gebruiker een HCCnet mutatie te mogen maken
- Maak een gebruiker aan (geef een 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
- Lees/schrijf de lijst met bulletins van een hcc lid (OptIn)
- Aanroepen t.b.v. hcc partners
- Controleer of lidnummer/postcode correct is
- Kadernet functies
- Pas het kadernet e-mail wachtwoord aan
- Controleer op kaderlidmaatschap
- Haal de lijst met alle groeperingen op
- Haal de lijst met alle kaderrollen op
- Enquete
- Expandeer postcode/huisnummer (via SOAP call bij DBF)
- Haal lidgegevens op (via SOAP call bij DBF)
- Pas lidgegevens aan (via SOAP call bij DBF)
- Forum
- Controleer of combinatie lidnummer/postcode/huisnummer correct is
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 ('hccLidnummer') en hcc code ('hccCode')
- beheerders-DN ('beheerLogin') en beheerders wachtwoord ('beheerPassword')
- partner-DN ('partnerLogin') en partner wachtwoord ('partnerPassword')
- enquete-DN ('username') en enquete wachtwoord ('password')
- forum-DN ('forumLogin') en forum wachtwoord ('forumPassword')
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
2013.05.22 HaVe XML-RPC Hobbynet versie 27.
HCCldap en/of HCCnet aanroepen
// ** Drupal www.hcc.nl ** // 1.1 controleer of een gebruiker bestaat - optie 1 // (authenticatie op basis van hccLidnr en hccCode) $request = xmlrpc_encode_request('HCC-ldap', array( 'Action' => 'GebruikerBestaatControle', 'hccLidnr' => $hccLidnr, 'hccCode' => $hccCode)); // ** Drupal www.hcc.nl ** // 1.2 controleer of een gebruiker bestaat - optie 2 // (authenticatie op basis van hccLogin en user) $request = xmlrpc_encode_request('HCC-ldap', array( 'Action' => 'GebruikerBestaatControle', 'hccLogin' => $hccLogin, 'userPassword' => $userPassword)); // 1.3 controleer of een gebruiker bestaat - optie 3 // (t.b.v. PC30 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 of hccPseudoniem gebruikt om het juiste record te zoeken // 1 van beide velden MOET aanwezig zijn $request = xmlrpc_encode_request('HCC-ldap', array( 'Action' => 'GebruikerBestaatControle', 'beheerLogin' => $beheerLogin, 'beheerPassword' => $beheerPassword, ['hccLidnr' => $hccLidnr,] ['hccLogin' => $hccLogin,] ['hccPseudoniem' => $hccPseudoniem])); Output positief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'GebruikerBestaatControle', 'Status' => 'TRUE', 'Message' => 'Gebruikersgegevens opgevraagd', 'hccLidnr' => $hccLidnr, 'hccLogin' => $hccLogin, 'hccPseudoniem' => $hccPseudoniem, 'cn' => $cn, 'sn' => $sn, 'mail' => $mail, 'Regio' => $hccRegio, 'hccIG' => $hccIG, 'hccRol' => $hccRol, 'ProfielBekend' => 'TRUE' / 'FALSE'); Output negatief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'GebruikerBestaatControle', 'Status' => 'FALSE', 'Message' => 'Onjuiste credentials' | 'Gegevenscombinatie onjuist'); // ** Drupal www.hcc.nl ** // 2.1 wijzig wachtwoord - optie 1 // op basis van hccLidnummer en hccCode (t.b.v. wachtwoord-vergeten procedure) // (authenticatie op basis van hccLidnr en hccCode) // Als de profielpagina nog niet is doorlopen wordt deze aanroep afgekeurd. // ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) ** $request = xmlrpc_encode_request('HCC-ldap', array( 'Action' => 'WijzigGebruikersGegevens', 'hccLidnr' => $hccLidnr, 'hccCode' => $hccCode, 'nieuw_userPassword' => $nieuw_userPassword)); Output positief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'WijzigGebruikersGegevens', 'Status' => 'TRUE', 'Message' => 'Gebruikersgegevens gewijzigd', 'hccLogin' => $hccLogin, 'cn' => $cn, 'sn' => $sn); // ** Drupal www.hcc.nl ** // ** t.b.v. profielpagina van bestaande leden ** // 2.2 wijzig wachtwoord - optie 2 // (t.b.v. profiel-pagina) // (authenticatie op basis van hccLogin en userPassword) // ** Deze aanpassingen worden doorgezet naar hccnet.nl (action=2) ** $request = xmlrpc_encode_request('HCC-ldap', array( 'Action' => 'WijzigGebruikersGegevens', 'hccLogin' => $hccLogin, 'userPassword' => $userPassword, 'nieuw_userPassword' => $nieuw_userPassword)); // 2.3 wijzig wachtwoord en/of pseudoniem - optie 3 // (t.b.v. PC30 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('HCC-ldap', array( 'Action' => 'WijzigGebruikersGegevens', 'beheerLogin' => $beheerLogin, 'beheerPassword' => $beheerPassword, ['hccLidnr' => $hccLidnr,] ['hccLogin' => $hccLogin,] 'nieuw_userPassword' => $nieuw_userPassword, ['nieuw_hccPseudoniem' => $nieuw_hccPseudoniem])); // ** Drupal www.hcc.nl ** // ** t.b.v. profielpagina van bestaande leden ** // 2.5 wijzig pseudoniem // (t.b.v. Drupal profiel-pagina) // (authenticatie op basis van hccLogin en userPassword) $request = xmlrpc_encode_request('HCC-ldap', array( 'Action' => 'WijzigGebruikersGegevens', 'hccLogin' => $hccLogin, 'userPassword' => $userPassword, 'nieuw_hccPseudoniem' => $nieuw_hccPseudoniem)); Output positief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'WijzigGebruikersGegevens', 'Status' => 'TRUE', 'Message' => 'Gebruikersgegevens gewijzigd', 'cn' => $cn, 'sn' => $sn); Output negatief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'WijzigGebruikersGegevens', 'Status' => 'FALSE', 'Message' => 'Onjuiste credentials' | 'Gegevenscombinatie onjuist'); // ** Drupal www.hcc.nl ** // ** t.b.v. aanpassen van de opt-in keuzes op de profielpagina ** // 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('HCC-ldap', array( 'Action' => 'HaalOptInKeuzen', 'beheerLogin' => $beheerLogin, 'beheerPassword' => $beheerPassword, ['hccLidnr' => $hccLidnr,] ['hccLogin' => $hccLogin]); Output positief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'HaalOptInKeuzen', 'Status' => 'TRUE', 'Message' => 'OptInLijst opgehaald', 'hccOptIn' => $hccOptIn); Output negatief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'HaalOptInKeuzen', 'Status' => 'FALSE', 'Message' => 'Gegevenscombinatie onjuist'); // ** Drupal www.hcc.nl ** // ** t.b.v. aanpassen van de opt-in keuzes op de profielpagina ** // 2.7 Schrijf de complete lijst met opt-ins van dit lid // (LET OP: authenticatie op basis van beheerdernaam en beheerderwachtwoord) $request = xmlrpc_encode_request('HCC-ldap', array( 'Action' => 'SchrijfOptInKeuzen', 'beheerLogin' => $beheerLogin, 'beheerPassword' => $beheerPassword, ['hccLidnr' => $hccLidnr,] ['hccLogin' => $hccLogin,] hccOptIn' => $hccOptIn); Output positief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'SchrijfOptInKeuzen', 'Status' => 'TRUE', 'Message' => 'OptInLijst weggeschreven', 'hccOptIn' => $hccOptIn); Output negatief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'SchrijfOptInKeuzen', 'Status' => 'FALSE', 'Message' => 'Gegevenscombinatie onjuist'); // ** Drupal www.hcc.nl ** // ** t.b.v. aanpassen van de opt-in keuzes op de profielpagina ** // 2.8 Haal de lijst met alle mogelijke bulletins // (geen authenticatie) $request = xmlrpc_encode_request('HCC-ldap', array( 'Action' => 'HaalOptInLijst')); Output positief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'HaalOptInLijst', 'Status' => 'TRUE', 'Message' => 'OptInLijst opgehaald', 'OptInLijst' => $OptInLijst); // ** Drupal www.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('HCC-net', array( 'Action' => 'MaakGebruikerAan', 'hccLidnr' => $hccLidnr, 'hccCode' => $hccCode, 'nieuw_hccLogin' => $nieuw_hccLogin, 'nieuw_userPassword' => $nieuw_userPassword, 'nieuw_hccPseudoniem' => $nieuw_hccPseudoniem)); Output positief: $reply = array( '0' => 'HCC-net', 'Action' => 'MaakGebruikerAan', 'Status' => 'TRUE', 'Message' => 'Gebruiker aangemaakt'); Output negatief: $reply = array( '0' => 'HCC-net', 'Action' => 'MaakGebruikerAan', 'Status' => 'FALSE', 'Message' => 'Onjuiste credentials' | 'Gebruikersnaam bestaat al' | 'Pseudoniem bestaat al' | 'Gegevenscombinatie onjuist'); // ** Drupal www.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('HCC-net', array( 'Action' => 'IsDezeNaamNogBeschikbaar', 'nieuw_hccLogin' => $nieuw_hccLogin)); Output positief: $reply = array( '0' => 'HCC-net', 'Action' => 'IsDezeNaamNogBeschikbaar', 'Status' => 'TRUE', 'Message' => 'Gebruikersnaam is nog beschikbaar'); Output negatief: $reply = array( '0' => 'HCC-net', 'Action' => 'IsDezeNaamNogBeschikbaar', 'Status' => 'FALSE', 'Message' => 'Gebruikersnaam bestaat al'); // ** Drupal www.hcc.nl ** // ** t.b.v. 1e keer doorlopen van de profielpagina ** // 8.3 Controleer of een Pseudoniem op dit moment bestaat // (geen authenticatie) // ** Het betreft een momentopname, de naam wordt niet gereserveerd! ** $request = xmlrpc_encode_request('HCC-net', array( 'Action' => 'IsDezePseudoniemNogBeschikbaar', 'nieuw_hccPseudoniem' => $nieuw_hccPseudoniem)); Output positief: $reply = array( '0' => 'HCC-net', 'Action' => 'IsDezePseudoniemNogBeschikbaar', 'Status' => 'TRUE', 'Message' => 'Pseudoniem is nog beschikbaar'); Output negatief: $reply = array( '0' => 'HCC-net', 'Action' => 'IsDezePseudoniemNogBeschikbaar', 'Status' => 'FALSE', 'Message' => 'Pseudoniem bestaat al'); // ** t.b.v. de PC30 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('HCC-ldap', array( 'Action' => 'ZoekHCCLid', 'beheerLogin' => $beheerLogin, 'beheerPassword' => $beheerPassword, 'ZoekMethode' => $ZoekMethode, 'ZoekString' => $zoekstring, 'ZoekLimiet' => $ZoekLimiet])); +----------------+-----------------------------------------+ | 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 | volledig pseudoniem | +----------------+-----------------------------------------+ Output positief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'ZoekHCCLid', '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 'hccHuisToevoeging' => $hcchuisToevoeging, 'hccPostcode' => $hccPostcode, 'hccWoonplaats' => $hccWoonplaats, 'hccLand' => $hccLand, 'hccTelefoon' => $hccTelefoon, 'hccMobiel' => $hccMobiel, 'mail' => $mail, 'hccIG' => $hccIG, 'hccRol' => $hccRol, 'hccLogin' => $hccLogin, 'hccPseudoniem' => $hccPseudoniem)]*)); Output negatief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'ZoekHCCLid', 'Status' => 'FALSE', 'Message' => 'Gebruiker niet gevonden'); $reply = array( '0' => 'HCC-ldap', 'Action' => 'ZoekHCCLid', 'Status' => 'FALSE', 'Message' => 'Onjuiste credentials'); // ** t.b.v. de PC30 zoekpagina ** // A.2 Haal een hccnet.nl token t.b.v. 1 hcc lid op $request = xmlrpc_encode_request('HCC-ldap', array( 'Action' => 'HaalPC30Token' 'beheerLogin' => $beheerLogin, 'beheerPassword' => $beheerPassword, 'hccLidnr' => $hccLidnr)); Output positief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'HaalPC30Token', 'Status' => 'TRUE', 'Message' => 'Token opgevraagd', 'Token' => $PC30Token); Output negatief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'HaalPC30Token', 'Status' => 'FALSE', 'Message' => 'Gebruiker niet gevonden' | '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) $request = xmlrpc_encode_request('HCC-ldap', array( 'Action' => 'ZoekGroeperingsLid', 'AccountNaam' => $lidnr, ['AccountCode' => $AccountCode,] ['token' => $token,] 'Groepering' => $groepering, 'ZoekMethode' => $ZoekMethode, 'ZoekString' => $zoekstring, 'ZoekLimiet' => $ZoekLimiet,] ['Bijeenkomst' => $Bijeenkomst])); // Alleen voor gebruik op de // bijeenkomsten aanwezigheidsregistratie pagina +--------------+-----------------------------------------+ | ZoekMethode | ZoekString | +--------------+-----------------------------------------+ | achternaam | (deel van) de naam | | postcode | (eerste deel van) postcode | | lidnummer | volledig lidnummer | | nieuwe_leden | YYYYMMDD vanaf waar gezocht moet worden | | kaderleden | n.v.t. | +--------------+-----------------------------------------+ Output positief: $reply = array( '0' => 'HCC-ldap', '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, 'hccKaderMail' => $hccKaderMail, 'hccRegio' => $hccRegio, 'hccIG' => $hccIG, 'hccRol' => $hccRol, 'hccLogin' => $hccLogin, 'hccPseudoniem' => $hccPseudoniem)]*))); Output negatief: $reply = array( '0' => 'HCC-ldap', '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('HCC-ldap', array( 'Action' => 'LidBezoektBijeenkomst', 'AccountNaam' => $lidnr, ['AccountCode' => $AccountCode,] ['token' => $token,] 'Bijeenkomst' => $Bijeenkomst, // groepering die deze bijeenkomst organiseert 'hccLidnr' => $hccLidnr)); // lid dat aanwezig gemeld moet worden Output positief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'LidBezoektBijeenkomst', 'Status' => 'TRUE', 'Message' => 'Bezoeker weggeschreven', 'Results' => array( 'cn' => $cn, // cn van laatste bezoeker 'hccgeslacht' => $hccGeslacht, // hccGeslacht van laatste bezoeker 'AantalBezoekers' => $AantalBezoekers)); Output negatief: $reply = array( '0' => 'HCC-ldap', '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('HCCldap', array( 'Action' => 'VraagLidgegevensTokenAan', 'AccountNaam' => $lidnr, 'AccountCode' => $AccountCode, ['datum' => $datum,] // optioneel: datum YYYY-MM-DD 'Groepering' => $Groepering)); // groepering Output positief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'VraagLidgegevensTokenAan', 'Status' => 'TRUE', 'Message' => 'Token opgevraagd', 'token' => $token, 'sn' => $sn); Output negatief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'VraagLidgegevensTokenAan', 'Status' => 'FALSE', 'Message' => 'Onjuiste credentials'); // ** Drupal www.hcc.nl ** // ** t.b.v. daily cron job ** // C.1 Vraag de lijst met opgeheven leden op // Antwoord: lijst met (lidnummer, hccLogin, hccPseudoniem, // datum einde lidmaatschap (formaat:YYYYMMDD)) $request = xmlrpc_encode_request('HCC-ldap', array( 'Action' => GeefOpgezegdeLeden', 'beheerLogin' => $beheerLogin, 'beheerPassword' => $beheerPassword)); Output positief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'GeefOpgezegdeLeden', 'Status' => 'TRUE', 'Message' => 'Opgezegde leden', ['Results' => array( [array( '0' => 'Result', 'hccLogin' => $hccLogin, 'hccLidnummer' => $hccLidnummer, 'DatumEindeLidmaatschap' => $DatumEindeLidmaatschap)]*)); Output negatief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'GeefOpgezegdeLeden', 'Status' => 'FALSE', 'Message' => 'Onjuiste credentials')); // onbekende aanroep $request = xmlrpc_encode_request('HCC-ldap', array( 'Action' => 'OnbekendeAanroep', 'parameter' => $iets)); Output negatief: $reply = array( '0' => 'HCC-ldap', 'Action' => 'OnbekendeAanroep', 'Status' => 'FALSE', 'Message' => 'Opdracht onbekend');
HCCpartner aanroepen
(interface versie 1)
// ** 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.1 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)); Output positief: $reply = array( '0' => 'HCCpartners', 'Action' => 'ControleerHCCLidmaatschap', 'Status' => 'TRUE'); 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');
HCCkader aanroepen
// ** t.b.v. aanpassen kadernet e-mail wachtwoord door de gebruiker ** // E.1 Pas het kadernet e-mail wachtwoord aan // op basis van hccLidnummer en hccCode (t.b.v. wachtwoord-aanpassen kadernet procedure) // (authenticatie op basis van hccLidnr en hccCode) $request = xmlrpc_encode_request('HCC-kader', array( 'Action' => 'WijzigGebruikersGegevens', 'hccLidnr' => $hccLidnr, 'hccCode' => $hccCode, 'nieuw_kaderPassword' => $nieuw_kaderPassword)); Output positief: $reply = array( '0' => 'HCC-kader', 'Action' => 'WijzigGebruikersGegevens', 'Status' => 'TRUE', 'Message' => 'Gebruikersgegevens gewijzigd', 'cn' => $cn, 'hccKaderMail' => $hccKaderMail); Output negatief: $reply = array( '0' => 'HCC-kader', 'Action' => 'WijzigGebruikersGegevens', 'Status' => 'FALSE', 'Message' => 'Onjuiste credentials' | 'Gegevenscombinatie onjuist'); // ** t.b.v. authenticatie op de kadersite of andere kader-gerelateerde sites ** // F.1 Controleer of dit een kaderlid is // (authenticatie op basis van hccLidnr en hccCode) $request = xmlrpc_encode_request('HCC-kader', array( 'Action' => 'ControleerKaderlid', 'hccLidnr' => $hccLidnr, 'hccCode' => $hccCode)); // F.2 Controleer of dit een kaderlid is // (authenticatie op basis van hccLogin en userPassword) $request = xmlrpc_encode_request('HCC-kader', array( 'Action' => 'ControleerKaderlid', 'hccLogin' => $hccLogin, 'userPassword' => $userPassword)); // 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('HCC-kader', array( 'Action' => 'ControleerKaderlid', 'beheerLogin' => $beheerLogin, 'beheerPassword' => $beheerPassword, ['hccLidnr' => $hccLidnr,] ['hccLogin' => $hccLogin,] ['hccPseudoniem' => $hccPseudoniem])); Output positief: $reply = array( '0' => 'HCC-kader', 'Action' => 'ControleerKaderlid', 'Status' => 'TRUE', 'Message' => 'Is kaderlid', 'hccRol' => $hccRol); Voor F.3 is het antwoord uitgebreider: $reply = array( '0' => 'HCC-kader', 'Action' => 'ControleerKaderlid', 'Status' => 'TRUE', 'Message' => 'Is kaderlid', 'hccLidnr' => $hccLidnr, 'hccLogin' => $hccLogin, 'hccPseudoniem' => $hccPseudoniem, 'cn' => $cn, 'hccRol' => $hccRol); Output negatief: $reply = array( '0' => 'HCC-kader', 'Action' => 'ControleerKaderlid', '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 // (geen authenticatie) $request = xmlrpc_encode_request('HCC-kader', array( 'Action' => 'GeefAlleGroeperingen')); Output positief: $reply = array( '0' => 'HCC-kader', 'Action' => 'GeefAlleGroeperingen', 'Status' => 'TRUE', 'Message' => 'Lijst met groeperingen opgevraagd', 'Result' => $groeperingen); // ** t.b.v. lijsten op de kadernet server en de kantoor-beheerpagina ** // F.5 Vraag alle kaderrollen op // (geen authenticatie) $request = xmlrpc_encode_request('HCCkader', array( 'Action' => 'GeefAlleKaderRollen')); Output positief: $reply = array( '0' => 'HCC-kader', 'Action' => 'GeefAlleKaderRollen', 'Status' => 'TRUE', 'Message' => 'Lijst met kaderrollen opgevraagd', 'Result' => $kaderrollen); // F.6 - Wijzig 1 kaderrol van een gebruiker $request = xmlrpc_encode_request('HCC-kader', array( 'Action' => 'WijzigHccRol', 'beheerLogin' => $beheerLidnr, 'beheerPassword' => $accountCode, 'hccLidnr' => $hccLidnr, 'kaderrol' => $groepering . '#' . $rol, 'waarde' => $waarde)); // onbekende aanroep $request = xmlrpc_encode_request('HCCkader', array( 'Action' => 'OnbekendeAanroep', 'parameter' => $iets)); Output negatief: $reply = array( '0' => 'HCC-kader', 'Action' => 'OnbekendeAanroep', 'Status' => 'FALSE', 'Message' => 'Opdracht onbekend');
HCCenquete aanroepen
// G.1 Expandeer NL postcode // (geen authenticatie) $request = xmlrpc_encode_request('HCCenquete', array('ExpandeerPostcode', array('PostCode', $postcode), array('HuisNummer', $huisnummer))); Output positief: $reply = array( '0' => 'HCCenquete', 'Action' => 'ExpandeerPostcode', 'Status' => 'TRUE', 'Message' => 'Postcode opgevraagd', 'Adresgegevens' => array( 'Straat' => $straat, 'HuisNr' => $huisnummer, 'HuisNrToev' => $huisnummerToevoeging, 'Postcode' => $postcode, 'Plaats' => $woonplaats, 'GemeenteCode' => $gemeenteCode, 'ProvincieCode' => $provincieCode, 'LandCode' => $landcode))); Output negatief: $reply = array('HCCenquete', array('Action', 'ExpandeerPostcode'), array('Status', 'FALSE'), array('Message', 'Onjuiste postcode/huisnummer combinatie' | 'SOAP Error')); // G.2 Haal lidgegevens op // (authenticatie op basis van username/password) $request = xmlrpc_encode_request('HCCenquete', array('HaalLidGegevens', array('username', $username), array('password', $password), array('hccLidnummer', $hccLidnummer))); Output positief: $reply = array('HCCenquete', array( 'Action' => 'HaalLidGegevens', 'Status' => 'TRUE', 'Message' => 'Lidgegevens opgevraagd', 'Lidgegevens' => json_encode( array( 'Achternaam' => $achternaam, 'Voornaam' => $voornaam, 'Tussenvoegsels' => $tussenvoegsels, 'Voorletters' => $voorletters, 'Geboortedatum' => $geboortedatum // YYYY-MM-DD, 1900-01-01 'Geslacht' => 'Man' | 'Vrouw' | 'Onbekend', 'Emailadres' => $emailadres, 'TelefoonNr' => $telefoon, 'MobielNr' => $gsm_nummer, 'Adres' => array( 'Straat' => $straat, 'HuisNr' => $huisnummer, 'HuisNrToev' => $huisnummerToevoeging, 'Postcode' => $postcode, 'Plaats' => $woonplaats, 'GemeenteCode' => $gemeenteCode, 'ProvincieCode' => $provincieCode, 'LandCode' => $landcode))))); Output negatief: $reply = array('HCCenquete', array('Action', 'HaalLidGegevens'), array('Status', 'FALSE'), array('Message', 'Onjuiste gegevenscombinatie' | 'Onjuiste credentials')); // G.3 Pas lidgegevens aan // (authenticatie op basis van username/password) $request = xmlrpc_encode_request('HCCenquete', array('PasLidGegevensAan', array('username', $username), array('password', $password), array('hccLidnummer', $hccLidnummer))); array('Lidgegevens' => json_encode( array( 'Voornaam' => $voornaam, 'Voorletters' => $voorletters, 'Tussenvoegsels' => $tussenvoegsels, 'Geboortedatum' => $geboortedatum // YYYY-MM-DD, 1900-01-01 'Geslacht' => 'Man' | 'Vrouw' | 'Onbekend', 'Emailadres' => $emailadres, 'TelefoonNr' => $telefoon, 'MobielNr' => $gsm_nummer, 'Adres' => array( 'Straat' => $straat, 'HuisNr' => $huisnummer, 'HuisNrToev' => $huisnummerToevoeging, 'Postcode' => $postcode, 'Plaats' => $woonplaats, 'GemeenteCode' => $gemeenteCode, 'ProvincieCode' => $provincieCode, 'LandCode' => $landcode))))); Output positief: $reply = array('HCCenquete', array('Action' => 'PasLidGegevensAan', array('Status', 'TRUE'), array('Message', 'Lidgegevens aangepast')); Output negatief: $reply = array('HCCenquete', array('Action' => 'PasLidGegevensAan', array('Status', 'FALSE'), array('Message', 'Onjuiste gegevenscombinatie' | 'Onjuiste credentials'));
HCC-groepering aanroepen
// H.1 controleer of een gebruiker bestaat // (authenticatie op basis van hccLogin en userPassword) $request = xmlrpc_encode_request('HCC-groepering', array( 'Action' => 'GebruikerBestaatControle', 'hccLogin' => $hccLogin, 'userPassword' => $userPassword, 'hccGroepering => $hccGroepering)); Output positief: $reply = array( '0' => 'HCC-groepering', 'Action' => 'GebruikerBestaatControle', 'hccGroepering' => $hccGroepering, 'Status' => 'TRUE', 'Message' => 'Gebruikersgegevens gecontroleerd', 'cn' => $cn, ['hccLidnr' => $hccLidnr], ['mail' => $mail,] ['givenName' => $givenName,] ['hccGeslacht' => $hccGeslacht,] ['hccAanhef' => $hccAanhef,] ['hccPseudoniem' => $hccPseudoniem,] ['hccRol' => $hccRol]); Output negatief: $reply = array( '0' => 'HCC-groepering', 'Action' => 'GebruikerBestaatControle', 'Status' => 'FALSE', 'Message' => 'Onjuiste credentials' | 'Geen groeperingslid');
HCC-forum aanroepen
// I.1 controleer of een gebruiker bestaat // (authenticatie op basis van beheerdernaam en beheerderwachtwoord) $request = xmlrpc_encode_request('HCC-forum', array( 'Action' => 'GebruikerBestaatControle', 'forumLogin' => $forumLogin, 'forumPassword' => $forumPassword, 'hccLidnr' => $hccLidnr, 'hccPostcode' => $hccPostcode, 'hccHuisnr' => $hccHuisnr)); Output positief: $reply = array( '0' => 'HCC-forum', 'Action' => 'GebruikerBestaatControle', 'Status' => 'TRUE', 'Message' => 'Gebruikersgegevens gecontroleerd')); Output negatief: $reply = array( '0' => 'HCC-forum', 'Action' => 'GebruikerBestaatControle', 'Status' => 'FALSE', 'Message' => 'Onjuiste credentials' | 'Geen hcclid');
Echo test
// t.b.v. controle of de verbinding met de XML-RPC server functioneert // Eenvoudige echo test $request = xmlrpc_encode_request('echo', array( 'Action' => 'echo', 'What' => $string)); Output positief: $reply = array( '0' => 'echo', 'Action' => 'echo', 'Status' => 'TRUE', 'Message' => $string);
HenZ XMLRPC interface
Overzicht van XML procedures die bij HenZ draaien (worden via de Hobbynet XML-RPC server afgehandeld)
- Action=1 controleer of een gebruiker bestaat op basis van hcclidnummer en de hash van de hcccode. (geen aparte interface definitie noodzakelijk, bestaat al lokaal in XML-RPC server) Zie 1.1: controleer of een gebruiker bestaat - optie 1 - 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=6 Haal een PC30 beheertoken op basis van hcclidnummer en de hash van de hcccode. (XML-RPC server voert de hccnet XML-call uit, zie A.2 HaalPC30Token)
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 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 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 GebruikerBestaatControle * nieuwe aanroep - HCCpartners aanroep nieuwe interface ('Action' => 'ControleerHCCLidmaatschap')
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
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 php5-sasl apt-get install libapache2-mod-php5
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 (eenrichting 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.
- uitgaand: sta TCP 443 naar service.hccnet.nl toe
Overige akties
Nakijken: is dit voor Apache, of is dit al eerder gedaan voor de ldap server zelf?
- Zorg ervoor dat de CAcert.org certificaten in /etc/ssl/certs staan, doe daarna een "c_rehash ."
cd /etc/ssl/certs wget http://www.cacert.org/certs/root.crt -O cacert_org.pem wget http://www.cacert.org/certs/class3.crt -O cacert_org_class3.pem c_rehash .
Alternatief: zet beide certificaten in 1 bestand, en doe de rehash:
cd /etc/ssl/certs wget http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt -O CAcert_org.pem c_rehash .
- Voeg deze regel toe aan /etc/ldap/ldap.conf:
TLS_CACERT /etc/ssl/certs/ca-certificates.crt