Anlegen eines Extended Attributes

german
integration

#1

Guten Tag,

ich versuche im Moment verzweifelt ein Extended Atrribute für Gruppen und Benutzer anzulegen. Was scheinbar funktioniert, ist das hinzufügen den Schema in das LDAP. (Genau weiß es aber nicht habe aber folgende Methoden probiert : ucs_registerLDAPSchema & ucs_registerLDAPExtension). Allerdings bekomme ich bei dem eigentlichen anlegen des Attributes folgenden Fehler: [quote]LDAP Error: No such object[/quote]. Alles benötigten Dateien habe ich unten angehängt.

Ich hoffe jemand sieht den Fehler den ich gemacht habe…

Schema:

objectIdentifier edyou 1.3.6.1.4.1.10176.99998.18452
objectIdentifier edyouUdm edyou:1
objectIdentifier edyouUdmAttributeType edyouUdm:1
objectIdentifier edyouUdmObjectClass edyouUdm:2

attributetype ( edyouUdmAttributeType:1
	NAME 'edyouLoginAllowed'
	DESC 'EDYOU: User could Login to EDYOU.eu'
	EQUALITY integerMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
	SINGLE-VALUE )

attributetype ( edyouUdmAttributeType:2
	NAME 'edyouGroupSync'
	DESC 'EDYOU: User will be synced to EDYOU'
	EQUALITY integerMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
	SINGLE-VALUE )

objectclass	( edyouUdmObjectClass:1
	NAME 'edyouSettings'
	DESC 'EDYOU: All EDYOU Settings'
	SUP top AUXILIARY
	MUST ( cn )
	MAY (
		edyouGroupSync $ edyouLoginAllowed
		)
	)

Postinst:

. /usr/share/univention-lib/base.sh
. /usr/share/univention-lib/ldap.sh

ucs_registerLDAPSchema edyou.schema
#ucs_registerLDAPExtension --schema=edyou.schema

call_joinscript udm-ea.sh

UDM-EA:

. /usr/share/univention-join/joinscripthelper.lib
. /usr/share/univention-lib/all.sh
joinscript_init

eval "$(univention-config-registry shell)"

# groups

univention-directory-manager settings/extended_attribute create "$@" --ignore_exists \
	--position "cn=edyou,cn=custom attributes,cn=univention,$ldap_base" \
	--set name="edyou-sync-group" \
	--set module=groups/group \
	--set tabName="EDYOU" \
	--set tabPosition=1 \
	--set shortDescription="Should the Group synchronised" \
	--set longDescription="Should this Group be synchronised to EDYOU" \
	--set translationShortDescription='"de_DE" "Gruppe synchronisieren zu EDYOU"' \
	--set translationLongDescription='"de_DE" "Gruppe synchronisieren zu EDYOU"' \
	--set syntax=boolean \
	--set mayChange=1 \
  --set objectClass=edyouGroup \
	--set ldapMapping=edyouGroupSync \
	--set multivalue=0 \
	--set default=FALSE

# users

univention-directory-manager settings/extended_attribute create "$@" --ignore_exists \
	--position "cn=edyou,cn=custom attributes,cn=univention,$ldap_base" \
	--set name="edyou-login" \
	--set module=users/user \
	--set tabName="EDYOU" \
	--set shortDescription="User can login to EDYOU" \
	--set longDescription="Give the user the ability to login to EDYOU.eu" \
	--set translationShortDescription='"de_DE" "Benutzeranmeldung an EDYOU.eu"' \
	--set translationLongDescription='"de_DE" "Ermöglicht dem Nutzer die Anmeldung "' \
	--set syntax=boolean \
	--set mayChange=1 \
	--set objectClass=edyouSettings \
	--set ldapMapping=edyouLoginAllowed \
	--set multivalue=0 \
	--set tabPosition=1 \
	--set default="0"


# restart UDM CLI server
stop_udm_cli_server

joinscript_save_current_version

#2

Hallo

[quote=“jk@edyou”]
UDM-EA:

... univention-directory-manager settings/extended_attribute create "$@" --ignore_exists \ --position "cn=edyou,cn=custom attributes,cn=univention,$ldap_base" \ ... [/quote]

Sie geben beim Anlegen des Extended Attributes die Position für das Attribut im LDAP an (–position), aber der entsprechende Container (edyou) existiert nicht und muss vorher ebenfalls angelegt werden:

[code]# create edyou container
univention-directory-manager container/cn create “$@” --ignore_exists
–set name=“edyou”
–position “cn=custom attributes,cn=univention,$ldap_base”

create extended attributes

…[/code]

Wenn möglich sollten sie auch “ucs_registerLDAPExtension --schema=/usr/share/edyou/edyou.schema” im Join-Skript verwenden ( und nicht “ucs_registerLDAPSchema” im postinst).

Bei der Definition des ext. Attribute für Gruppen wird als Objectclass noch “edyouGroup” verwendet, wahrscheinlich sollte hier “edyouSettings” stehen.

Mit freundlichen Grüßen
Felix Botner