W dniu 27.08.2015 o 15:18, Rob Crittenden pisze:
Mateusz Małek wrote:
We're trying to adjust FreeIPA to our environment... quite a bit. Here
are some bullet points:
(...)
3. Passwords need to be generated automatically, so user administrator
won't be required to invent them for every single user. It should appear
on-screen after user account creation.
The ability is there on the CLI (don't know if it is exposed in UI):
$ ipa user-add --first=random --last=user ruser --random
------------------
Added user "ruser"
------------------
User login: ruser
First name: random
...
Random password: Gu8VpULbb9xv
...
Yeah, I've already found it ;) It isn't exposed in Web UI, but it wasn't
extremely difficult to change these bits of code to send random: true
with user_add request and then display dialog box with randompassword
value sent in response (code is a bit ugly at the moment, as this is
fair bit of "copy-paste programming" - but it works).
I think the most problematic part of my struggles with adjusting IPA to
my environment is point 4 of my list - it is easy to remove that single
line responsible for creating default value of username, but I really
want to avoid troubles with upgrades and that's why I'm trying to patch
this in some "pluggable", update-friendly way. Is there any interface to
access definition of particular field from ipalib plugin code? At the
moment I'm monkey-patching user object like that:
from ipalib.plugins import user
def patch(params):
for param in params:
if param.name == 'uid': yield param.clone(default_from=None)
else: yield param
user.user.takes_params = tuple(patch(user.user.takes_params))
It works, but is there any better (or more appropriate) way to replace
one specific parameter definition?
Best regards
Mateusz Małek
--
Manage your subscription for the Freeipa-users mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-users
Go to http://freeipa.org for more info on the project