IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

python + Ldap


Sujet :

Réseau/Web Python

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations forums :
    Inscription : Juillet 2013
    Messages : 114
    Points : 47
    Points
    47
    Par défaut python + Ldap
    Bonjour!
    j'ai un problème que j'ai cherché partout depuis un grand moment et je n'ai pas trouve.C'est pour quoi je me suis tourné vers vous pour trouver une solution.

    Alors mon problème est le suivant:
    je veux ajouter des utilisateurs à partir de mon application en python dans la base LDAP mais ça genere des erreurs suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 99, in _ldap_call
        result = func(*args,**kwargs)
    INSUFFICIENT_ACCESS: {'info': 'no write access to parent', 'desc': 'Insufficient access'}
    Alors je demande à toute personne qui a une idée de m'aider.

    Merci d'avance.

  2. #2
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Bonjour Koreimy,

    A première vu je dirai qu'il s'agit d'un problème de droit. Chaque fichier possède des droits typiques. Sous Linux par exemple, les droits d'un fichiers s'écrivent ainsi: drwxrwxrwx

    le d indique s'il s'agit d'un dossier ou non. Ensuite tu as 3 bloc de rwx: r pour readable, w pour writable, x pour executable. Le premier bloc concerne les droits du propriétaire vis-a-vis du fichier, le second bloc, les droits du groupe auquel appartient le propriétaire, le troisième bloc les droits des personnes n'appartenant pas aux groupes auquel appartient le propriétaire.

    Es-tu sur d'avoir les droit d'accéder et d'écrire sur ce fichier?
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations forums :
    Inscription : Juillet 2013
    Messages : 114
    Points : 47
    Points
    47
    Par défaut
    Effectivement c'est ça mon probleme.
    le fichier est cree au moment de l'insertion voila a peu pres la fonction qui me permet d'ajouter un utilisateur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     def ajoutLdap(self):             
            C=ConnexionLdap()  
            C.connexionAdminLdap() 
            l=C.getL()
            # The dn of our new entry/object
            dn="uid="+self.__login+",ou=Utilisateurs,dc=lnlm,dc=africacte"  
     
            # A dict to help build the "body" of the object    
            home_us='/home/'+self.__login
            attrs = {}
            attrs['objectclass'] = ['top','person','organizationalPerson','inetOrgPerson','posixAccount','shadowAccount']
            attrs['cn'] = self.__cn
            attrs['sn'] = self.__nom
            attrs['givenName'] = self.__prenom
            attrs['preferredLanguage'] = 'fr_FR'
            attrs['uid'] = self.__login
            attrs['uidNumber'] =  str(C.countLDAP()+1)
            attrs['gidNumber'] =  '100'
            attrs['homeDirectory'] = home_us
            attrs['userPassword'] = self.__passwd
            attrs['loginShell'] = '/bin/bash'
     
            # Convert our dict to nice syntax for the add-function using modlist-module 
            ldif = modlist.addModlist(attrs)
    	#ldif =myuser.ldif(attrs) 
     
            # Do the actual synchronous add-operation to the ldapserver
            l.add_s(dn,ldif)
    En suite je me connecte à la base LDAP comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def connexionAdminLdap(self):                 
            self.__l.simple_bind_s("uid=koreimy,ou=Utilisateurs,dc=lnlm,dc=africacte","***")
    par ailleurs l'utilisateur "koreimy" est un utilisateur que j'ai cree par console, pas par application .
    voila un peu mon probleme, vraiment si j'ai trouvé une solution pour ça sera un grand soulagement.
    Merci d'avance

  4. #4
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Pourrais tu me dire quel type de LDAP tu utilise? Cela me permettrais de mieux t'aider: OpenLDAP, microsoft, ...? Les fonctions appelées ligne 2 & 3 sont elles des fonctions maisons ou issu d'un module. L'ideal serait que tu poste l'ensemble de ton code pour avoir une veritable vision d'ensemble
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations forums :
    Inscription : Juillet 2013
    Messages : 114
    Points : 47
    Points
    47
    Par défaut
    ok sans probleme.

    la classe compte qui gere les comptes des differentes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    # -*- coding:Utf-8 -*- 
     
    from ConnexionBD import *
    from ConnexionLDAP import *
     
    class Compte(object): 
     
        def __init__(self, etab, clas, login, nom,  prenom, phone,  mail,  cat,  date, passwd ):  
            self.__etab = etab 
    	self.__clas = clas
    	self.__login= login 
            self.__nom = nom
            self.__prenom = prenom 
            self.__cn = prenom+" "+nom 
            self.__phone = phone
            self.__cat = cat
            self.__mail = mail
            self.__date = date 
            self.__passwd = passwd 
     
        def ajoutLdap(self):             
            C=ConnexionLdap()  
            C.connexionAdminLdap() 
            l=C.getL()
            # The dn of our new entry/object
            dn="uid="+self.__login+",ou=Utilisateurs,dc=lnlm,dc=africacte"  
     
            # A dict to help build the "body" of the object    
            home_us='/home/'+self.__login
            attrs = {}
            attrs['objectclass'] = ['top','person','organizationalPerson','inetOrgPerson','posixAccount','shadowAccount']
            attrs['cn'] = self.__cn
            attrs['sn'] = self.__nom
            attrs['givenName'] = self.__prenom
            attrs['preferredLanguage'] = 'fr_FR'
            attrs['uid'] = self.__login
            attrs['uidNumber'] =  str(C.countLDAP()+1)
            attrs['gidNumber'] =  '100'
            attrs['homeDirectory'] = home_us
            attrs['userPassword'] = self.__passwd
            attrs['loginShell'] = '/bin/bash'
     
            # Convert our dict to nice syntax for the add-function using modlist-module 
            ldif = modlist.addModlist(attrs)
    	#ldif =myuser.ldif(attrs) 
     
            # Do the actual synchronous add-operation to the ldapserver
            l.add_s(dn,ldif)
     
            # Its nice to the server to disconnect and free resources when done
            C.deconnexionAdminLdap() 
     
        def rechercheLdap(self):
            return 0
     
        def ajoutBD(self, actif):         
            conn=connexionBD() 
            cursor = conn.cursor ()  
            cursor.execute("SELECT id FROM categorie where libelle_cat= %s", self.__cat ) 
            row = cursor.fetchone()
    	id_cat = row[0] 
    	cursor.execute("SELECT idEta FROM etablissement where nomEta= %s", self.__etab ) 
            row1 = cursor.fetchone()  
            id_etab = row1[0] 
    	cursor.execute("SELECT idClass FROM classe where nomClass= %s", self.__clas ) 
            row2 = cursor.fetchone()
    	id_clas=row2[0]    
            cursor.execute("""INSERT INTO compte (categorie_id,idEta,idClass,login,nom,prenom,telephone,ad_mail,date_naiss,passwd,actif) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,DES_ENCRYPT(%s),%s  )""", (id_cat,id_etab,id_clas, self.__login, self.__nom, self.__prenom, self.__phone, self.__mail, self.__date, self.__passwd, actif)) 
            cursor.close()
    	conn.commit()  
            conn.close() 
     
        def updateUser(self, login):
            conn = connexionBD()
            cursor = conn.cursor () 
            cursor.execute(""" UPDATE compte SET actif = 'O' where login =%s """, login)
            conn.close() 
     
        def rechercheLoginBD(self, login): 
            conn = connexionBD()
            cursor = conn.cursor ()        
            cursor.execute("SELECT login FROM compte where login=%s",  login)
            row = cursor.fetchone ()
            conn.close()
            if (row == None):
                return 0
            else:
                return 1
     
        def rechercheCpte(self, nom,  prenom,  date):
            conn = connexionBD()
            cursor = conn.cursor () 
            n = nom.upper()
            p = prenom.upper()
            cursor.execute("SELECT nom, prenom, date_naiss FROM compte where nom=%s and prenom=%s and date_naiss=%s",  (n,  p,  date))
            row = cursor.fetchone () 
            conn.close()
            if (row == None):
                return 0
            else:
                return 1
     
        def consulterComptes(self):
            conn = connexionBD()     
            cursor = conn.cursor() 
            cursor.execute("SELECT login,nom,prenom,libelle_cat,telephone, ad_mail,date_naiss FROM compte, categorie where compte.categorie_id=categorie.id")  
            rows = cursor.fetchall () 
            conn.close() 
            tab = '<table cellpadding="0" cellspacing="0" border="0" class="display" id="example" width="100%"><thead>'
            tab += "<tr><th >%s</th><th >%s</th><th >%s</th><th>%s</th> <th >%s</th><th >%s</th><th >%s</th><th >%s</th></tr></thead><tbody>"%("Nom", "Prenom",  "Identifiant","Groupe",  "Telephone", "Adresse mail", "Date de naissance", "Modifier")
            ligneTableau ="<tr>" +"<td>%s</td>"*8 +"</tr>\n" 
            for row in rows: 
                selection = "<a href=#><img src=\"annexes/edit.png\"/></a>"#%"modification_compte?id=%s"%row[0]  
                tab +=ligneTableau%(row[1], row[2], row[0],row[3], row[4], row[5], row[6],selection)   
            tab +="</tbody></table>"  
            return tab

    la classe qui permet de connecter à la base LDAP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    import ldap 
    import ldap.modlist as modlist
     
    class ConnexionLdap(object): 
     
        def __init__(self):                       
            self.__l = ldap.initialize("ldap://localhost") 
     
        def connexionAdminLdap(self):                 
            self.__l.simple_bind_s("uid=koreimy,ou=Utilisateurs,dc=lnlm,dc=africacte","erebi") 
    	#uid=dhermin,ou=People,dc=lnlm,o=africacte","rosalie270681
     
        def deconnexionAdminLdap(self):       
            self.__l.unbind_s() 
     
        def rechercheLoginLdap(self,uid): 
            baseDN = "ou=Utilisateurs, dc=lnlm, dc=africacte" 
            searchScope = ldap.SCOPE_SUBTREE
            # retrieve all attributes - again adjust to your needs - see documentation for more options
            retrieveAttributes = None 
            searchFilter = "uid="+uid       
            ldap_result_id = self.__l.search(baseDN, searchScope, searchFilter, retrieveAttributes) 
            result_type, result_data = self.__l.result(ldap_result_id, 0)
            if (result_data == []): 
                return 0 
            else: 
                return 1
     
        def countLDAP(self): 
            ## The next lines will also need to be changed to support your search requirements and directory
            baseDN = "ou=Utilisateurs, dc=lnlm, dc=africacte" 
            searchScope = ldap.SCOPE_SUBTREE
            ## retrieve all attributes - again adjust to your needs - see documentation for more options
            retrieveAttributes = None 
            searchFilter = "cn=*"    
            ldap_result_id = self.__l.search(baseDN, searchScope, searchFilter, retrieveAttributes)
            result_set = []
            while 1:
                result_type, result_data = self.__l.result(ldap_result_id, 0)
                if (result_data == []):
                    break
                else:
                        ## here you don't have to append to a list
                        ## you could do whatever you want with the individual entry
                        ## The appending to list is just for illustration. 
                    if result_type == ldap.RES_SEARCH_ENTRY:
                        result_set.append(result_data)
            return len(result_set)
     
        def getL(self):
            return self.__l
    la fonction qui permet de creer le compte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    def creation_Cpte(self):
            if(cherrypy.session.has_key("nom") and cherrypy.session.has_key("priorite")):
                if(cherrypy.session["nom"] != ""):
                    if(int(cherrypy.session["priorite"]) < 20): 
                        return self.accueil_Admin((Glob.html["acceuilAdministrateur"])%("", "", cherrypy.session["nom"], (Glob.html["creationCpteA"])%("", "","","","","","","","",   listeProfilUsager(),listeDesEtab(),listeDesClasse())))
                    else:
                        return self.accueil_Admin((Glob.html["acceuilAdministrateur"])%(Glob.html["stat"], Glob.html["groupe"],cherrypy.session["nom"], (Glob.html["creationCpteA"])%("", "","","","","","","","",listeProfil(),listeDesEtab(),listeDesClasse())))
                else: 
                    return self.accueil_Administrateur() 
            else: 
                return self.accueil_Administrateur()
        creation_Cpte.exposed =True     
     
        def creer_Cpte(self, etab="",clas="",login="", nom="",  prenom="", phone="",  mail="",  cat="",  date="", passwd="", passwd1=""):   
            if(cherrypy.session.has_key("nom") and cherrypy.session.has_key("priorite")): 
                if(cherrypy.session["nom"] != ""):
                    c = ConnexionLdap()         
                    c1 = Compte("", "",  "", "", "", "", "", "","","" )
                    if((c.rechercheLoginLdap(login) == 0) and (c1.rechercheLoginBD(login)==0) ): 
                        if(date=="" or etab=="choisir votre etablissement" or clas=="choisir votre classe"):
                            if(int(cherrypy.session["priorite"])  == 20):
                                return self.accueil_Admin((Glob.html["acceuilAdministrateur"])%(Glob.html["stat"], Glob.html["groupe"],cherrypy.session["nom"], (Glob.html["creationCpteA"])%("Veuillez entrer dans tous les champs obligatoire !", str(nom),str(prenom),str(login),str(phone),str(mail),str(date),"","",listeProfilUsager(),listeDesEtab(),listeDesClasse()))) 
                            else:
                                return self.accueil_Admin((Glob.html["acceuilAdministrateur"])%("", "", cherrypy.session["nom"], (Glob.html["creationCpteA"])%("Veuillez entrer dans tous les champs obligatoire !", str(nom),str(prenom),str(login),str(phone),str(mail),str(date),"","",listeProfilUsager(),listeDesEtab(),listeDesClasse()))) 
                        else:
                            if(c1.rechercheCpte(nom,  prenom,  date) == 0): 
                                if(passwd != passwd1):
                                    if(int(cherrypy.session["priorite"])  == 20):
                                        return self.accueil_Admin((Glob.html["acceuilAdministrateur"])%(Glob.html["stat"], Glob.html["groupe"],cherrypy.session["nom"], (Glob.html["creationCpteA"])%("Veuillez entrer le même mot de passe !", str(nom),str(prenom),str(login),str(phone),str(mail),str(date),"","",listeProfilUsager(),listeDesEtab(),listeDesClasse()))) 
                                    else:
                                        return self.accueil_Admin((Glob.html["acceuilAdministrateur"])%("", "", cherrypy.session["nom"], (Glob.html["creationCpteA"])%("Veuillez entrer le même mot de passe !", str(nom),str(prenom),str(login),str(phone),str(mail),str(date),"","",listeProfilUsager(),listeDesEtab(),listeDesClasse()))) 
                                else: 
                                    c=Compte(etab, clas ,login, nom,  prenom, phone,  mail,  cat, date, passwd )    
                                    c.ajoutBD("O") 
                                    row = getUserLogin(login) 
                                    c1 = Compte(row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7],row[8],row[9]) 
                                    c1.ajoutLdap() 
                                    if(int(cherrypy.session["priorite"])  == 20):
                                        return self.accueil_Admin((Glob.html["acceuilAdministrateur"])%(Glob.html["stat"], Glob.html["groupe"],cherrypy.session["nom"], (Glob.html["notificationA"])%"Le compte vient d'être créer"))
                                    else:
                                        return self.accueil_Admin((Glob.html["acceuilAdministrateur"])%("", "", cherrypy.session["nom"], (Glob.html["notificationA"])%"Le compte vient d'être créer"))
                            else:
                                if(int(cherrypy.session["priorite"])  == 20):
                                    return self.accueil_Admin((Glob.html["acceuilAdministrateur"])%(Glob.html["stat"], Glob.html["groupe"],cherrypy.session["nom"], (Glob.html["creationCpteA"])%("Ce compte existe déjà veuillez apporter des modifications ", str(nom),str(prenom),str(login),str(phone),str(mail),str(date),"","",listeProfilUsager(),listeDesEtab(),listeDesClasse()))) 
                                else:
                                    return self.accueil_Admin((Glob.html["acceuilAdministrateur"])%("", "", cherrypy.session["nom"], (Glob.html["creationCpteA"])%("Ce compte existe déjà veuillez apporter des modifications ", str(nom),str(prenom),str(login),str(phone),str(mail),str(date),"","",listeProfilUsager(),listeDesEtab(),listeDesClasse()))) 
                    else:
                        if(int(cherrypy.session["priorite"])  == 20):
                            return self.accueil_Admin((Glob.html["acceuilAdministrateur"])%(Glob.html["stat"], Glob.html["groupe"],cherrypy.session["nom"], (Glob.html["creationCpteA"])%("Cet identifiant existe déjà veuillez le modifier ", str(nom),str(prenom),str(login),str(phone),str(mail),str(date),"","",listeProfilUsager(),listeDesEtab(),listeDesClasse()))) 
                        else:
                            return self.accueil_Admin((Glob.html["acceuilAdministrateur"])%("", "", cherrypy.session["nom"], (Glob.html["creationCpteA"])%("Cet identifiant existe déjà veuillez le modifier ", str(nom),str(prenom),str(login),str(phone),str(mail),str(date),"","",listeProfilUsager(),listeDesEtab(),listeDesClasse()))) 
                else: 
                    return self.accueil_Administrateur()
            else: 
                return self.accueil_Administrateur()
        creer_Cpte.exposed =True
    je precise que LDAP que j'utilise s'est OpenLDAP.
    si vous voulez d'autres information supplémentaire je vais poster toujours.
    Merci pour aide.

  6. #6
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Je viens de lire ton code. J'ai cru comprendre que tu utilisais une interface web via le framework cherrypy. Cette partie dépasse mes connaissances. Je vais donc partir du principe que ton code est OK.

    Pour le reste du code, (creation des autres classes), l'ensemble me semble normal. Je te conseille la lecture de quelques exemple sur le net:

    http://www.plungerman.net/news/inter...up-management/
    http://www.grotan.com/ldap/python-ldap-samples.html

    Essaie de mettre en oeuvre simplement sur ton ldap avec ces exemples, voir si cela fonctionne. Je pencherais personnellement pour un probleme a la creation de ton admin. Je ne pense pas qu'il soit veritablement identifié comme tel, et de fait ne dispose pas des droits sur ton fichier LDAP.
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations forums :
    Inscription : Juillet 2013
    Messages : 114
    Points : 47
    Points
    47
    Par défaut
    ok je revient un peu sur la fonction precedente "eleve":

    je veux preciser une chose je n'avais pas parle, parmi les utilisateurs il y a des utilisateurs qui ne sont pas des eleves alors lors de l'execusion "row" va etre nulle et la fonction s'arrete de continuer mais il continue à executer le reste et genere des erreurs.

    pouvez vous revoir un peu la fonction en tenant compte de ce point SVP?

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations forums :
    Inscription : Juillet 2013
    Messages : 114
    Points : 47
    Points
    47
    Par défaut
    Merci à tout le monde j'ai pu resolue le probleme, c'etait l'utilisateur "koreimy" n'a de droits d'ajouter dans la base: c'est à dire cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.__l.simple_bind_s("uid=koreimy,ou=Utilisateurs,dc=lnlm,dc=africacte","erebi")
    donc soit lui donne de droits administratifs soit lui remplacer par le login d'administrateur.

    Mais moi comme je ne sais pas à donner des droits à un utilisateurs dans LDAP, j'ai mis "koreimy" par "admin".



    merci encore à tous.

  9. #9
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Heureux que ton probleme soit résolu.
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. python,ldap+recuperer la date d'inscription
    Par koreimy dans le forum Général Python
    Réponses: 4
    Dernier message: 11/12/2013, 12h37
  2. python + ldap modification.
    Par koreimy dans le forum Général Python
    Réponses: 9
    Dernier message: 12/11/2013, 11h23
  3. Ajout des commentaires dans les fichiers LDIF (python-ldap)
    Par doudoubens dans le forum Général Python
    Réponses: 0
    Dernier message: 26/06/2012, 15h16
  4. Montage Lecteur Réseau Python Ldap
    Par fredouzzz dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 24/02/2008, 02h36
  5. Python et ldap
    Par Yotasky dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 11/10/2006, 17h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo