Hi

Further to the above discussion,
  I did implement the code and it worked for me for the authentication
while using the email id as the username
(username=emailid ; valid_user = authenticate (username=username,
password=password  )

# django-admin.py --version
1.1 beta 1 SVN-10957

1.) The problem is in the admin interface "@" is not accepted as
username while I can populate the same from the view.py
Is this an expected behaviour or should I raise a ticket ( if at all
it doesnt exists )

2.) Do we have a configuration file or so where we can define these
constraints like max_length of user name, accepted characters set  in
the user name and others.
I can very well change the code in django-trunk of my web server,  but
I dont want to do that since I want to avoid the overhead of re-doing
the svn tasks

Thanks
Vemu


On Apr 13, 11:22 am, Praveen <[email protected]> wrote:
> You please check the satchmo package there they are using email as
> username in satchmo-registration using
> user=generate_id(email,firstname)
>
> On Apr 13, 9:44 am, pkenjora <[email protected]> wrote:
>
> > Malcolm,  <- Remembered the 'l' this time!
>
> > To keep things simple and avoid fragmenting this discussion into a
> > million different dead end tit for tats , I'll try to reign in the
> > main points.
>
> > 1. The default authentication method in Django should have no inherent
> > restrictions.  Such as blocking '@' in the username.  This leaves the
> > default framework open and free of workarounds.  This approach would
> > not preclude any project specific requirements.
>
> > 2. Any authentication method having restrictions should be an opt in
> > method.  The current method is a restrictive authentication method,
> > one that does not allow email, and should be made optional.
>
> > 3. When you boil down the hundreds of specific use cases out there you
> > still end up with the above two points.  In which case I would make
> > the argument that if you need to block emails as user names then it is
> > you who should write a new authentication handler.  In your own words,
> > the framework allows this and its only a few lines of code.
>
> > Now for the dead end tit for tat... this is really project philosophy
> > not framework philosophy... hence I feel like it is circular
> > discussion that distracts from the main point...
>
> > Authenticating by email does not require me to check my email every
> > time I log in.  So if my email is no longer accessible (left my job) I
> > can simply log in and change it to a new one.  If changing the
> > username requires checking my email then I will have the same problem
> > if I use email as my username or not.
>
> > You yourself identify the username as mainly an authentication
> > mechanism not necessarily a display value.  Thats all the more reason
> > to have a robust restriction free out of the box implementation of
> > authentication.
>
> > Thanks for reading the feedback, I still fail to see how you can
> > include project specific requirements in a framework? The
> > implementation you are advocating is a subset of the general
> > implementation I would like to see bundled out of the box.  Why not
> > move it into an optional module?
>
> > -Paul
>
> > On Apr 11, 4:13 pm, Malcolm Tredinnick <[email protected]>
> > wrote:
>
> > > On Sat, 2009-04-11 at 07:52 -0700, pkenjora wrote:
> > > > Malcom,
>
> > > Well, I'm not "Malcom" (sic), but I'll reply anyway.
>
> > > >    Google, FaceBook, and LinkedIn have been using email authentication
> > > > for how long now?  With the default constraints you've put on Django a
> > > > developer would have to "work around" the out of the box code to make
> > > > the project behave like the big 3 names on the web.
>
> > > There's some assumption there that what they're doing is a good idea.
> > > Their systems have the usability problems I've mentioned. It's also not
> > > clear their authentication methods are the best around. In any case, as
> > > I note below (and have written elsewhere), you're simply not restricted
> > > from using this system and can do so without patching Django, if that's
> > > the way you want to go. There's no restriction in place here!
>
> > > The combined size of forums and social networking sites not pretending
> > > that my "handle" is an email address is, I'll wager, larger than
> > > Facebook or LinkedIn, certainly. Which has precisely the same small
> > > weight as your examples. The point being that there are valid use-cases
> > > in both directions and you'll notice that that's never been disputed.
>
> > > [...]
>
> > > >   As far as your reasons go, I'm fairly sure its just as easy to
> > > > change the email as it is the username,
>
> > > I'm sorry you feel that way. It's patently false. The username is only
> > > used on the site you are creating an account for. Your email address has
> > > much wider usage and creating a new one isn't always possible or
> > > desirable (signing up to one of the hosted services requires agreeing to
> > > T&C that are often unpleasant). The username when creating a new account
> > > on a site has much less currency.
>
> > > > I would even argue that my
> > > > username (display name) could change but my login credentials should
> > > > stay the same.
>
> > > You are assuming that the username is the display name. That might be a
> > > secondary use for it and it sometimes works well for that. However, the
> > > username is primarily the unique identifier for the user within the
> > > system. It's the thing that won't change. Having a display name,
> > > particularly one that can change is also quite common and it's for
> > > extensions like that that user profile exist for.
>
> > > Login credentials are not the same as identifier within the system. The
> > > login credentials should definitely be permitted to change. Having an
> > > account tied to an email address is tragic when that email address is no
> > > longer accessible to you (for example, it was a company address and
> > > you've since left the company). Allowing the email address to change --
> > > and hence not making it the entity identifier -- is a good thing.
>
> > > >   You are correct, username authentication has always been around.
> > > > However, the explicit banning and obfuscating of email authentication
> > > > in the default module has not.
>
> > > I'm sorry, but that's simply not correct. I pointed that out earlier in
> > > the thread.
>
> > > You have the version control history, please feel free to find the
> > > released version of Django where this wasn't the case and correct me if
> > > you really feel this is not the case.
>
> > > >  That is the part that worries me, that
> > > > is where things are going wrong.
>
> > > >   We're all professionals here, we all take the time to leave feedback
> > > > in the hopes of improving Django.
>
> > > Which is a given. Not a partricularly relevant comment for this thread,
> > > unless you're trying to imply something sinister, since there's no
> > > indication that feedback isn't being listened to. In fact, in this case,
> > > it's being answered with both technical and usability reasons for the
> > > current behaviour.
>
> > > >  I have a sneaking suspicion that
> > > > project specific requirements crept into the trunk because it was
> > > > easier than patching every time.
>
> > > Whereas, I have a sneaking suspicion that you've forgotten your history.
> > > Now we both have sneaking suspicions. It's all very suspicous. :-)
>
> > > Part of the problem with threads like this is the built-in assumptions
> > > people are bringing to the table. The username field in the User model
> > > is just the unique identifier in the system. If you want to use the
> > > email address for login, it's fairly easy to do so: writing auth
> > > backends is supported and encouraged. You never have to show the
> > > username to users (so you could generate a more-or-less random
> > > identifier when creating the account) and that's fairly standard
> > > practice in a bunch of projects I've seen. It's also not uncommon to add
> > > a user-editable display name in a user profile class, etc, etc.
>
> > > You're argument is about a bit of a red herring because it's assigning
> > > more import to the username field than it deserves. That field simply
> > > isn't intrinsic to a user's experience on the site because you are in
> > > complete control as to what information you show and what information
> > > you authenticate against on your site. Before complaining that "oh, no,
> > > now I have to write my own login method", yes, big deal! You have to
> > > write half a dozen lines once, or use somebody else's. Just like you do
> > > when supporting OpenID or Facebook Connect or other authentication
> > > systems.
>
> > > Django has a default auth system. It works well for a large class of
> > > situations. It's also easy enough to use other systems, including an
> > > email address as an authentication facilitator.
>
> > > Regards,
> > > Malcolm

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to