Changes between Version 15 and Version 16 of SummerOfCode2010

03/16/10 04:43:56 (4 years ago)

Elaboration of #3011


  • SummerOfCode2010

    v15 v16  
    6868=== Enhanced auth.user === 
    69  * #3011 (auth User enhancement) 
     69 * '''Complexity''': High 
     71One of the most class of questions on [ django-users] surrounds issues of customizing Django's User model: 
     72 * How can I use an email address as a username? 
     73 * I want to use Twitter/OAuth/Facebook to login - why can't I leave the username field empty? 
     74 * How can I make the username field X characters longer/shorter? 
     75 * How can I allow [insert random character] in usernames? 
     76 * How can I have a single "name" field instead of "first_name"/"last_name"? 
     78At present, there is no easy answer to these questions. Use of Django User model is not mandatory, but it is a dependency for a lot of Django applications. It is possible to do some of these customizations, but it's not trivial to do so. 
     80Ticket #3011 describes one approach that has been rejected - the idea of a 'pluggable' User model. However, the general problem remains. 
     82'''Note:''' This isn't a problem with a trivial solution, and it isn't a problem where we will take the first proposal we see. A successful proposal on this project will require extensive discussion on [ django-developers]. 
     84Issues to consider: 
     85 * How can we represent the generic idea of a User without reducing the user table to little more than an identifying primary key? 
     86 * How can we differentiate the ideas of identity, permission and authentication? 
     87 * How can we manage the dependencies that exist in contrib.admin (and other parts of Django core and Django.contrib) that rely on the internals of auth.User as currently implemented? 
     88 * How can we roll out a new/modified User model without requiring almost every Django application on the planet to undergo a complex database modification? 
     90See also: 
     91 * Discussions on [ django-users] when users have asked the "how do I" questions 
     92 * The [source:django/trunk/django/template django.contrib.auth code module] 
    7194=== Housekeeping ===