[openstack-dev] [Horizon] Email as User Name on the Horizon login page
Adrian Turjak
adriant at catalyst.net.nz
Fri Jan 15 12:25:46 UTC 2016
Thanks, as a hack that's not a bad fix.
We maintain our own Horizon repo anyway and rebase often, so it's a
change we can carry if needed.
I'm just confused as to why these changes were made to work as they are.
I mean sure having the html populate based on the form details is nice
in theory, but having that in a place you can't access or customize
because it's in a secondary library feels like over engineering.
What is the point of themes if we can't change something as basic as a
form field label?
On 15/01/2016 9:54 p.m., Itxaka Serrano Garcia wrote:
>
> Looks like the form comes from django_openstack_auth:
> https://github.com/openstack/django_openstack_auth/blob/master/openstack_auth/forms.py#L53
>
>
>
> But to be honest, no idea how that can be overridden trough the
> themes, not sure if its even possible to override anything on that
> page without modifying django_openstack_auth directly :(
>
> Maybe someone else has a better insight on this than me.
>
>
> * Horrible Hack Incoming, read at your own discretion *
>
> You can override the template here:
> https://github.com/openstack/horizon/blob/master/horizon/templates/horizon/common/_form_field.html#L51
>
>
> And change this line:
> <label class="control-label {{ classes.label }} {% if
> field.field.required %}{{ form.required_css_class }}{% endif %}"
> for="{{ field.auto_id }}">{{ field.label }}</label>
>
> For this:
> <label class="control-label {{ classes.label }} {% if
> field.field.required %}{{ form.required_css_class }}{% endif %}"
> for="{{ field.auto_id }}">{% if field.label == "User Name" and not
> request.user.is_authenticated %}Email{% else %}{{ field.label }}{%
> endif %}</label>
>
>
> Which will check if the label is "User Name" and the user is logged
> out and directly write "Email" as the field label.
>
> I know, its horrible and if you update horizon it will be overriden,
> but probably works for the time being if you really need it ¯\_(ツ)_/¯
>
> * Horrible Hack Finished *
>
>
>
>
> Itxaka
>
>
>
>
> On 01/15/2016 05:13 AM, Adrian Turjak wrote:
>> I've run into a weird issue with the Liberty release of Horizon.
>>
>> For our deployment we enforce emails as usernames, and thus for Horizon
>> we used to have "User Name" on the login page replaced with "Email".
>> This used to be a straightforward change in the html template file, and
>> with the introduction of themes we assumed it would be the same. When
>> one of our designers was migrating our custom CSS and html changes to
>> the new theme system they missed that change and I at first it was a
>> silly mistake.
>>
>> Only on digging through the code myself I found that the "User Name" on
>> the login screen isn't in the html file at all, nor anywhere else
>> straightforward. The login page form is built on the fly with javascript
>> to facilitate different modes of authentication. While a bit annoying
>> that didn't seem too bad and I then assumed it might mean a javascript
>> change, only that the more I dug, the more I became confused.
>>
>> Where exactly is the login form defined? And where exactly is the "User
>> Name" text for the login form set?
>>
>> I've tried all manner of stuff to change it with no luck and I feel like
>> I must have missed something obvious.
>>
>> Cheers,
>> -Adrian Turjak
>>
>> __________________________________________________________________________
>>
>> OpenStack Development Mailing List (not for usage questions)
>> Unsubscribe:
>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>
> __________________________________________________________________________
>
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe:
> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
More information about the OpenStack-dev
mailing list