[CPS-users-fr] Pb manage local role et authentif ldap

Cedric Marfil cedric.marfil at capgemini.com
Mer 8 Nov 13:44:59 CET 2006


Pour ce qui est du message  "_log() got an unexpected keyword argument 'error'", le serveur Zope v2.9 est buggé par endroit, certaines classes python du serveur font appel à la péthode _log en passant le paramètre "error" qui est l'ancienne implémentation de la classe logger je pense. Pour y remédier, il convient d'éditer les sources du serveur et de remplacer error par exc_info.
Voici par exemple un fichier à modifier:
Exemple, dans le fichier "...\Zope-2.9.4\lib\python\OFS\Cache.py", il y a 3 "error=" à remplacer par "exc_info=":
..
..
..
    def ZCacheable_get(self, view_name='', keywords=None,
                       mtime_func=None, default=None):
        '''Retrieves the cached view for the object under the
        conditions specified by keywords. If the value is
        not yet cached, returns the default.
        '''
        c = self.ZCacheable_getCache()
        if c is not None and self.__enabled:
            ob, view_name = self.ZCacheable_getObAndView(view_name)
            try:
                val = c.ZCache_get(ob, view_name, keywords,
                                   mtime_func, default)
                return val
            except:
                logger.warn('ZCache_get() exception', exc_info=sys.exc_info())
                return default
        return default
..
..
..
    def ZCacheable_set(self, data, view_name='', keywords=None,
                       mtime_func=None):
        '''Cacheable views should call this method after generating
        cacheable results. The data argument can be of any Python type.
        '''
        c = self.ZCacheable_getCache()
        if c is not None and self.__enabled:
            ob, view_name = self.ZCacheable_getObAndView(view_name)
            try:
                c.ZCache_set(ob, data, view_name, keywords,
                             mtime_func)
            except:
                logger.warn('ZCache_set() exception', exc_info=sys.exc_info())
..
..
..
    def ZCacheable_invalidate(self, view_name='', REQUEST=None):
        '''Called after a cacheable object is edited. Causes all
        cache entries that apply to the view_name to be removed.
        Returns a status message.
        '''
        c = self.ZCacheable_getCache()
        if c is not None:
            ob, view_name = self.ZCacheable_getObAndView(view_name)
            try:
                message = c.ZCache_invalidate(ob)
                if not message:
                    message = 'Invalidated.'
            except:
                exc = sys.exc_info()
                try:
                    logger.warn('ZCache_invalidate() exception', exc_info=exc)
                    message = 'An exception occurred: %s: %s' % exc[:2]
                finally:
                    exc = None
        else:
            message = 'This object is not associated with a cache manager.'
        if REQUEST is not None:
            return self.ZCacheable_manage(
                self, REQUEST, management_view='Cache',
                manage_tabs_message=message)
        else:
            return message
..
..
..

Cordialement


--------------------------------------------------------------------------------
 Cédric Marfil
Concepteur Réalisateur Intégrateur Confirmé
Tél. direct: 03.20.65.34.82
Mail: cedric.marfil at capgemini.com

Capgemini
181 rue Jules Delcenserie
59700 Marcq en Baroeul

  ----- Original Message ----- 
  From: michael Dupont 
  To: cps-users-fr at lists.nuxeo.com 
  Sent: Tuesday, November 07, 2006 5:04 PM
  Subject: [CPS-users-fr] Pb manage local role et authentif ldap


  Bonjour,
  j'aimerais savoir si quelqu'un a deja rencontré mon problème :
  j'ai mis en place dans mon instance 3 directory , un LDAP BackingDirectory, 
  un ZODB Directory
  et au dessus un Stacking Directory.
  Le LDAP ne me sert que pour l'authentification et les recherches et est donc 
  en lecture seule
  la ZODB me sert pour créer des utilisateurs "particuliers" type 
  "le-gars-qui-bosse-dans-le-bureau-a-gauche" et aussi l'authentification
  j'ai donc ,dans le Stacking, les LDAP et ZODB en backing directory et le 
  ZODB en backing pour création.
  tout ca marche pas mal, mais j'ai un probleme dès que je mets le stacking en 
  Directory de référence
  de l'ACL_USERS (CPS User Folder) : j'ai le manage local roles qui génère une 
  erreur :


  Exception Type  TypeError
  >Exception Value  _log() got an unexpected keyword argument 'error'

  Mr Racinet(que je remercie d'ailleurs pour la rapidité de ces aides) m'a 
  donné cette piste :

  le traceback dit qu'il y a eu error au moment d'écrire dans les logs
  (ce qui n'est certes pas normal, peut venir de problèmes de
  permissions sur le répertoire log de l'instance). On voit cependant
  que ça commence dans LDAPBackingDirectory

  À la ligne correspondante dans le code, on voit que l'erreur en
  question est "ldap.INSUFFICIENT_ACCESS", donc que la fiche LDAP qui
  sert pour le bind (normalement un compte technique unique pour tout
  cps, et non la fiche de l'utilisateur) n'a pas les droits pour
  l'opération voulue.

  < Et là, je ne comprends pas ....:( >

  (Vérifiez donc vos ACL dans le LDAP (par exemple
  en utilisant un autre client ldap comme ldapbrowser)

  Mais voilà, je ne m'en sort pas. Je ne peux mettre que le ZODB dans mon 
  acl_users pour ne pas avoir cette erreur et je ne comprends pas pourquoi ma 
  connexion ldap devrait avoir d'autres droits que celui de lecture.

  Si quelqu'un a une piste ou a déja le probleme, merci d'avance

  _________________________________________________________________
  MSN Hotmail sur i-modeT : dialoguez avec vos amis depuis votre mobile comme 
  sur PC ! http://mobile.live.fr/hotmail/bouygues/

  _______________________________________________
  cps-users-fr 
  Adresse de la liste : cps-users-fr at lists.nuxeo.com
  Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>

This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient,  you are not authorized to read, print, retain, copy, disseminate,  distribute, or use this message or any part thereof. If you receive this  message in error, please notify the sender immediately and delete all  copies of this message.
-------------- section suivante --------------
Une pièce jointe HTML a été enlevée...
URL: http://lists.nuxeo.com/pipermail/cps-users-fr/attachments/20061108/d4865a93/attachment.html



This list archive provided by Nuxeo, the leaders of open source ECM. Check out the Nuxeo 5 open source, standards-based ECM project.