2009-01-09 12 views
1

J'écris une application Django et je souhaite créer un compte sur notre messagerie hébergée Google Apps à l'aide de l'API Provisioning chaque fois qu'un compte est créé localement. Je n'utiliserais que des signaux, mais comme je souhaite que les mots de passe soient synchronisés entre les sites, j'ai utilisé les enveloppes pour créer des comptes Google et mettre à jour les mots de passe, respectivement. Monkeypatching semble être mal vu, donc je voudrais savoir, y at-il une meilleure façon d'accomplir cela?Synchronisation d'utilisateurs Django avec Google Apps sans monotypage

Répondre

1

Avez-vous envisagé de sous-classer le modèle User? Cela peut créer un ensemble différent de problèmes et n'est disponible qu'avec les versions plus récentes (je ne suis pas sûr du moment où le changement est intervenu, je suis sur le tronc).

0

Le sous-classement semble le meilleur itinéraire, tant que vous pouvez changer tout votre code pour utiliser la nouvelle classe. Je pense que c'est supporté dans la dernière version de Django.

0

Monkeypatching est définitivement mauvais. Difficile de dire quoi que ce soit puisque vous avez donné si peu de code/information. Mais je suppose que vous avez le mot de passe en clair à un moment donné (dans une vue, dans un formulaire) alors pourquoi ne pas synchroniser manuellement alors?

0

Je sous-classe Utilisateur avec Django 1.0.2. Vous faites essentiellement une autre table qui lie à user_id.

class User(MyBaseModel): 
    user = models.OneToOneField(User, help_text="The django created User object") 

puis à l'exécution

@login_required 
def add(request) : 
    u = request.user.get_profile() 

Vous pouvez remplacer facilement les méthodes nécessaires.

Et pour ceux qui n'avaient pas entendu parler de monkeypatching: http://en.wikipedia.org/wiki/Monkey_patch. C'est une dérivation de patch de guérilla.