Merge "Add support for a domain dropdown menu at login"
This commit is contained in:
commit
a1e421e0b7
|
@ -61,11 +61,22 @@ class Login(django_auth_forms.AuthenticationForm):
|
|||
'OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT',
|
||||
False):
|
||||
last_domain = self.request.COOKIES.get('login_domain', None)
|
||||
self.fields['domain'] = forms.CharField(
|
||||
initial=last_domain,
|
||||
label=_("Domain"),
|
||||
required=True,
|
||||
widget=forms.TextInput(attrs={"autofocus": "autofocus"}))
|
||||
if getattr(settings,
|
||||
'OPENSTACK_KEYSTONE_DOMAIN_DROPDOWN',
|
||||
False):
|
||||
self.fields['domain'] = forms.ChoiceField(
|
||||
label=_("Domain"),
|
||||
initial=last_domain,
|
||||
required=True,
|
||||
choices=getattr(settings,
|
||||
'OPENSTACK_KEYSTONE_DOMAIN_CHOICES',
|
||||
()))
|
||||
else:
|
||||
self.fields['domain'] = forms.CharField(
|
||||
initial=last_domain,
|
||||
label=_("Domain"),
|
||||
required=True,
|
||||
widget=forms.TextInput(attrs={"autofocus": "autofocus"}))
|
||||
self.fields['username'].widget = forms.widgets.TextInput()
|
||||
fields_ordering = ['domain', 'username', 'password', 'region']
|
||||
self.fields['region'].choices = self.get_region_choices()
|
||||
|
|
|
@ -1091,6 +1091,32 @@ class OpenStackAuthTestsV3(OpenStackAuthTestsMixin,
|
|||
token=unscoped.auth_token)
|
||||
self.assertEqual(project_list, expected_projects)
|
||||
|
||||
def test_login_form_multidomain(self):
|
||||
override = self.settings(OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT=True)
|
||||
override.enable()
|
||||
self.addCleanup(override.disable)
|
||||
|
||||
url = reverse('login')
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, 'name="domain" type="text"')
|
||||
|
||||
def test_login_form_multidomain_dropdown(self):
|
||||
override = self.settings(OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT=True,
|
||||
OPENSTACK_KEYSTONE_DOMAIN_DROPDOWN=True,
|
||||
OPENSTACK_KEYSTONE_DOMAIN_CHOICES=(
|
||||
('Default', 'Default'),)
|
||||
)
|
||||
override.enable()
|
||||
self.addCleanup(override.disable)
|
||||
|
||||
url = reverse('login')
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, 'select id="id_domain" name="domain"')
|
||||
self.assertContains(response, 'option value="Default"')
|
||||
settings.OPENSTACK_KEYSTONE_DOMAIN_DROPDOWN = False
|
||||
|
||||
|
||||
class OpenStackAuthTestsWebSSO(OpenStackAuthTestsMixin,
|
||||
OpenStackAuthFederatedTestsMixin,
|
||||
|
|
Loading…
Reference in New Issue