| 8 | |
| 9 | |
| 10 | == Introduction == |
| 11 | |
| 12 | This document seeks to identify resolutions and design propositions that will correct quite the foul attitude we've all experienced when trying to deal with `django.contrib.auth.User`. Unfortunately `auth.User` thinks it can just make all sorts of decisions for you and expects you to be happy with your hackish attempt to integrate it into your codebase. I bet you were stoked when you first learned that you had to have an "is_staff" field on your entire project's User model. You thought, "Well, thanks `auth.User`, but I don't really think this field is necessary for my totally awesome, real-time, Redis 'roided, GeoDjango packed, Pink Pony web app." See, little did you know that was `auth.User` just giving you the middle finger. But do not fear! We're looking out for you. Ya see, there's a better way.... |
| 13 | |
| 14 | == Philosophy and Some Good Motivation == |
| 15 | |
| 16 | We think `auth.User` should have a much different perspective when it comes to your Django app. First and foremost, it is worthwhile to view your application from the perspective of an `auth.User` since after all, its all about your users, right? |
| 17 | |
| 18 | Points to make here: |
| 19 | * A user has an identity, personality |
| 20 | * Identity is not personality |
| 21 | * Personality is an emergent property of experience |
| 22 | * Identity is immutable, personality is fluid |
| 23 | * Authentication is the process of verifying identity |
| 24 | * Credentials are a means by which identity is verified |
| 25 | * Credentials are tools utilized in the process of authentication |
| 26 | * Credentials vary |
| 27 | * Trust is an asymmetrical relationship between interacting entities |
| 28 | * Trust is fluid |
| 29 | * Authorization is the process of granting permission |
| 30 | * Authorization is affected by trust |
| 31 | |
| 32 | |
| 33 | == The User's Interface == |
| 34 | |
| 35 | Points to make here: |
| 36 | * The content of your interaction with other agents/entities affects your interface, shapes your personality |
| 37 | * Since your interface is influenced by your personality, your interface is also fluid, changing |
| 38 | * When you want to know something about someone else you have a relationship with ''you ask them''! |