Hallo zusammen,
ich benutze folgendes Skript, um für den aktuellen User die Elemente eines Ordners aus dem Inhaltebereich automatisiert als Kopiervorlagen (Bookmarks) zu hinterlegen:
import de.espirit.firstspirit.access.BaseContext;
import de.espirit.firstspirit.access.UserService;
import de.espirit.firstspirit.access.store.IDProvider;
import de.espirit.firstspirit.access.store.IDProvider.UidType;
import de.espirit.firstspirit.access.store.Store;
import de.espirit.firstspirit.access.store.pagestore.Page;
import de.espirit.firstspirit.access.store.pagestore.PageStoreRoot;
import de.espirit.firstspirit.client.bookmark.BookmarkAgent;
import de.espirit.firstspirit.client.bookmark.BookmarkGroup;
import de.espirit.firstspirit.client.bookmark.IDProviderBookmark;
String uid = "copy_master";
UserService uss = context.getUserService();
final String CM = "CopyMaster";
PageStoreRoot psr = (PageStoreRoot) uss.getStore(Store.Type.PAGESTORE, true, false);
IDProvider folder = psr.getStoreElement(uid, UidType.PAGESTORE);
BookmarkAgent agent = context.requestSpecialist(BookmarkAgent.TYPE);
BookmarkGroup cmGroup = agent.getGroup(CM);
if (cmGroup == null) cmGroup = agent.createGroup(CM);
for (IDProvider cm : folder.getChildren(Page.class, true)) {
IDProviderBookmark bm = cmGroup.createBookmark(IDProviderBookmark.class);
bm.setElement(cm);
bm.setMaster(true);
cmGroup.adopt(bm);
}
cmGroup.save();
Ziel des Skriptes ist am Ende jedoch, dies für bestimmte User als Admin auszuführen (Bspw. möchte ich, dass alle User einer bestimmten Gruppe einen bestimmten Ordner als Kopiervorlage bekommen). GIbt es eine Möglichkeit das umzusetzen oder bin ich mit dem BookmarkAgent an den aktuell angemeldeten Benutzer gebunden?
(Eine neue Verbindung über Credentials aufbauen und entsprechend einen neuen Broker anfordern ist natürlich keine gangbare Option
)
Danke und Gruß
Felix
(FirstSpirit Version 5.0.424.59809)