<?php
/* 
 * Créer automatiquement un client dans la configuration de l'agent
 */

/*
 * Voici comment ce script est appelé depuis EPPK *
 * 
 * 
 public boolean createOpacNetwork(String networkId) {
        WebServiceJsonClient configOpacClient = new WebServiceJsonClient(String.format("%s/createClient.php", crdpConfigClientUrl), 2000, 0, 0);
        Map<String, String> params = new HashMap<String, String>();
        params.put("clientId", networkId);
        params.put("key", crdpConfigClientKey);
        params.put("ipagent", crdpConfigClientIpAgent);
        try {
            JSONObject res = configOpacClient.doPost("", params);
            if (res.getBoolean("success") && networkId.equals(res.getString("client"))) {
                return true;
            }
        }
        catch (JSONException e) {
            return false;
        }
        return false;
    }
*/

function calculMdpAdmin($idClient) {
    $key = 'opac3d1stinstallpass';
    $pass = md5($key.$idClient);
    return substr($pass, 0, 10);
}

if (!empty($_REQUEST['clientId']) && !empty($_REQUEST['key']) && !empty($_REQUEST['ipagent'])) {
    define('MAIL_WARN', 'g.messonnier@decalog.net');
    $tabServers = array('webservices.esezhame.fr' => array('domain' => 'opac3d.fr', 'mail' => true),
                        'webservices.qa.opac3d.com' => array('domain' => 'qa.opac3d.com', 'mail' => false),
                        'srveppksearch' => array('domain' => 'srveppksearch.decalog.net', 'mail' => false),
                        'srveppksearch.decalog.net' => array('domain' => 'srveppksearch.decalog.net', 'mail' => false));
    $res = new stdClass();
    $res->success = false;
    $ipAgent = $_REQUEST['ipagent'];
    if($ipAgent == "webservices.esezhame.fr") $ipAgent = "e-sezhame.fr"; // Hack FAR : On force le changement d'adresse malgré la config envoyée par EPPK
    
    if (file_exists("../serveur/config/clients.ini")) {
        if (file_put_contents("../serveur/config/clients.ini", "\r\n[".$_REQUEST['clientId']."]\r\nkey = "
                .$_REQUEST['key']."\r\nip_agent = "
                .$ipAgent."\r\n", FILE_APPEND)) {
            $res->success = true;
        }
        else {
            $res->success = false;
            $res->error = 'Ecriture impossible dans le fichier client';
        }
    }
    else {
        $res->success = false;
        $res->error = 'Fichier de config client inexistant';
    }

    $res->client = $_REQUEST['clientId'];
    $res->adminPassword = calculMdpAdmin($_REQUEST['clientId']);
    if (array_key_exists($_SERVER['HTTP_HOST'], $tabServers)) {
        $res->urlOpac = 'http://'.$_REQUEST['clientId'].'.'.$tabServers[$_SERVER['HTTP_HOST']]['domain'];
        if ($tabServers[$_SERVER['HTTP_HOST']]['mail']) {
            //Envoi mail a l'admin pour les infos opac
            mail(MAIL_WARN, 'Informations du nouvel opac3d '.$res->client, "Bonjour,<br /><br />L'opac3d du client <strong>".$res->client."</strong> vient d'être automatiquement créé.<br /><br />Voici les informations principales :<br /><ul><li><strong>ID client : </strong>".$res->client."</li><li><strong>URL opac3d : </strong><a href=\"".$res->urlOpac."\">".$res->urlOpac."</a></li><li><strong>Mot de passe administrateur : </strong>".$res->adminPassword."</li></ul>", "From: no-reply@".$tabServers[$_SERVER['HTTP_HOST']]['domain']."\r\nContent-Type:text/html;charset=utf-8");
        }
    }
    echo json_encode($res);
}
