From 5a9051f551c811261db9caf385b02bb9ade5ba82 Mon Sep 17 00:00:00 2001 From: Anthony Young Date: Mon, 20 Jun 2011 14:17:47 -0700 Subject: [PATCH] make user editing work --- .../django_openstack/syspanel/views/users.py | 56 +++++++++++-------- .../dashboard/templates/syspanel_users.html | 3 +- 2 files changed, 35 insertions(+), 24 deletions(-) diff --git a/django-openstack/src/django_openstack/syspanel/views/users.py b/django-openstack/src/django_openstack/syspanel/views/users.py index d4668476d..c5d30dd4d 100644 --- a/django-openstack/src/django_openstack/syspanel/views/users.py +++ b/django-openstack/src/django_openstack/syspanel/views/users.py @@ -29,9 +29,8 @@ class UserForm(forms.Form): id = forms.CharField(label="ID") email = forms.CharField(label="Email") - password = forms.CharField(label="Password", widget=forms.PasswordInput(render_value=False)) + password = forms.CharField(label="Password", widget=forms.PasswordInput(render_value=False), required=False) tenant_id = forms.ChoiceField(label="Primary Tenant") - enabled = forms.BooleanField(label="Enabled", initial=True) class UserDeleteForm(forms.SelfHandlingForm): @@ -46,18 +45,9 @@ class UserDeleteForm(forms.SelfHandlingForm): return redirect(request.build_absolute_uri()) -class UserToggleEnabledForm(forms.SelfHandlingForm): - user = forms.CharField(required=True) - - def handle(self, request, data): - user_id = data['user'] - messages.info(request, 'toggle not implemented %s .' % user_id) - return redirect(request.build_absolute_uri()) - - @login_required def index(request): - for f in (UserDeleteForm, UserToggleEnabledForm): + for f in (UserDeleteForm,): _, handled = f.maybe_handle(request) if handled: return handled @@ -65,11 +55,9 @@ def index(request): users = api.account_api(request).users.list() user_delete_form = UserDeleteForm() - user_toggle_enabled_form = UserToggleEnabledForm() return render_to_response('syspanel_users.html',{ 'users': users, 'user_delete_form': user_delete_form, - 'user_toggle_enabled_form': user_toggle_enabled_form, }, context_instance = template.RequestContext(request)) @@ -79,13 +67,23 @@ def update(request, user_id): tenants = api.account_api(request).tenants.list() form = UserForm(request.POST, tenant_list=tenants) if form.is_valid(): - tenant = form.clean() - # TODO Make this a real request - # account_api(request).users.update(user['id'], - # user['username'], user['tenants']) + user = form.clean() + updated = [] + if user['email']: + updated.append('email') + api.account_api(request).users.update_email(user['id'], + user['email']) + if user['password']: + updated.append('password') + api.account_api(request).users.update_password(user['id'], + user['password']) + if user['tenant_id']: + updated.append('tenant') + api.account_api(request).users.update_tenant(user['id'], + user['tenant_id']) messages.success(request, - '%s was successfully updated.' - % user_id) + 'Updated %s for %s.' + % (', '.join(updated), user_id)) return redirect('syspanel_users') else: # TODO add better error management @@ -99,8 +97,22 @@ def update(request, user_id): }, context_instance = template.RequestContext(request)) else: + u = api.account_api(request).users.get(user_id) tenants = api.account_api(request).tenants.list() - form = UserForm(initial={'id': user_id}, tenant_list=tenants) + try: + # FIXME + email = u.email + except: + email = '' + + try: + tenant_id = u.tenantId + except: + tenant_id = None + form = UserForm(initial={'id': user_id, + 'tenant_id': tenant_id, + 'email': email}, + tenant_list=tenants) return render_to_response( 'syspanel_user_update.html',{ 'form': form, @@ -122,7 +134,7 @@ def create(request): user['email'], user['password'], user['tenant_id'], - user['enabled']) + True) messages.success(request, '%s was successfully created.' diff --git a/openstack-dashboard/dashboard/templates/syspanel_users.html b/openstack-dashboard/dashboard/templates/syspanel_users.html index 770d05875..aa18e554a 100644 --- a/openstack-dashboard/dashboard/templates/syspanel_users.html +++ b/openstack-dashboard/dashboard/templates/syspanel_users.html @@ -45,8 +45,7 @@