Hallo,
Unsere Extended Attributes hängen davon ab, wieviele von unseren Paketen installiert sind und unser Join-script ist ziemlich lange:
#!/bin/sh
VERSION=5
. /usr/share/univention-join/joinscripthelper.lib
. /usr/share/univention-lib/all.sh
joinscript_init
# add service to my host object
ucs_addServiceToLocalhost "7i" "$@"
# user extended attributes
eval "$(univention-config-registry shell)"
# 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"
# user Type ---------------------------------------------------------------
univention-directory-manager settings/extended_attribute create "$@" --ignore_exists \
--position "cn=7i,cn=custom attributes,cn=univention,$ldap_base" \
--set objectClass="iiiiiii4ucs-user" \
--set module="users/user" \
--set tabName="7iApps" \
--set mayChange=1 \
\
--set ldapMapping="iiiiiii4ucs-user-type" \
--set name="iiiiiii4ucs-user-type" \
--set syntax="iiiiiii4ucsUserType" \
--set hook="iiiiiii4ucsUserType" \
--set default="none" \
\
--set shortDescription="Type (warning: *None* will delete user data)" \
--set translationShortDescription='"de_DE" "Typ (Achtung: *None* löscht alle Benutzer-Daten)"' \
--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."' \
# user Solutions ----------------------------------------------------------
# Wordpress
#univention-directory-manager settings/extended_attribute create "$@" --ignore_exists \
# --position "cn=7i,cn=custom attributes,cn=univention,$ldap_base" \
# --set objectClass="iiiiiii4ucs-user" \
# --set module="users/user" \
# --set tabName="7iApps" \
# --set mayChange=1 \
#\
# --set ldapMapping="iiiiiii4ucs-user-app-wordpress" \
# --set name="iiiiiii4ucs-user-app-wordpress" \
# --set syntax='boolean' \
#\
# --set shortDescription="Wordpress" \
# --set groupPosition="2" \
# --set groupName="Access to apps" \
# --set translationGroupName='"de_DE" "Zugriff auf Apps"' \
# --set longDescription="Has access to the app (if installed)" \
# --set translationLongDescription='"de_DE" "Kann auf die App zugreifen (wenn installiert)"' \
#
# Trac
#univention-directory-manager settings/extended_attribute create "$@" --ignore_exists \
# --position "cn=7i,cn=custom attributes,cn=univention,$ldap_base" \
# --set objectClass="iiiiiii4ucs-user" \
# --set module="users/user" \
# --set tabName="7iApps" \
# --set mayChange=1 \
#\
# --set ldapMapping="iiiiiii4ucs-user-app-trac" \
# --set name="iiiiiii4ucs-user-app-trac" \
# --set syntax='boolean' \
#\
# --set shortDescription="Trac" \
# --set groupPosition="2" \
# --set groupName="Access to apps" \
# --set translationGroupName='"de_DE" "Zugriff auf Apps"' \
# --set longDescription="Has access to the app (if installed)" \
# --set translationLongDescription='"de_DE" "Kann auf die App zugreifen (wenn installiert)"' \
#
# Svn
#univention-directory-manager settings/extended_attribute create "$@" --ignore_exists \
# --position "cn=7i,cn=custom attributes,cn=univention,$ldap_base" \
# --set objectClass="iiiiiii4ucs-user" \
# --set module="users/user" \
# --set tabName="7iApps" \
# --set mayChange=1 \
#\
# --set ldapMapping="iiiiiii4ucs-user-app-svn" \
# --set name="iiiiiii4ucs-user-app-svn" \
# --set syntax='boolean' \
#\
# --set shortDescription="SVN" \
# --set groupPosition="2" \
# --set groupName="Access to apps" \
# --set translationGroupName='"de_DE" "Zugriff auf Apps"' \
# --set longDescription="Has access to the app (if installed)" \
# --set translationLongDescription='"de_DE" "Kann auf die App zugreifen (wenn installiert)"' \
#
# Redmine
#univention-directory-manager settings/extended_attribute create "$@" --ignore_exists \
# --position "cn=7i,cn=custom attributes,cn=univention,$ldap_base" \
# --set objectClass="iiiiiii4ucs-user" \
# --set module="users/user" \
# --set tabName="7iApps" \
# --set mayChange=1 \
#\
# --set ldapMapping="iiiiiii4ucs-user-app-redmine" \
# --set name="iiiiiii4ucs-user-app-redmine" \
# --set syntax='boolean' \
#\
# --set shortDescription="Redmine" \
# --set groupPosition="2" \
# --set groupName="Access to apps" \
# --set translationGroupName='"de_DE" "Zugriff auf Apps"' \
# --set longDescription="Has access to the app (if installed)" \
# --set translationLongDescription='"de_DE" "Kann auf die App zugreifen (wenn installiert)"' \
#
# Phpmyfaq
#univention-directory-manager settings/extended_attribute create "$@" --ignore_exists \
# --position "cn=7i,cn=custom attributes,cn=univention,$ldap_base" \
# --set objectClass="iiiiiii4ucs-user" \
# --set module="users/user" \
# --set tabName="7iApps" \
# --set mayChange=1 \
#\
# --set ldapMapping="iiiiiii4ucs-user-app-phpmyfaq" \
# --set name="iiiiiii4ucs-user-app-phpmyfaq" \
# --set syntax='boolean' \
#\
# --set shortDescription="PhpMyFAQ" \
# --set groupPosition="2" \
# --set groupName="Access to apps" \
# --set translationGroupName='"de_DE" "Zugriff auf Apps"' \
# --set longDescription="Has access to the app (if installed)" \
# --set translationLongDescription='"de_DE" "Kann auf die App zugreifen (wenn installiert)"' \
#
# Dokuwiki
univention-directory-manager settings/extended_attribute create "$@" --ignore_exists \
--position "cn=7i,cn=custom attributes,cn=univention,$ldap_base" \
--set objectClass="iiiiiii4ucs-user" \
--set module="users/user" \
--set tabName="7iApps" \
--set mayChange=1 \
\
--set ldapMapping="iiiiiii4ucs-user-app-dokuwiki" \
--set name="iiiiiii4ucs-user-app-dokuwiki" \
--set syntax='boolean' \
\
--set shortDescription="Dokuwiki" \
--set groupPosition="2" \
--set groupName="Access to apps" \
--set translationGroupName='"de_DE" "Zugriff auf Apps"' \
--set longDescription="Has access to the app (if installed)" \
--set translationLongDescription='"de_DE" "Kann auf die App zugreifen (wenn installiert)"' \
# user Sites Other --------------------------------------------------------
# Sites
univention-directory-manager settings/extended_attribute create "$@" --ignore_exists \
--position "cn=7i,cn=custom attributes,cn=univention,$ldap_base" \
--set objectClass="iiiiiii4ucs-user" \
--set module="users/user" \
--set tabName="7iApps" \
--set mayChange=1 \
\
--set ldapMapping="iiiiiii4ucs-user-site-sites" \
--set name="iiiiiii4ucs-user-site-sites" \
--set syntax=string \
--set multivalue=1 \
\
--set shortDescription="sites" \
--set groupPosition="3" \
--set groupName="Access to other sites" \
--set translationGroupName='"de_DE" "Zugriff auf weitere Sites"' \
--set longDescription="Has access to the site" \
--set translationLongDescription='"de_DE" "Kann auf die Site zugreifen"' \
# user Sites Default ------------------------------------------------------
# Site Test
univention-directory-manager settings/extended_attribute create "$@" --ignore_exists \
--position "cn=7i,cn=custom attributes,cn=univention,$ldap_base" \
--set objectClass="iiiiiii4ucs-user" \
--set module="users/user" \
--set tabName="7iApps" \
--set mayChange=1 \
\
--set ldapMapping="iiiiiii4ucs-user-site-test" \
--set name="iiiiiii4ucs-user-site-test" \
--set syntax='boolean' \
--set default="1" \
\
--set shortDescription="test" \
--set groupPosition="3" \
--set groupName="Access to default sites" \
--set translationGroupName='"de_DE" "Zugriff auf Standard-Sites"' \
--set longDescription="Has access to the site 'test'" \
--set translationLongDescription='"de_DE" "Kann auf die Site zugreifen"' \
# Site Home
univention-directory-manager settings/extended_attribute create "$@" --ignore_exists \
--position "cn=7i,cn=custom attributes,cn=univention,$ldap_base" \
--set objectClass="iiiiiii4ucs-user" \
--set module="users/user" \
--set tabName="7iApps" \
--set mayChange=1 \
\
--set ldapMapping="iiiiiii4ucs-user-site-home" \
--set name="iiiiiii4ucs-user-site-home" \
--set syntax='boolean' \
\
--set shortDescription="home" \
--set groupPosition="3" \
--set groupName="Access to default sites" \
--set translationGroupName='"de_DE" "Zugriff auf Standard-Sites"' \
--set longDescription="Has access to the site" \
--set translationLongDescription='"de_DE" "Kann auf die Site zugreifen"' \
# restart UDM CLI server
stop_udm_cli_server
if [ $? != 0 ]; then exit 1; fi
joinscript_save_current_version
exit 0
Ich möchte einge generelle Routine schreiben, die jeweils im postinst aufgerufen wird und über alle installierten Pakete looped und die extende Attributes entsprechend setzt.
Anschliessend muss noch
. /usr/share/univention-lib/all.sh
stop_udm_cli_server
aufgerufen werden.
Das wäre für uns viel einfacher. Ist das so möglich?
Gruss,
Michael