zephir.backend.local_rpc

Package zephir :: Package backend :: Module local_rpc |
[frames] | no frames]

# Source Code for Module zephir.backend.local_rpc

     1  # -*- coding: UTF-8 -*-
     2  ###########################################################################
     3  # Eole NG - 2007
     4  # Copyright Pole de Competence Eole  (Ministere Education - Academie Dijon)
     5  # Licence CeCill  cf /root/LicenceEole.txt
     6  # eole@ac-dijon.fr
     7  #
     8  # local_rpc.py
     9  #
    10  # exemple de fonctions xml-rpc supplémentaires intégrées à zephir
    11  #
    12  ###########################################################################
    13  """module pour ajout de fonctionnalités (contributions)"""
    14
    15  # import principaux du backend zephir
    16  from zephir.backend.db_utils import *
    17  from zephir.backend import config
    18  from zephir.backend.config import u
    19  from zephir.backend.xmlrpceole import XMLRPCEole as XMLRPC
    20  # divers imports utiles
    21  import sys,os,shutil,time,base64
    22
    23
    24 -class RPCLocal(XMLRPC):
    25      """serveur XMLRPC pour ajout de fonctions
    26      """
    27 -    def __init__(self,parent):
    28          self.dbpool = db_connect()
    29          self.dbpool.noisy = 0
    30          XMLRPC.__init__(self)
    31          self.parent = parent
    32
    33  #        # exemple de fonction xmlrpc
    34  #
    35  #        # pour permettre aux utilisateurs d'accéder à cette fonction, vous devez créer un groupe
    36  #        # de droits dans la base de données qui fasse référence à cette fonction, puis ajoutez ce
    37  #        # groupe aux droits accessibles à l'utilisateur depuis l'application web.
    38  #        # exemple : insert into groupes_droits (libelle,droits) values ('fonctions locales', '[\'local.hello_world\',\'local.ma_fonction\']')
    39  #        # pour l'instant l'ajout doit être fait manuellement dans la base, mais si nécessaire,
    40  #        # une fonctionnalité de gestion des groupes de droits pourrait être ajoutée à l'application web
    41  #
    42  #        def xmlrpc_hello_world(self,cred_user):
    43  #            """renvoie un message de bienvenue. L'argument cred_user
    44  #            ne doit pas être donné à l'appel de la fonction.
    45  #            Il est renseigné automatiquement par le backend
    46  #            exemple d'appel à cette fonction depuis python
    47  #            >> import xmlrpclib
    48  #            >> zephir=xmlrpclib.ServerProxy('https://user:password@adresse_zephir:7080')
    49  #            >> zephir.local.hello_world()
    50  #            """
    51  #            hostname = os.environ['HOSTNAME']
    52  #            # la fonction transforme toutes les chaines contenues dans l'objet passé en
    53  #            # paramètre en chaines unicode (UTF-8)
    54  #            message = u("""Bonjour %s, bienvenue sur le serveur %s (zephir)""" % (cred_user,hostname))
    55  #            return message
    56