Hallo,
ich versuche seit Stunden vergeblich gemäß
Anleitung: wiki.univention.de/index.php?tit … s_mit_Hook
Forum: Fragen zur UDM/UMC Programmierung
und Google einen Hook in 3.1 zu implementieren.
Ich erhalte einfach keine Ausgabe, die mich glauben lassen würde, dass der Hook geladen/gestartet wird, wenn ich das entsprechende Feld in der Web-GUI (de-)aktiviere.
Folgende Pfade habe ich bereits probiert:
hier mein UDM Eintrag:
[quote]DN: cn=extAttr-isSampleUser,cn=custom attributes,cn=univention,dc=ad,dc=in,dc=xplosion,dc=de
ARG: None
translationLongDescription: de_DE: Dieser Benutzer ist ein spezieller Beispielbenutzer
objectClass: univentionFreeAttributes
groupPosition: None
module: users/user
overwritePosition: None
hook: RemoveObjClassIfUnused
overwriteTab: None
translationTabName: de_DE: Beispielreiter
shortDescription: User is sample user
groupName: None
version: 2
valueRequired: None
CLIName: isSampleUser
translationShortDescription: de_DE: Benutzer ist ein Beispielbenutzer
fullWidth: None
longDescription: This user is a special sample user
doNotSearch: None
tabName: Sample tab
syntax: boolean
tabAdvanced: 0
name: extAttr-isSampleUser
default: 0
mayChange: 1
multivalue: 0
ldapMapping: univentionFreeAttribute1
deleteObjectClass: None
notEditable: 0
options: None
tabPosition: 1
disableUDMWeb: None
[/quote]
Die Datei hat “+x” und endet auf “.py”. Mein “Hook”:
from univention.admin.hook import simpleHook
class RemoveObjClassIfUnused(simpleHook):
type='RemoveObjClassIfUnused'
def hook_ldap_post_modify(self, module):
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO,'RemoveObjClassIfUnused: _ldap_post_modify called')
extattrname = 'isSampleUser'
classname = 'univentionFreeAttributes'
if module.oldinfo.get(extattrname) in ['1'] and module.info.get(extattrname) in ['0', None]:
if classname in module.oldattr.get('objectClass', []):
module.lo.modify(module.dn, [('objectClass', classname, '')])
def hook_open(self, module):
pass
def hook_ldap_pre_create(self, module):
pass
def hook_ldap_addlist(self, module, al=[]):
return al
def hook_ldap_post_create(self, module):
pass
def hook_ldap_pre_modify(self, module):
pass
def hook_ldap_modlist(self, module, ml=[]):
return ml
def hook_ldap_pre_remove(self, module):
pass
def hook_ldap_post_remove(self, module):
pass
Jemand einen Hinweis/Tipp?
Danke,
Fabian