[Freeipa-users] user-custom script

Sigbjorn Lie sigbjorn at nixtra.com
Mon May 27 10:50:19 UTC 2013


Hi,

A while back I got some help writing a python script who extends the user classes in ipalib to run
a custom command when a user is added/modified/deleted. This has been working perfectly in our
production environment for a few years now, until I upgraded to IPA 3.0 last week. The custom
script is no longer executed.

Did the libraries change since 2.2?


The script sits in /usr/lib/python2.6/site-packages/ipalib/plugins/user-custom.py and looks like:


#
# Extension to provide user-customizable script when a user id added/modified/deleted
#

from ipapython import ipautil

# Extend add

from ipalib.plugins.user import user_add

def script_post_add_callback(inst, ldap, dn, attrs_list, *keys, **options):
     inst.log.info('User added')
     if 'ipa_user_script' in inst.api.env:
         try:
             ipautil.run([inst.api.env.ipa_user_script,"add", dn])
         except:
              pass

     return dn

user_add.register_post_callback(script_post_add_callback)


# Extend delete

from ipalib.plugins.user import user_del

def script_post_del_callback(inst, ldap, dn, attrs_list, *keys, **options):
     inst.log.info('User deleted')
     if 'ipa_user_script' in inst.api.env:
         try:
             ipautil.run([inst.api.env.ipa_user_script,"del", dn])
         except:
              pass

     return dn

user_del.register_post_callback(script_post_del_callback)


# Extend modify

from ipalib.plugins.user import user_mod

def script_post_mod_callback(inst, ldap, dn, attrs_list, *keys, **options):
     inst.log.info('User modified')
     if 'ipa_user_script' in inst.api.env:
         try:
             ipautil.run([inst.api.env.ipa_user_script,"mod", dn])
         except:
              pass

     return dn

user_mod.register_post_callback(script_post_mod_callback)





More information about the Freeipa-users mailing list