Thursday, November 15, 2012

too much customization - ldap user model

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+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate