1 | from django.parts.auth import anonymoususers |
---|
2 | from django.models.auth import users, User |
---|
3 | import md5 |
---|
4 | import datetime |
---|
5 | class HttpAuth: |
---|
6 | """ |
---|
7 | Grabs what the webserver thinks is the logged on user id, |
---|
8 | and use that instead, creating the record if it doesn't exist in the table. |
---|
9 | |
---|
10 | There are currently three problems with this at the moment. |
---|
11 | * It doesn't update the last-login |
---|
12 | * It doesn't update the session cookie |
---|
13 | * It has no idea what the email address is |
---|
14 | """ |
---|
15 | def process_request(self,request): |
---|
16 | "gets REMOTE_USER and sets the userid based on that" |
---|
17 | if request.META['REMOTE_USER']: |
---|
18 | user_id = request.META['REMOTE_USER']#+'_remote' |
---|
19 | try: |
---|
20 | user = users.get_object(username__exact=user_id) |
---|
21 | except (users.UserDoesNotExist): |
---|
22 | now = datetime.datetime.now() |
---|
23 | user = User(None, user_id,'','', |
---|
24 | user_id+'@example.com', |
---|
25 | 'XXno_passwordXX', |
---|
26 | False,True,False,now,now) |
---|
27 | user.save() |
---|
28 | else: |
---|
29 | user = anonymoususers.AnonymousUser() |
---|
30 | request.user= user |
---|
31 | return None |
---|