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.

Reply via email to