Merge "User email is optional and can be absent" into stable/grizzly

This commit is contained in:
Jenkins 2014-02-28 07:33:50 +00:00 committed by Gerrit Code Review
commit 37b208a1a8
4 changed files with 29 additions and 14 deletions

View File

@ -113,7 +113,8 @@ class CreateUserForm(BaseUserForm):
class UpdateUserForm(BaseUserForm):
id = forms.CharField(label=_("ID"), widget=forms.HiddenInput)
name = forms.CharField(label=_("User Name"))
email = forms.EmailField(label=_("Email"))
email = forms.EmailField(label=_("Email"),
required=False)
password = forms.RegexField(label=_("Password"),
widget=forms.PasswordInput(render_value=False),
regex=validators.password_validator(),

View File

@ -95,7 +95,7 @@ class UserFilterAction(tables.FilterAction):
q = filter_string.lower()
return [user for user in users
if q in user.name.lower()
or q in user.email.lower()]
or q in getattr(user, 'email', '').lower()]
class UsersTable(tables.DataTable):

View File

@ -166,22 +166,15 @@ class UsersViewTests(test.BaseAdminViewTests):
res, "form", 'password',
['Password must be between 8 and 18 characters.'])
@test.create_stubs({api.keystone: ('user_get',
'tenant_list',
'user_update_tenant',
'user_update_password',
'user_update',
'roles_for_user', )})
def test_update(self):
user = self.users.get(id="1")
def _update(self, user):
email = getattr(user, 'email', '')
api.keystone.user_get(IsA(http.HttpRequest), '1',
admin=True).AndReturn(user)
api.keystone.tenant_list(IgnoreArg(),
admin=True).AndReturn(self.tenants.list())
api.keystone.user_update(IsA(http.HttpRequest),
user.id,
email=u'test@example.com',
email=email,
name=u'test_user').AndReturn(None)
api.keystone.user_update_tenant(IsA(http.HttpRequest),
user.id,
@ -198,7 +191,7 @@ class UsersViewTests(test.BaseAdminViewTests):
formData = {'method': 'UpdateUserForm',
'id': user.id,
'name': user.name,
'email': user.email,
'email': email,
'password': 'normalpwd',
'tenant_id': self.tenant.id,
'confirm_password': 'normalpwd'}
@ -208,6 +201,27 @@ class UsersViewTests(test.BaseAdminViewTests):
self.assertNoFormErrors(res)
self.assertMessageCount(warning=1)
@test.create_stubs({api.keystone: ('user_get',
'tenant_list',
'user_update_tenant',
'user_update_password',
'user_update',
'roles_for_user', )})
def test_update(self):
user = self.users.get(id="1")
self._update(user)
@test.create_stubs({api.keystone: ('user_get',
'tenant_list',
'user_update_tenant',
'user_update_password',
'user_update',
'roles_for_user', )})
def test_update_with_no_email_attribute(self):
user = self.users.get(id="1")
del user.email
self._update(user)
@test.create_stubs({api.keystone: ('user_get',
'tenant_list',
'user_update_tenant',

View File

@ -81,7 +81,7 @@ class UpdateView(forms.ModalFormView):
return {'id': user.id,
'name': user.name,
'tenant_id': getattr(user, 'tenantId', None),
'email': user.email}
'email': getattr(user, 'email', None)}
class CreateView(forms.ModalFormView):