Search the FirstSpirit Knowledge Base
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!?
Kann hier schon jemand etwas zu sagen?
Hallo Michael,
kannst du mal deinen Code posten? Laut Javadoc hat das Group-Interface einen Setter.
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();
}
Bitte mal den Link aus meinem vorherigen Beitrag öffnen und die Methoden durschauen. Ich sehe da einen Setter setName(String name).
Das mag sein, ich möchte aber den external Name ändern. Name funktioniert ja auch
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.
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,
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.
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.