diff --git a/Sio2/SISR/20-ldap/doku.php b/Sio2/SISR/20-ldap/doku.php
new file mode 100644
index 0000000..50e3726
--- /dev/null
+++ b/Sio2/SISR/20-ldap/doku.php
@@ -0,0 +1,131 @@
+
+ *
+ * @global Input $INPUT
+ */
+
+// update message version - always use a string to avoid localized floats!
+use dokuwiki\Extension\Event;
+
+$updateVersion = "53";
+
+// xdebug_start_profiling();
+
+if(!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__).'/');
+
+// define all DokuWiki globals here (needed within test requests but also helps to keep track)
+global $ACT, $INPUT, $QUERY, $ID, $REV, $DATE_AT, $IDX,
+ $DATE, $RANGE, $HIGH, $TEXT, $PRE, $SUF, $SUM, $INFO, $JSINFO;
+
+
+if(isset($_SERVER['HTTP_X_DOKUWIKI_DO'])) {
+ $ACT = trim(strtolower($_SERVER['HTTP_X_DOKUWIKI_DO']));
+} elseif(!empty($_REQUEST['idx'])) {
+ $ACT = 'index';
+} elseif(isset($_REQUEST['do'])) {
+ $ACT = $_REQUEST['do'];
+} else {
+ $ACT = 'show';
+}
+
+// load and initialize the core system
+require_once(DOKU_INC.'inc/init.php');
+
+//import variables
+$INPUT->set('id', str_replace("\xC2\xAD", '', $INPUT->str('id'))); //soft-hyphen
+$QUERY = trim($INPUT->str('q'));
+$ID = getID();
+
+$REV = $INPUT->int('rev');
+$DATE_AT = $INPUT->str('at');
+$IDX = $INPUT->str('idx');
+$DATE = $INPUT->int('date');
+$RANGE = $INPUT->str('range');
+$HIGH = $INPUT->param('s');
+if(empty($HIGH)) $HIGH = getGoogleQuery();
+
+if($INPUT->post->has('wikitext')) {
+ $TEXT = cleanText($INPUT->post->str('wikitext'));
+}
+$PRE = cleanText(substr($INPUT->post->str('prefix'), 0, -1));
+$SUF = cleanText($INPUT->post->str('suffix'));
+$SUM = $INPUT->post->str('summary');
+
+
+//parse DATE_AT
+if($DATE_AT) {
+ $date_parse = strtotime($DATE_AT);
+ if($date_parse) {
+ $DATE_AT = $date_parse;
+ } else { // check for UNIX Timestamp
+ $date_parse = @date('Ymd',$DATE_AT);
+ if(!$date_parse || $date_parse === '19700101') {
+ msg(sprintf($lang['unable_to_parse_date'], hsc($DATE_AT)));
+ $DATE_AT = null;
+ }
+ }
+}
+
+//check for existing $REV related to $DATE_AT
+if($DATE_AT) {
+ $pagelog = new \dokuwiki\ChangeLog\PageChangeLog($ID);
+ $rev_t = $pagelog->getLastRevisionAt($DATE_AT);
+ if($rev_t === '') { //current revision
+ $REV = null;
+ $DATE_AT = null;
+ } else if ($rev_t === false) { //page did not exist
+ $rev_n = $pagelog->getRelativeRevision($DATE_AT,+1);
+ msg(
+ sprintf(
+ $lang['page_nonexist_rev'],
+ dformat($DATE_AT),
+ wl($ID, array('rev' => $rev_n)),
+ dformat($rev_n)
+ )
+ );
+ $REV = $DATE_AT; //will result in a page not exists message
+ } else {
+ $REV = $rev_t;
+ }
+}
+
+//make infos about the selected page available
+$INFO = pageinfo();
+
+// handle debugging
+if($conf['allowdebug'] && $ACT == 'debug') {
+ html_debug();
+ exit;
+}
+
+//send 404 for missing pages if configured or ID has special meaning to bots
+if(!$INFO['exists'] &&
+ ($conf['send404'] || preg_match('/^(robots\.txt|sitemap\.xml(\.gz)?|favicon\.ico|crossdomain\.xml)$/', $ID)) &&
+ ($ACT == 'show' || (!is_array($ACT) && substr($ACT, 0, 7) == 'export_'))
+) {
+ header('HTTP/1.0 404 Not Found');
+}
+
+//prepare breadcrumbs (initialize a static var)
+if($conf['breadcrumbs']) breadcrumbs();
+
+// check upstream
+checkUpdateMessages();
+
+$tmp = array(); // No event data
+Event::createAndTrigger('DOKUWIKI_STARTED', $tmp);
+
+//close session
+session_write_close();
+
+//do the work (picks up what to do from global env)
+act_dispatch();
+
+$tmp = array(); // No event data
+Event::createAndTrigger('DOKUWIKI_DONE', $tmp);
+
+// xdebug_dump_function_profile(1);
diff --git a/Sio2/SISR/20-ldap/dokuwiki.php b/Sio2/SISR/20-ldap/dokuwiki.php
new file mode 100644
index 0000000..7612c3c
--- /dev/null
+++ b/Sio2/SISR/20-ldap/dokuwiki.php
@@ -0,0 +1,180 @@
+ tags
+ // 'htmldiff' - diff as HTML table
+ // 'html' - the full page rendered in XHTML
+$conf['rss_media'] = 'both'; //what should be listed?
+ // 'both' - page and media changes
+ // 'pages' - page changes only
+ // 'media' - media changes only
+$conf['rss_update'] = 5*60; //Update the RSS feed every n seconds (defaults to 5 minutes)
+$conf['rss_show_summary'] = 1; //Add revision summary to title? 0|1
+$conf['rss_show_deleted'] = 1; //Show deleted items 0|1
+
+/* Advanced Settings */
+$conf['updatecheck'] = 1; //automatically check for new releases?
+$conf['userewrite'] = 0; //this makes nice URLs: 0: off 1: .htaccess 2: internal
+$conf['useslash'] = 0; //use slash instead of colon? only when rewrite is on
+$conf['sepchar'] = '_'; //word separator character in page names; may be a
+ // letter, a digit, '_', '-', or '.'.
+$conf['canonical'] = 0; //Should all URLs use full canonical http://... style?
+$conf['fnencode'] = 'url'; //encode filenames (url|safe|utf-8)
+$conf['autoplural'] = 0; //try (non)plural form of nonexisting files?
+$conf['compression'] = 'gz'; //compress old revisions: (0: off) ('gz': gnuzip) ('bz2': bzip)
+ // bz2 generates smaller files, but needs more cpu-power
+$conf['gzip_output'] = 0; //use gzip content encodeing for the output xhtml (if allowed by browser)
+$conf['compress'] = 1; //Strip whitespaces and comments from Styles and JavaScript? 1|0
+$conf['cssdatauri'] = 512; //Maximum byte size of small images to embed into CSS, won't work on IE<8
+$conf['send404'] = 0; //Send a HTTP 404 status for non existing pages?
+$conf['broken_iua'] = 0; //Platform with broken ignore_user_abort (IIS+CGI) 0|1
+$conf['xsendfile'] = 0; //Use X-Sendfile (1 = lighttpd, 2 = standard)
+$conf['renderer_xhtml'] = 'xhtml'; //renderer to use for main page generation
+$conf['readdircache'] = 0; //time cache in second for the readdir operation, 0 to deactivate.
+$conf['search_nslimit'] = 0; //limit the search to the current X namespaces
+$conf['search_fragment'] = 'exact'; //specify the default fragment search behavior
+$conf['trustedproxy'] = '^(::1|[fF][eE]80:|127\.|10\.|192\.168\.|172\.((1[6-9])|(2[0-9])|(3[0-1]))\.)';
+ //Regexp of trusted proxy address when reading IP using HTTP header
+ // if blank, do not trust any proxy (including local IP)
+
+/* Feature Flags */
+$conf['defer_js'] = 1; // Defer javascript to be executed after the page's HTML has been parsed. Setting will be removed in the next release.
+
+/* Network Settings */
+$conf['dnslookups'] = 1; //disable to disallow IP to hostname lookups
+$conf['jquerycdn'] = 0; //use a CDN for delivering jQuery?
+// Proxy setup - if your Server needs a proxy to access the web set these
+$conf['proxy']['host'] = '';
+$conf['proxy']['port'] = '';
+$conf['proxy']['user'] = '';
+$conf['proxy']['pass'] = '';
+$conf['proxy']['ssl'] = 0;
+$conf['proxy']['except'] = '';
diff --git a/Sio2/SISR/20-ldap/install.php b/Sio2/SISR/20-ldap/install.php
new file mode 100644
index 0000000..20f05a2
--- /dev/null
+++ b/Sio2/SISR/20-ldap/install.php
@@ -0,0 +1,682 @@
+
+
No PHP Support
+
+ It seems this server has no PHP support enabled. You will need to
+ enable PHP before you can install and run DokuWiki. Contact your hosting
+ provider if you're unsure what this means.
+
+*/
+/**
+ * Dokuwiki installation assistance
+ *
+ * @author Chris Smith
+ */
+
+if (!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__) . '/');
+if (!defined('DOKU_CONF')) define('DOKU_CONF', DOKU_INC . 'conf/');
+if (!defined('DOKU_LOCAL')) define('DOKU_LOCAL', DOKU_INC . 'conf/');
+
+// load and initialize the core system
+require_once(DOKU_INC . 'inc/init.php');
+require_once(DOKU_INC . 'inc/pageutils.php');
+
+// check for error reporting override or set error reporting to sane values
+if (!defined('DOKU_E_LEVEL')) {
+ error_reporting(E_ALL ^ E_NOTICE);
+} else {
+ error_reporting(DOKU_E_LEVEL);
+}
+
+// language strings
+require_once(DOKU_INC . 'inc/lang/en/lang.php');
+if (isset($_REQUEST['l']) && !is_array($_REQUEST['l'])) {
+ $LC = preg_replace('/[^a-z\-]+/', '', $_REQUEST['l']);
+}
+if (empty($LC)) $LC = 'en';
+if ($LC && $LC != 'en') {
+ require_once(DOKU_INC . 'inc/lang/' . $LC . '/lang.php');
+}
+
+// initialise variables ...
+$error = array();
+
+// begin output
+header('Content-Type: text/html; charset=utf-8');
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \n";
+ include(DOKU_INC . 'inc/lang/en/install.html');
+ print "
\n";
+ }
+ ?>
+
+
+
+
+ ' . $lang['i_problems'] . '';
+ print_errors();
+ print_retry();
+ } elseif (!check_configs()) {
+ echo '
' . $lang['i_modified'] . '
';
+ print_errors();
+ } elseif (check_data($_REQUEST['d'])) {
+ // check_data has sanitized all input parameters
+ if (!store_data($_REQUEST['d'])) {
+ echo '
' . $lang['i_failure'] . '
';
+ print_errors();
+ } else {
+ echo '
' . $lang['i_success'] . '
';
+ }
+ } else {
+ print_errors();
+ print_form($_REQUEST['d']);
+ }
+ } catch (Exception $e) {
+ echo 'Caught exception: ', $e->getMessage(), "\n";
+ }
+ ?>
+
+
+
+
+

+

+
+
+
+
+
+
+
+ '',
+ 'acl' => '1',
+ 'superuser' => '',
+ 'fullname' => '',
+ 'email' => '',
+ 'password' => '',
+ 'confirm' => '',
+ 'policy' => '0',
+ 'allowreg' => '0',
+ 'license' => 'cc-by-sa'
+ );
+ global $lang;
+ global $error;
+
+ if (!is_array($d)) $d = array();
+ foreach ($d as $k => $v) {
+ if (is_array($v))
+ unset($d[$k]);
+ else $d[$k] = (string)$v;
+ }
+
+ //autolowercase the username
+ $d['superuser'] = isset($d['superuser']) ? strtolower($d['superuser']) : "";
+
+ $ok = false;
+
+ if (isset($_REQUEST['submit'])) {
+ $ok = true;
+
+ // check input
+ if (empty($d['title'])) {
+ $error[] = sprintf($lang['i_badval'], $lang['i_wikiname']);
+ $ok = false;
+ }
+ if (isset($d['acl'])) {
+ if (empty($d['superuser']) || ($d['superuser'] !== cleanID($d['superuser']))) {
+ $error[] = sprintf($lang['i_badval'], $lang['i_superuser']);
+ $ok = false;
+ }
+ if (empty($d['password'])) {
+ $error[] = sprintf($lang['i_badval'], $lang['pass']);
+ $ok = false;
+ } elseif (!isset($d['confirm']) || $d['confirm'] != $d['password']) {
+ $error[] = sprintf($lang['i_badval'], $lang['passchk']);
+ $ok = false;
+ }
+ if (empty($d['fullname']) || strstr($d['fullname'], ':')) {
+ $error[] = sprintf($lang['i_badval'], $lang['fullname']);
+ $ok = false;
+ }
+ if (empty($d['email']) || strstr($d['email'], ':') || !strstr($d['email'], '@')) {
+ $error[] = sprintf($lang['i_badval'], $lang['email']);
+ $ok = false;
+ }
+ } else {
+ // Since default = 1, browser won't send acl=0 when user untick acl
+ $d['acl'] = '0';
+ }
+ }
+ $d = array_merge($form_default, $d);
+ return $ok;
+}
+
+/**
+ * Writes the data to the config files
+ *
+ * @author Chris Smith
+ *
+ * @param array $d
+ * @return bool
+ */
+function store_data($d)
+{
+ global $LC;
+ $ok = true;
+ $d['policy'] = (int) $d['policy'];
+
+ // create local.php
+ $now = gmdate('r');
+ $output = <<hash_bcrypt($d['password']);
+
+ // create users.auth.php
+ $output = <<
+# Don't modify the lines above
+#
+# Userfile
+#
+# Auto-generated by install script
+# Date: $now
+#
+# Format:
+# login:passwordhash:Real Name:email:groups,comma,separated
+
+EOT;
+ // --- user:bcryptpasswordhash:Real Name:email:groups,comma,seperated
+ $output = $output . "\n" . join(':', [
+ $d['superuser'],
+ $pass,
+ $d['fullname'],
+ $d['email'],
+ 'admin,user',
+ ]) . "\n";
+ $ok = $ok && fileWrite(DOKU_LOCAL . 'users.auth.php', $output);
+
+ // create acl.auth.php
+ $output = <<
+# Don't modify the lines above
+#
+# Access Control Lists
+#
+# Auto-generated by install script
+# Date: $now
+
+EOT;
+ if ($d['policy'] == 2) {
+ $output .= "* @ALL 0\n";
+ $output .= "* @user 8\n";
+ } elseif ($d['policy'] == 1) {
+ $output .= "* @ALL 1\n";
+ $output .= "* @user 8\n";
+ } else {
+ $output .= "* @ALL 8\n";
+ }
+ $ok = $ok && fileWrite(DOKU_LOCAL . 'acl.auth.php', $output);
+ }
+
+ // enable popularity submission
+ if (isset($d['pop']) && $d['pop']) {
+ @touch(DOKU_INC . 'data/cache/autosubmit.txt');
+ }
+
+ // disable auth plugins til needed
+ $output = <<
+ *
+ * @param string $filename
+ * @param string $data
+ * @return bool
+ */
+function fileWrite($filename, $data)
+{
+ global $error;
+ global $lang;
+
+ if (($fp = @fopen($filename, 'wb')) === false) {
+ $filename = str_replace($_SERVER['DOCUMENT_ROOT'], '{DOCUMENT_ROOT}/', $filename);
+ $error[] = sprintf($lang['i_writeerr'], $filename);
+ return false;
+ }
+
+ if (!empty($data)) {
+ fwrite($fp, $data);
+ }
+ fclose($fp);
+ return true;
+}
+
+
+/**
+ * check installation dependent local config files and tests for a known
+ * unmodified main config file
+ *
+ * @author Chris Smith
+ *
+ * @return bool
+ */
+function check_configs()
+{
+ global $error;
+ global $lang;
+
+ $ok = true;
+
+ $config_files = array(
+ 'local' => DOKU_LOCAL . 'local.php',
+ 'users' => DOKU_LOCAL . 'users.auth.php',
+ 'auth' => DOKU_LOCAL . 'acl.auth.php'
+ );
+
+ // configs shouldn't exist
+ foreach ($config_files as $file) {
+ if (file_exists($file) && filesize($file)) {
+ $file = str_replace($_SERVER['DOCUMENT_ROOT'], '{DOCUMENT_ROOT}/', $file);
+ $error[] = sprintf($lang['i_confexists'], $file);
+ $ok = false;
+ }
+ }
+ return $ok;
+}
+
+
+/**
+ * Check other installation dir/file permission requirements
+ *
+ * @author Chris Smith
+ *
+ * @return bool
+ */
+function check_permissions()
+{
+ global $error;
+ global $lang;
+
+ $dirs = array(
+ 'conf' => DOKU_LOCAL,
+ 'data' => DOKU_INC . 'data',
+ 'pages' => DOKU_INC . 'data/pages',
+ 'attic' => DOKU_INC . 'data/attic',
+ 'media' => DOKU_INC . 'data/media',
+ 'media_attic' => DOKU_INC . 'data/media_attic',
+ 'media_meta' => DOKU_INC . 'data/media_meta',
+ 'meta' => DOKU_INC . 'data/meta',
+ 'cache' => DOKU_INC . 'data/cache',
+ 'locks' => DOKU_INC . 'data/locks',
+ 'index' => DOKU_INC . 'data/index',
+ 'tmp' => DOKU_INC . 'data/tmp'
+ );
+
+ $ok = true;
+ foreach ($dirs as $dir) {
+ if (!file_exists("$dir/.") || !is_writable($dir)) {
+ $dir = str_replace($_SERVER['DOCUMENT_ROOT'], '{DOCUMENT_ROOT}', $dir);
+ $error[] = sprintf($lang['i_permfail'], $dir);
+ $ok = false;
+ }
+ }
+ return $ok;
+}
+
+/**
+ * Check the availability of functions used in DokuWiki and the PHP version
+ *
+ * @author Andreas Gohr
+ *
+ * @return bool
+ */
+function check_functions()
+{
+ global $error;
+ global $lang;
+ $ok = true;
+
+ if (version_compare(phpversion(), '5.6.0', '<')) {
+ $error[] = sprintf($lang['i_phpver'], phpversion(), '5.6.0');
+ $ok = false;
+ }
+
+ if (ini_get('mbstring.func_overload') != 0) {
+ $error[] = $lang['i_mbfuncoverload'];
+ $ok = false;
+ }
+
+ try {
+ random_bytes(1);
+ } catch (\Exception $th) {
+ // If an appropriate source of randomness cannot be found, an Exception will be thrown by PHP 7+
+ $error[] = $lang['i_urandom'];
+ $ok = false;
+ }
+
+ if (ini_get('mbstring.func_overload') != 0) {
+ $error[] = $lang['i_mbfuncoverload'];
+ $ok = false;
+ }
+
+ $funcs = explode(' ', 'addslashes call_user_func chmod copy fgets ' .
+ 'file file_exists fseek flush filesize ftell fopen ' .
+ 'glob header ignore_user_abort ini_get mkdir ' .
+ 'ob_start opendir parse_ini_file readfile realpath ' .
+ 'rename rmdir serialize session_start unlink usleep ' .
+ 'preg_replace file_get_contents htmlspecialchars_decode ' .
+ 'spl_autoload_register stream_select fsockopen pack xml_parser_create');
+
+ if (!function_exists('mb_substr')) {
+ $funcs[] = 'utf8_encode';
+ $funcs[] = 'utf8_decode';
+ }
+
+ if (!function_exists('mail')) {
+ if (strpos(ini_get('disable_functions'), 'mail') !== false) {
+ $disabled = $lang['i_disabled'];
+ } else {
+ $disabled = "";
+ }
+ $error[] = sprintf($lang['i_funcnmail'], $disabled);
+ }
+
+ foreach ($funcs as $func) {
+ if (!function_exists($func)) {
+ $error[] = sprintf($lang['i_funcna'], $func);
+ $ok = false;
+ }
+ }
+ return $ok;
+}
+
+/**
+ * Print language selection
+ *
+ * @author Andreas Gohr
+ */
+function langsel()
+{
+ global $lang;
+ global $LC;
+
+ $dir = DOKU_INC . 'inc/lang';
+ $dh = opendir($dir);
+ if (!$dh) return;
+
+ $langs = array();
+ while (($file = readdir($dh)) !== false) {
+ if (preg_match('/^[\._]/', $file)) continue;
+ if (is_dir($dir . '/' . $file) && file_exists($dir . '/' . $file . '/lang.php')) {
+ $langs[] = $file;
+ }
+ }
+ closedir($dh);
+ sort($langs);
+
+ echo '';
+}
+
+/**
+ * Print global error array
+ *
+ * @author Andreas Gohr
+ */
+function print_errors()
+{
+ global $error;
+ if (!empty($error)) {
+ echo '';
+ foreach ($error as $err) {
+ echo "- $err
";
+ }
+ echo '
';
+ }
+}
diff --git a/Sio2/SISR/20-ldap/labo51.lan.ldif b/Sio2/SISR/20-ldap/labo51.lan.ldif
new file mode 100644
index 0000000..fc7b2fd
--- /dev/null
+++ b/Sio2/SISR/20-ldap/labo51.lan.ldif
@@ -0,0 +1,372 @@
+dn: dc=labo51,dc=lan
+o: labo51
+dc: labo51
+structuralObjectClass: organization
+entryUUID: fa4724a4-cf8e-103c-8b56-5b76801a304f
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220923132546Z
+ou: labo51
+description: labo51
+objectClass: top
+objectClass: dcObject
+objectClass: organization
+objectClass: gosaDepartment
+objectClass: gosaAcl
+gosaAclEntry: 0:subtree:Y249YWRtaW4sb3U9YWNscm9sZXMsZGM9bGFibzUxLGRjPWxhbg==
+ :dWlkPWZkLWFkbWluLG91PXBlb3BsZSxkYz1sYWJvNTEsZGM9bGFu
+entryCSN: 20220923133315.145750Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220923133315Z
+
+dn: cn=admin,dc=labo51,dc=lan
+objectClass: simpleSecurityObject
+objectClass: organizationalRole
+cn: admin
+description: LDAP administrator
+userPassword:: e1NTSEF9azJpYVFLcGRSYis3MEVqMjVoR0V1aXpudGtGdDRyVEc=
+structuralObjectClass: organizationalRole
+entryUUID: fa477026-cf8e-103c-8b57-5b76801a304f
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220923132546Z
+entryCSN: 20220923132546.893074Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220923132546Z
+
+dn: ou=fusiondirectory,dc=labo51,dc=lan
+objectClass: organizationalUnit
+ou: fusiondirectory
+structuralObjectClass: organizationalUnit
+entryUUID: fa2072e0-cf8f-103c-9ee5-cd38c1c99b59
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220923133256Z
+entryCSN: 20220923133256.134250Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220923133256Z
+
+dn: cn=config,ou=fusiondirectory,dc=labo51,dc=lan
+fdLanguage: fr_FR
+fdTheme: breezy
+fdTimezone: Europe/Paris
+fdLdapSizeLimit: 200
+fdModificationDetectionAttribute: entryCSN
+fdLogging: TRUE
+fdSchemaCheck: TRUE
+fdEnableSnapshots: TRUE
+fdSnapshotBase: ou=snapshots,dc=labo51,dc=lan
+fdPasswordDefaultHash: ssha
+fdForcePasswordDefaultHash: FALSE
+fdHandleExpiredAccounts: FALSE
+fdLoginAttribute: uid
+fdForceSSL: FALSE
+fdWarnSSL: TRUE
+fdSessionLifeTime: 1800
+fdHttpAuthActivated: FALSE
+fdHttpHeaderAuthActivated: FALSE
+fdHttpHeaderAuthHeaderName: AUTH_USER
+fdSslKeyPath: /etc/ssl/private/fd.key
+fdSslCertPath: /etc/ssl/certs/fd.cert
+fdSslCaCertPath: /etc/ssl/certs/ca.cert
+fdCasActivated: FALSE
+fdCasServerCaCertPath: /etc/ssl/certs/ca.cert
+fdCasHost: localhost
+fdCasPort: 443
+fdCasContext: /cas
+fdAccountPrimaryAttribute: uid
+fdCnPattern: %givenName% %sn%
+fdStrictNamingRules: TRUE
+fdUserRDN: ou=people
+fdAclRoleRDN: ou=aclroles
+fdRestrictRoleMembers: FALSE
+fdSplitPostalAddress: FALSE
+fdDisplayErrors: FALSE
+fdLdapStats: FALSE
+fdDebugLevel: 0
+fdListSummary: TRUE
+fdAclTabOnObjects: FALSE
+fdDisplayHookOutput: FALSE
+structuralObjectClass: fusionDirectoryConf
+cn: config
+entryUUID: fa2105f2-cf8f-103c-9ee6-cd38c1c99b59
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220923133256Z
+fdDashboardNumberOfDigit: 3
+fdDashboardPrefix: PC
+fdDashboardExpiredAccountsDays: 15
+fdOGroupRDN: ou=groups
+fdForceSaslPasswordAsk: FALSE
+objectClass: fusionDirectoryConf
+objectClass: fdDashboardPluginConf
+objectClass: fusionDirectoryPluginsConf
+objectClass: fdPasswordRecoveryConf
+fdPasswordRecoveryActivated: FALSE
+fdPasswordRecoveryEmail: to.be@chang.ed
+fdPasswordRecoveryValidity: 10
+fdPasswordRecoverySalt: SomethingSecretAndVeryLong
+fdPasswordRecoveryUseAlternate: FALSE
+fdPasswordRecoveryLoginAttribute: uid
+fdPasswordRecoveryMailSubject:: W0Z1c2lvbkRpcmVjdG9yeV0gTGllbiBkZSByw6lpbml0
+ aWFsaXNhdGlvbiBkdSBtb3QgZGUgcGFzc2U=
+fdPasswordRecoveryMailBody:: Qm9uam91ciwKClZvaWNpIHZvcyBpbmZvcm1hdGlvbnMgOgo
+ tIElkZW50aWZpYW504oCvOiAlcwotIExpZW7igK86ICVzCgpDZSBsaWVuIGVzdCBzZXVsZW1lbn
+ QgdmFsaWRlIHBlbmRhbnQgMTAgbWludXRlcw==
+fdPasswordRecoveryMail2Subject:: W0Z1c2lvbkRpcmVjdG9yeV0gUsOpaW5pdGlhbGlzYXR
+ pb24gZHUgbW90IGRlIHBhc3NlIHLDqXVzc2ll4oCvIQ==
+fdPasswordRecoveryMail2Body:: Qm9uam91ciwKClZvdHJlIG1vdCBkZSBwYXNzZSBhIMOpdM
+ OpIGNoYW5nw6kuIApWb3RyZSBpZGVudGlmaWFudCBkZSBjb25uZXhpb24gZXN0IHRvdWpvdXJzI
+ CVzLg==
+fusionConfigMd5: a757b5932e118edd99c930ce5cb6399b
+fdGroupRDN: ou=groups
+fdMinId: 100
+fdUidNumberBase: 1100
+fdGidNumberBase: 1100
+fdIdAllocationMethod: traditional
+fdShells: /bin/ash
+fdShells: /bin/bash
+fdShells: /bin/csh
+fdShells: /bin/sh
+fdShells: /bin/ksh
+fdShells: /bin/tcsh
+fdShells: /bin/dash
+fdShells: /bin/zsh
+fdShells: /sbin/nologin
+fdShells: /bin/false
+fdShells: /usr/bin/git-shell
+fdDefaultShell: /bin/ash
+entryCSN: 20220927084251.846088Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220927084251Z
+
+dn: ou=aclroles,dc=labo51,dc=lan
+objectClass: organizationalUnit
+ou: aclroles
+structuralObjectClass: organizationalUnit
+entryUUID: 05717270-cf90-103c-9ee8-cd38c1c99b59
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220923133315Z
+entryCSN: 20220923133315.120052Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220923133315Z
+
+dn: cn=admin,ou=aclroles,dc=labo51,dc=lan
+objectClass: top
+objectClass: gosaRole
+cn: admin
+description: Donne tous les droits sur tous les objets
+gosaAclTemplate: 0:all;cmdrw
+structuralObjectClass: gosaRole
+entryUUID: 0571e12e-cf90-103c-9ee9-cd38c1c99b59
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220923133315Z
+entryCSN: 20220923133315.122882Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220923133315Z
+
+dn: ou=people,dc=labo51,dc=lan
+objectClass: organizationalUnit
+ou: people
+structuralObjectClass: organizationalUnit
+entryUUID: 0573d402-cf90-103c-9eea-cd38c1c99b59
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220923133315Z
+entryCSN: 20220923133315.135652Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220923133315Z
+
+dn: uid=fd-admin,ou=people,dc=labo51,dc=lan
+objectClass: inetOrgPerson
+objectClass: organizationalPerson
+objectClass: person
+cn: System Administrator
+sn: Administrator
+givenName: System
+uid: fd-admin
+userPassword:: e1NTSEF9WFlPYlZ4bi96eEhkUkFZaWluZjRLaFZNeUJaa1hTQTM=
+structuralObjectClass: inetOrgPerson
+entryUUID: 0574800a-cf90-103c-9eeb-cd38c1c99b59
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220923133315Z
+entryCSN: 20220923133315.140056Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220923133315Z
+
+dn: cn=manager,ou=aclroles,dc=labo51,dc=lan
+cn: manager
+description: Donner tous les droits aux utilisateurs sur cette branche
+objectClass: top
+objectClass: gosaRole
+gosaAclTemplate: 0:user/user;cmdrw,user/posixAccount;cmdrw
+structuralObjectClass: gosaRole
+entryUUID: 06db8bc8-cf90-103c-9eec-cd38c1c99b59
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220923133317Z
+entryCSN: 20220923133317.493099Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220923133317Z
+
+dn: cn=editowninfos,ou=aclroles,dc=labo51,dc=lan
+cn: editowninfos
+description:: UGVybWV0IGF1eCB1dGlsaXNhdGV1cnMgZCfDqWRpdGVyIGxldXJzIHByb3ByZX
+ MgaW5mb3JtYXRpb25zIChvbmdsZXRzIGfDqW7DqXJpcXVlIGV0IHBvc2l4LCDDoCBuJ3V0aWxpc
+ 2VyIHF1ZSBzdXIgbGEgYmFzZSk=
+objectClass: top
+objectClass: gosaRole
+gosaAclTemplate: 0:user/user;srw,user/posixAccount;srw
+structuralObjectClass: gosaRole
+entryUUID: 06dc1dcc-cf90-103c-9eed-cd38c1c99b59
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220923133317Z
+entryCSN: 20220923133317.496837Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220923133317Z
+
+dn: cn=editownpwd,ou=aclroles,dc=labo51,dc=lan
+cn: editownpwd
+description:: UGVybWV0IGF1eCB1dGlsaXNhdGV1cnMgZGUgY2hhbmdlciBsZXVyIG1vdCBkZS
+ BwYXNzZSAow6AgbuKAmXV0aWxpc2VyIHF1ZSBzdXIgbGEgYmFzZSk=
+objectClass: top
+objectClass: gosaRole
+gosaAclTemplate: 0:user/user;s#userPassword;rw
+structuralObjectClass: gosaRole
+entryUUID: 06dc87d0-cf90-103c-9eee-cd38c1c99b59
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220923133317Z
+entryCSN: 20220923133317.499552Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220923133317Z
+
+dn: ou=recovery,ou=fusiondirectory,dc=labo51,dc=lan
+objectClass: organizationalUnit
+ou: recovery
+structuralObjectClass: organizationalUnit
+entryUUID: 867ca16e-cf90-103c-9ef1-cd38c1c99b59
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220923133651Z
+entryCSN: 20220923133651.619426Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220923133651Z
+
+dn: ou=locks,ou=fusiondirectory,dc=labo51,dc=lan
+objectClass: organizationalUnit
+ou: locks
+structuralObjectClass: organizationalUnit
+entryUUID: 89251e00-cf90-103c-9ef2-cd38c1c99b59
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220923133656Z
+entryCSN: 20220923133656.079063Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220923133656Z
+
+dn: ou=snapshots,dc=labo51,dc=lan
+objectClass: organizationalUnit
+ou: snapshots
+structuralObjectClass: organizationalUnit
+entryUUID: d945fb3e-cf90-103c-9ef3-cd38c1c99b59
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220923133910Z
+entryCSN: 20220923133910.512170Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220923133910Z
+
+dn: uid=dpaul,ou=people,dc=labo51,dc=lan
+cn: Paul Dubois
+sn: Dubois
+givenName: Paul
+description: Polo
+uid: dpaul
+preferredLanguage: fr_FR
+userPassword:: e1NTSEF9RkgrNnNtUnNxMGw3KzFDODB2MXNTQzJQVXJSZEttS0g=
+structuralObjectClass: inetOrgPerson
+entryUUID: 27e0f56e-cf91-103c-9ef4-cd38c1c99b59
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220923134122Z
+objectClass: inetOrgPerson
+objectClass: organizationalPerson
+objectClass: person
+objectClass: posixAccount
+objectClass: shadowAccount
+homeDirectory: /home/paul
+gecos: Paul Dubois
+loginShell: /bin/ash
+uidNumber: 1101
+gidNumber: 1002
+shadowLastChange: 19262
+entryCSN: 20220927084325.025161Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220927084325Z
+
+dn: cn=fd-admin,dc=labo51,dc=lan
+objectClass: posixGroup
+cn: fd-admin
+description: Groupe de l'utilisateur fd-admin
+gidNumber: 1001
+structuralObjectClass: posixGroup
+entryUUID: ee847b00-cf91-103c-8113-87fb8d81eb6d
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220923134655Z
+entryCSN: 20220923134655.650648Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220923134655Z
+
+dn: cn=dpaul,dc=labo51,dc=lan
+objectClass: posixGroup
+cn: dpaul
+description: Groupe de l'utilisateur dpaul
+gidNumber: 1002
+structuralObjectClass: posixGroup
+entryUUID: 8474bbca-d28a-103c-8c1d-dbb4971e905b
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220927083124Z
+entryCSN: 20220927083124.720185Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220927083124Z
+
+dn: uid=louis,ou=people,dc=labo51,dc=lan
+cn: louis depres
+sn: depres
+givenName: louis
+uid: louis
+preferredLanguage: fr_FR
+userPassword:: e1NTSEF9b2dhU25CWlNEWkFUekVIVXJsSXR4NFFEbGM2QURCNVk=
+structuralObjectClass: inetOrgPerson
+entryUUID: 4dee1eb4-d28c-103c-8125-f3f3a5e1910b
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220927084412Z
+objectClass: inetOrgPerson
+objectClass: organizationalPerson
+objectClass: person
+objectClass: posixAccount
+objectClass: shadowAccount
+homeDirectory: /home/louis
+gecos: louis depres
+loginShell: /bin/ash
+uidNumber: 1102
+gidNumber: 1101
+shadowLastChange: 19262
+entryCSN: 20220927084412.248333Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220927084412Z
+
+dn: ou=groups,dc=labo51,dc=lan
+objectClass: organizationalUnit
+ou: groups
+structuralObjectClass: organizationalUnit
+entryUUID: 4defab8a-d28c-103c-8128-f3f3a5e1910b
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220927084412Z
+entryCSN: 20220927084412.244637Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220927084412Z
+
+dn: cn=louis,ou=groups,dc=labo51,dc=lan
+objectClass: posixGroup
+cn: louis
+description: Groupe de l'utilisateur louis
+gidNumber: 1101
+structuralObjectClass: posixGroup
+entryUUID: 4defde70-d28c-103c-8129-f3f3a5e1910b
+creatorsName: cn=admin,dc=labo51,dc=lan
+createTimestamp: 20220927084412Z
+entryCSN: 20220927084412.245939Z#000000#000#000000
+modifiersName: cn=admin,dc=labo51,dc=lan
+modifyTimestamp: 20220927084412Z
+
diff --git a/Sio2/SISR/20-ldap/local.php b/Sio2/SISR/20-ldap/local.php
new file mode 100644
index 0000000..82b70d1
--- /dev/null
+++ b/Sio2/SISR/20-ldap/local.php
@@ -0,0 +1,16 @@
+