[Freeipa-users] FreeIPA Multi Valued Custom Fields

Mark Hannessen m.s.hannessen at drecomm.nl
Wed Jul 8 11:39:21 UTC 2009


O my, o my....

But I actually got it to work :D

Thanks you very much for the push in the right direction, it really helped. I 
think i'll be writing a bash script that will generate the template files 
though. It's to Prone to errors to do it all by hand.

In order to get there i had to modify the following files:

./forms/user.py
./templates/usereditform.kid
./templates/usernewform.kid
./templates/usershow.kid
./subcontrollers/user.py

Kind regards,

Mark Hannessen

On Monday 06 July 2009 07:35:04 pm you wrote:
> Mark Hannessen wrote:
> > Hi Rob, ( and list )
> >
> > Sorry for the very late reply.
> > We are still interested in using FreeIPA for our project.
> >
> > Any support you could give us to the minimum needed for multi valued
> > attributes working would be more then welcome.
>
> Ok, it is going to require a fair bit of work to add them.
>
> The files you need to edit in the source tree are in
> ipa-server/ipa-gui/ipagui. They are installed in /usr/share/ipa/ipagui.
>
> What I would recommend doing is using the attribute mobile as a template.
>
> You will need to define whatever new attributes you want in forms/user.py
>
> A new field will look like:
>
> c = ExpandingForm(name="countries", label="Country", fields=[c])
>
> You also need to add initialization and conversion calls in
> subcontrollers/user.py.
>
> Finally you add the new attributes to templates/usernewform.py and
> templates/usereditform.py. Again, follow the existing convention. This
> is way harder than it needs to be because we wanted totally control over
> the appearance so we couldn't use the traditional TurboGears rendering
> engine. This means that all the attributes are hardcoded and this is
> particularly ugly when it comes to multi-valued attributes. We use the
> ExpandingForm widget to display things and this relies heavily on
> Javascript.
>
> The form uses a pluralized form of the attribute (telephonenumbers,
> mobiles, etc) to store the data visually for the user. This gets
> converted back into an LDAP attribute name in subcontrollers/user.py.
>
> Hope that isn't too scary.
>
> rob
>
> > Kind Regards,
> >
> > Mark Hannessen
> >
> > On Tuesday 16 June 2009 03:16:25 pm Rob Crittenden wrote:
> >> Mark Hannessen wrote:
> >>> Hi List,
> >>>
> >>>
> >>> I am currently deploying a freeipa installation for use in within our
> >>> company.
> >>> I have succesfully added a couple of custom attributes to the fedora
> >>> directory server and to the webinterface using ipacustomfields in
> >>> cn=ipaConfig,cn=etc
> >>>
> >>>
> >>> All attributes however appear in the interface as single valued
> >>> attributes.
> >>>
> >>>
> >>> Does anyone know if it is possible ( or hackable ) to present them as
> >>> multivalued attributes in the interface? ( all my custom attributes
> >>> happen to be multi valued, so a hack that would make them all appear
> >>> multi valued would be enough in my case as well )
> >>
> >> Unfortunately our support for UI customization is very weak right now
> >> (which is one reason we started from scratch again).
> >>
> >> It only supports single-valued custom attributes right now. To try to
> >> add in multi-valued attributes would require a fair bit of work.  In
> >> order to make the UI act the way we wanted we had to dump the TurboGears
> >> template system so it isn't as simple as adding in a new reference to a
> >> UI object. A bunch of custom code needs to be added, particularly for
> >> multi-valued fields.
> >>
> >> It isn't an impossible task but it would require a bit of coding on your
> >> end. I can try to point you in the right direction if you want to go
> >> that route (you'd just have to be careful about saving your work so an
> >> IPA update doesn't wipe it all out).
> >>
> >> rob




More information about the Freeipa-users mailing list