Bonjour,

J'essaie de mettre en place une authentification par LDAP sur mon site web Django.

Lors de la connexion, je voudrais récupérer les infos du user (n° de tel, email, cn)
Dans le fichier settings.py, j'ai paramétré la variable AUTH_LDAP_USER_ATTR_MAP :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
AUTH_LDAP_USER_ATTR_MAP = {
    "uid": "uid",
    "email": "email",
    "cn": "cn",
    "telephoneNumber": "telephoneNumber",
}

Je défini une vue user_login :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def user_login(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']
            user = LDAPBackend().authenticate(request, username=username, password=password)
            print(user)
            if user:
                login(request, user)
                return redirect('home')
    else:
        form = LoginForm()
    return render(request, 'login.html', {'form': form})
Mais le print(user) ne m'affiche que le username (uid), et pas les autres variables.

Qu'est ce que j'ai oublié de paramétrer?


Merci,
Nico