| 1 | def login_user(self, user):
|
|---|
| 2 | if not 'django.contrib.sessions' in settings.INSTALLED_APPS:
|
|---|
| 3 | raise AssertionError("Unable to login without django.contrib.sessions in INSTALLED_APPS")
|
|---|
| 4 | user.backend = "%s.%s" % ("django.contrib.auth.backends",
|
|---|
| 5 | "ModelBackend")
|
|---|
| 6 | engine = import_module(settings.SESSION_ENGINE)
|
|---|
| 7 |
|
|---|
| 8 | # Create a fake request to store login details.
|
|---|
| 9 | request = HttpRequest()
|
|---|
| 10 | if self.session:
|
|---|
| 11 | request.session = self.session
|
|---|
| 12 | else:
|
|---|
| 13 | request.session = engine.SessionStore()
|
|---|
| 14 | login(request, user)
|
|---|
| 15 |
|
|---|
| 16 | # Set the cookie to represent the session.
|
|---|
| 17 | session_cookie = settings.SESSION_COOKIE_NAME
|
|---|
| 18 | self.cookies[session_cookie] = request.session.session_key
|
|---|
| 19 | cookie_data = {
|
|---|
| 20 | 'max-age': None,
|
|---|
| 21 | 'path': '/',
|
|---|
| 22 | 'domain': settings.SESSION_COOKIE_DOMAIN,
|
|---|
| 23 | 'secure': settings.SESSION_COOKIE_SECURE or None,
|
|---|
| 24 | 'expires': None,
|
|---|
| 25 | }
|
|---|
| 26 | self.cookies[session_cookie].update(cookie_data)
|
|---|
| 27 |
|
|---|
| 28 | # Save the session values.
|
|---|
| 29 | request.session.save()
|
|---|