Hi Anil, Before you started developing your own, did you consider doing a quick google search to see if there were any existing solutions that implemented LDAP authentication for Django?
http://packages.python.org/django-auth-ldap/ Yours, Russ Magee %-) On Fri, Nov 16, 2012 at 12:23 PM, Anil Jangity <an...@me.com> wrote: > I am trying to build a custom User model with a custom authentication > backend (ldap). > Here is what I've done so far: > > Custom LDAP authentication backend: > > class LDAPBackend: > def get_user(self, user_id): > try: > return LDAPUser.objects.get(pk=user_id) > except LDAPUser.DoesNotExist: > return None > > > def authenticate(self, dn=None, password=None): > conn = DS(settings.AUTH_LDAP_SERVER) > conn.connect(dn, password) > try: > user = LDAPUser.objects.get_or_create(dn=dn) > return user > except LDAPUser.DoesNotExist: > pass > return None > > ========================= > > Custom User model: > > class LDAPUserManager(BaseUserManager): > > def get_or_create(self, dn): > user = LDAPUser(dn) > return user > > > class LDAPUser(AbstractBaseUser): > dn = models.CharField(max_length=128) > > is_active = models.BooleanField(default=True) > is_admin = models.BooleanField(default=False) > > objects = LDAPUserManager() > USERNAME_FIELD = 'dn' > > def __unicode__(self): > return self.dn > … > > > > ========================= > > > > Based on that, in my view I have: > def do_login(): > user = authenticate(dn=dn, password=password) > user.is_authenticated() <--- returns True > return HttpResponseRedirect("/manage") > > def manage(): > print request.session['dn'] > print request.user > > > Shouldn't the request.user in manage() be my LDAPUser instance? It shows > AnonymousUser. Where is the session stored (if any) when I do the > authenticate() ? > Sorry for these basic questions, I am new to Django. > > Also, I feel like I am going to end up having to customize every aspects > of the User model… am I going about this the wrong way? > > What I am really trying to do is create a LDAP based users as well as LDAP > based database (no SQL database) for all my data. I looked at > Django_auth_ldap, but that won't cut it, I need to have a little bit more > customization on it (I think). > > Thanks for any help! > Anil > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to django-users@googlegroups.com. > To unsubscribe from this group, send email to > django-users+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.