Tai, read https://gist.github.com/2289395 for a summary of many reasons why I think profiles are a bad idea, and unifying multiple profiles is an even worse idea.
Best, Alex Ogier On Fri, Apr 6, 2012 at 6:15 AM, Tai Lee <real.hu...@mrmachine.net> wrote: > Alex Ogier, > > Is it really better to require users to create their own User model that > behaves like an admin user, instead of just shipping with a self contained > admin user (as a profile model) without the auth component? > > If the auth app was purely a stub to connect different profiles and > authentication systems from different apps (or the project), but doesn't > actually define any identity or authentication or profile models itself > (not counting base abstract classes), isn't that effectively achieving the > separation that you want? Being able to use admin without the current cruft > in auth or with any completely different authentication credentials, and > similarly using any other pluggable app without any cruft needed by the > admin. > > In any case, I don't think it will actually be possible to use the admin > or any other pluggable app that relies on the concept of a central user who > might access to multiple apps (instead of every app having its own users > and auth) without *an* auth app and a central User model. > > Like Adrian, I don't actually use the User model for auth or identity > (name, email, etc.) anymore. But unless you have authored *all* the apps in > your project and they know how to talk to *your* User model, you still need > a User from Django, because that is what all 3rd party pluggable apps will > need. > > If I want to use any 3rd party apps that use the central user, I will > still need to create a Django User and fake or sync the that are only there > for the admin, even if I don't use the admin. If you still require swapped > in User models to assume a minimal interface and fields, people will still > have this problem. > > This is why I think the central User should not contain any auth or > identity data, so there is no cruft required only for apps you may not even > be using, and so you are not tied to any particular auth system. > > Cheers. > Tai. > > > On 06/04/2012, at 3:44 PM, Alex Ogier <alex.og...@gmail.com> wrote: > > I think this proposal will make more sense if people stop thinking "If > someone wants to use contrib.auth, then why do we need another crufty > interface to swap out auth.User?" Instead think of someone who wants to use > contrib.admin but not be stuck with contrib.auth. > > The point of this proposal isn't to make contrib.auth larger and better, > it's to make it unnecessary. A lot of people find contrib.auth's models > unsatisfactory. Adrian Holovaty stated that he hasn't used auth.User for > several years. When you have a complex site with multiple authentication > methods and requirements that don't fit django's idea of a user, it stops > being worth it to bend yourself to django's will. The problem is that > contrib.auth and contrib.admin are currently intimately linked. This > proposal's purpose is to give an official way to break these two apart. > > I don't know of a single framework out there besides Django that ships > with a fixed model for its users. The reason is that authentication and > identity are radically different for every site so it's tremendously > important to support whatever people decide to do, and not force decisions > on them. > > So, stop thinking just in terms of contrib.auth.models.User. If you're > already using that with a profile and it's all working fine, then this > change isn't for you. This is for everyone who just wishes auth.User would > go away without totally borking admin. > > Respectfully, > Alex Ogier > On Apr 6, 2012 1:21 AM, "Donald Stufft" <donald.stu...@gmail.com> wrote: > >> Nothing about this proposal prevents this. >> >> And in that case, no those 2 apps would not be able to be used together. >> But this is hardly the first >> time that 2 apps cannot be used together. because of choices made like >> that on the app owner. >> >> On Friday, April 6, 2012 at 1:18 AM, Harris Lapiroff wrote: >> >> I very much share Tai's concerns about the swappable user model >> introducing incompatibilities. Imagine two apps, each of which requires an >> "age" attribute on the user model. But suppose one of those apps expects >> age to be the number of years since that user's birth and one of those apps >> expects the age to be the number of years since the user registered for the >> website. The user model must provide the same attribute to both apps, but >> it is supposed to have a different value for each app. A developer will be >> unable to use these two apps together without patching one of them. >> >> A bit of a contrived example, maybe, but I can imagine this >> same-name-different-purpose issue coming up over and over again, making >> otherwise pluggable apps incompatible with each other. >> >> I think we should go with a pared down user model and allow each app to >> manage whatever data it needs on each user through profiles and signals. >> Developers will end up with some data duplication, but I think that is >> preferable to confusion about the source and purpose of data. Profiles are >> essentially a way for each app to namespace its own data and I think that's >> a good thing. >> >> Harris >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Django developers" group. >> To view this discussion on the web visit >> https://groups.google.com/d/msg/django-developers/-/p4jhylEp3x8J. >> To post to this group, send email to django-developers@googlegroups.com. >> To unsubscribe from this group, send email to >> django-developers+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/django-developers?hl=en. >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Django developers" group. >> To post to this group, send email to django-developers@googlegroups.com. >> To unsubscribe from this group, send email to >> django-developers+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/django-developers?hl=en. >> > -- > You received this message because you are subscribed to the Google Groups > "Django developers" group. > To post to this group, send email to django-developers@googlegroups.com. > To unsubscribe from this group, send email to > django-developers+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/django-developers?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Django developers" group. > To post to this group, send email to django-developers@googlegroups.com. > To unsubscribe from this group, send email to > django-developers+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/django-developers?hl=en. > -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-developers@googlegroups.com. To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.