Skip to content

Instantly share code, notes, and snippets.

@sleepsonthefloor
Created July 8, 2011 20:12
Show Gist options
  • Save sleepsonthefloor/1072707 to your computer and use it in GitHub Desktop.
Save sleepsonthefloor/1072707 to your computer and use it in GitHub Desktop.
--- a/django-openstack/django_openstack/auth/views.py
+++ b/django-openstack/django_openstack/auth/views.py
@@ -20,13 +20,14 @@ class Login(forms.SelfHandlingForm):
def handle(self, request, data):
try:
token = api.token_create(request,
- "",
+ data.get('tenant', ''),
data['username'],
data['password'])
info = api.token_info(request, token)
+
request.session['token'] = token.id
request.session['user'] = info['user']
- request.session['tenant'] = info['tenant']
+ request.session['tenant'] = data.get('tenant', info['tenant'])
request.session['admin'] = info['admin']
request.session['serviceCatalog'] = token.serviceCatalog
logging.info(token.serviceCatalog)
@@ -37,6 +38,12 @@ class Login(forms.SelfHandlingForm):
messages.error(request, 'Error authenticating: %s' % e.message)
+class LoginWithTenant(Login):
+ username = forms.CharField(max_length="20",
+ widget=forms.TextInput(attrs={'readonly':'readonly'}))
+ tenant = forms.CharField(widget=forms.HiddenInput())
+
+
def login(request):
if request.user and request.user.is_authenticated():
if request.user.is_admin():
@@ -54,8 +61,8 @@ def login(request):
def switch_tenants(request, tenant_id):
- form, handled = LoginWithoutTenant.maybe_handle(
- request, initial={'tenant': tenant_id})
+ form, handled = LoginWithTenant.maybe_handle(
+ request, initial={'tenant': tenant_id, 'username': request.user.username})
if handled:
return handled
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment