Saturday, November 17, 2012

Re: too much customization - ldap user model

So, the bottom line is, what do I need to do after I do a authenticate() to have the login persist in the session and in the other views?

Thanks

On Nov 15, 2012, at 8:23 PM, Anil Jangity <anilj@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+unsubscribe@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+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