Hallo,
Wir haben mehrere App-Pakete und einige Felder im LDAP und UDM.
Wir haben eine Routine “7i4ucs”, die Scripts wie das untenstehende zusammenstellt und ausführt.
#!/bin/sh
. /usr/share/univention-lib/all.sh
# user extended attributes
$(univention-config-registry shell)
univention-directory-manager settings/extended_attribute remove "$@" --dn "cn=iiiiiii4ucs-user-app-dokuwiki,cn=7i,cn=custom attributes,cn=univention,$ldap_base" >/dev/null
univention-directory-manager settings/extended_attribute remove "$@" --dn "cn=iiiiiii4ucs-user-app-phpmyfaq,cn=7i,cn=custom attributes,cn=univention,$ldap_base" >/dev/null
univention-directory-manager settings/extended_attribute remove "$@" --dn "cn=iiiiiii4ucs-user-app-redmine,cn=7i,cn=custom attributes,cn=univention,$ldap_base" >/dev/null
univention-directory-manager settings/extended_attribute remove "$@" --dn "cn=iiiiiii4ucs-user-app-svn,cn=7i,cn=custom attributes,cn=univention,$ldap_base" >/dev/null
univention-directory-manager settings/extended_attribute remove "$@" --dn "cn=iiiiiii4ucs-user-app-trac,cn=7i,cn=custom attributes,cn=univention,$ldap_base" >/dev/null
univention-directory-manager settings/extended_attribute remove "$@" --dn "cn=iiiiiii4ucs-user-app-wordpress,cn=7i,cn=custom attributes,cn=univention,$ldap_base" >/dev/null
ucs_addServiceToLocalhost "7i" "$@" > /dev/null
# UDM folder
univention-directory-manager container/cn create "$@" --ignore_exists \
--position "cn=custom attributes,cn=univention,$ldap_base" \
--set name="7i" \
--set description="Attributes for 7iApps configuration"
univention-directory-manager container/cn create "$@" --ignore_exists \
--position "$ldap_base" \
--set name="7i"
univention-directory-manager settings/extended_attribute create "$@" --ignore_exists \
--position "cn=7i,cn=custom attributes,cn=univention,$ldap_base" \
--set name="iiiiiii4ucs-user-type" \
--set objectClass="iiiiiii4ucs-user" \
--set module="users/user" \
--set ldapMapping="iiiiiii4ucs-user-type" \
--set shortDescription="Type (Warning: *None* will delete user data)" \
--set translationShortDescription='"de_DE" "Typ (Achtung: *None* löscht alle Benutzer-Daten)"' \
univention-directory-manager settings/extended_attribute modify \
--dn "cn=iiiiiii4ucs-user-type,cn=7i,cn=custom attributes,cn=univention,$ldap_base" \
--set tabName="7iApps" \
--set mayChange="1" \
--set syntax="iiiiiii4ucsUserType" \
--set hook="iiiiiii4ucsUserType" \
--set default="user" \
--set groupPosition="1" \
--set groupName="User type" \
--set translationGroupName='"de_DE" "Benutzer-Typ"' \
--set longDescription="Select the 7iApps role for this user. Warning: by changing the role to *None* all 7iApps-related user data will get deleted." \
--set translationLongDescription='"de_DE" "Wählt die 7iApps-Rolle für den Benutzer. Achtung: wenn Sie die Rolle *None* wählen, werden alle 7iApps-bezogene Benutzer-Daten gelöscht."' \
# etc/etc für weitere Felder.
univention-directory-manager settings/extended_attribute create "$@" --ignore_exists \
--position "cn=7i,cn=custom attributes,cn=univention,$ldap_base" \
--set name="iiiiiii4ucs-user-site-home" \
--set objectClass="iiiiiii4ucs-user" \
--set module="users/user" \
--set ldapMapping="iiiiiii4ucs-user-site-home" \
--set shortDescription="home" \
--set translationShortDescription='"de_DE" "home"' \
univention-directory-manager settings/extended_attribute modify \
--dn "cn=iiiiiii4ucs-user-site-home,cn=7i,cn=custom attributes,cn=univention,$ldap_base" \
--set tabName="7iApps" \
--set mayChange="1" \
--set syntax="boolean" \
--set default="1" \
--set groupPosition="3" \
--set groupName="Access to sites" \
--set translationGroupName='"de_DE" "Zugriff auf Sites"' \
--set longDescription="Has access to the site" \
--set translationLongDescription='"de_DE" "Kann auf die Site zugreifen"' \
stop_udm_cli_server
. /usr/share/univention-lib/umc.sh
umc_frontend_new_hash
Bei einer Installation eines neuen Paketes wird diese Routine im Postinst aufgerufen.
Dies funktioniert gut auf einem Master-Server und alle Settings/Felder werden korrekt angezeigt.
Leider funktioniert dies nicht auf einem Slave-Server. Irgendwie gibt es Probleme mit dem LDAP.
Frage: wie genau ist das Script zu modifizieren, so dass es auch auf einem Slave-Server funktioniert?
Besten Dank,
Michael Hofmann