# -*- coding: UTF-8 -*-
###########################################################################
# Eole NG - 2007  
# Copyright Pole de Competence Eole  (Ministere Education - Academie Dijon)
# Licence CeCill  cf /root/LicenceEole.txt
# eole@ac-dijon.fr 
#  
# local_rpc.py
#  
# exemple de fonctions xml-rpc supplémentaires intégrées à zephir
#       
###########################################################################
"""module pour ajout de fonctionnalités (contributions)"""

# import principaux du backend zephir
from zephir.backend.db_utils import *
from zephir.backend import config
from zephir.backend.config import u
from zephir.backend.xmlrpceole import XMLRPCEole as XMLRPC
# divers imports utiles
import sys,os,shutil,time,base64


class RPCLocal(XMLRPC):
    """serveur XMLRPC pour ajout de fonctions
    """
    def __init__(self,parent):
        self.dbpool = db_connect()
        self.dbpool.noisy = 0
        XMLRPC.__init__(self)
        self.parent = parent
        
#        # exemple de fonction xmlrpc
#        
#        # pour permettre aux utilisateurs d'accéder à cette fonction, vous devez créer un groupe
#        # de droits dans la base de données qui fasse référence à cette fonction, puis ajoutez ce
#        # groupe aux droits accessibles à l'utilisateur depuis l'application web.
#        # exemple : insert into groupes_droits (libelle,droits) values ('fonctions locales', '[\'local.hello_world\',\'local.ma_fonction\']')
#        # pour l'instant l'ajout doit être fait manuellement dans la base, mais si nécessaire,
#        # une fonctionnalité de gestion des groupes de droits pourrait être ajoutée à l'application web
#
#        def xmlrpc_hello_world(self,cred_user):
#            """renvoie un message de bienvenue. L'argument cred_user
#            ne doit pas être donné à l'appel de la fonction.
#            Il est renseigné automatiquement par le backend
#            exemple d'appel à cette fonction depuis python
#            >> import xmlrpclib
#            >> zephir=xmlrpclib.ServerProxy('https://user:password@adresse_zephir:7080')
#            >> zephir.local.hello_world()
#            """
#            hostname = os.environ['HOSTNAME']
#            # la fonction transforme toutes les chaines contenues dans l'objet passé en
#            # paramètre en chaines unicode (UTF-8)
#            message = u("""Bonjour %s, bienvenue sur le serveur %s (zephir)""" % (cred_user,hostname))
#            return message
            
        
