MichaelN
I'm new here

externalName in externer Gruppe Ändern

Hallo,

ich erzeuge eine externe Gruppe mittels "createExternalGroup(String name,                        String externalName)".

Wie kann ich später externalName verändern ohne die Verwendugn von ExternalGroupImpl?

Das Interface Group, welches ich aus getGroups() erhalte hat keine Setter-Methode. Bin ich hier gezwungen

auf "instanceof ExternalGroupImpl" zurückzugreifen?

Nachtrag:

Ich habe jetzt externalName über ExternalGroupImpl geändert. Leider speichert er aber diese Änderung und auch z.B. eine Änderung der E-Mail-Adresse nicht. In Gruppen, die nicht extern sind speichert die Api die Änderungen korrekt!?

11 Replies
MichaelN
I'm new here

Kann hier schon jemand etwas zu sagen?

0 Kudos

Hallo Michael,

kannst du mal deinen Code posten? Laut Javadoc hat das Group-Interface einen Setter.

0 Kudos

Hallo Christoph,

Das Interface Group hat glaube ich nur eine Methode isExternal(), aber keinen Setter.

Hier mal mein Code-Schnipsel, der aber den externen Namen nicht ändert:

Group group = ...; // über project.getGroups()

try {

    project.lock();

    if (group != null) {

        if (group instanceof ExternalGroupImpl) {

            ((ExternalGroupImpl) group).setExternalName(externalName);

        } else {

            ...

        }

    } else {

        ...

    }

    project.save();

} finally {

    project.unlock();

}                                     

0 Kudos

Bitte mal den Link aus meinem vorherigen Beitrag öffnen und die Methoden durschauen. Ich sehe da einen Setter setName(String name).

0 Kudos

Das mag sein, ich möchte aber den external Name ändern. Name funktioniert ja auch Smiley Wink

0 Kudos

Ok, verstanden. Den externen Namen kann man über die API nicht ändern, wie sieht denn der Anwendungsfall dafür aus? Eventuell macht da ein Feature-Request Sinn.

0 Kudos

Ist das wirklich ein Feature-Request?

Ich importiere mittels der Api Gruppen und halt auch Externe Gruppen.

Existiert eine Gruppe schon, so wird diese nicht neu angelegt, sondern die entsprechenden Werte werden geändert (update).

Da ich ja mittels

project.createExternalGroup(groupName, externalName);

eine externe Gruppe anlegen kann, würde ich erwarten, dass ich hier auch den externalName ändern kann!?

Ein löschen und neu anlegen ist hier ja auch nicht machbar, da die Gruppe ja ggf. schon referenziert wird und/oder

Rechte, Seiten, Ihnalte etc. besitzt,

0 Kudos

Es ist ein Feature-Request, weil es über die aktuelle API nicht möglich ist. Die ExternalGroupImpl ist ja kein Teil der API.

Der externalName wird wie der eindeutige Identifier einer externen Gruppe betrachtet und ist nicht änderbar. Wie du schon sagtest, müsste man eine Gruppe unter dem neuen Namen anlegen und ggf. die Berechtigungen übertragen. Ich kenne mindestens ein Projekt, wo das auch so gemacht wurde.

0 Kudos

Der externalName wird wie der eindeutige Identifier einer externen Gruppe betrachtet und ist nicht änderbar.

Über "Server- und Projektkonfiguration" geht das aber auch! Ein einfacher Doppelklick ermöglicht das Ändern von externalName innerhalb einer externen Gruppe.

0 Kudos