felix_reinhold
Returning Responder

FS 5.0: Bookmarks per API für User hinzufügen

Jump to solution

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 Smiley Wink )

Danke und Gruß

Felix

(FirstSpirit Version 5.0.424.59809)

0 Kudos
1 Solution

Accepted Solutions

Eine Möglichkeit für andere Benutzer Bookmarks anzulegen gibt es nicht. Eventuell wird es in einer kommenden Version von FirstSpirit "globale Bookmarks" geben, aber darauf zu warten ist wohl keine Option Smiley Wink

Du kannst aber über ein JavaClientPermanentPlugin (und/oder WebeditPermanentPlugin) die Funktionalität selber implementieren.

Dafür brauchst du einen eigenen Storage für die Bookmarks (über einen Service oder eine geeignete Stelle im Projekt, z.B. eine Datei im Mediastore).

Im "setUp(..)" des Plugins kannst du dann die Bookmarks des aktuellen Benutzers damit abgleichen.

Peter

View solution in original post

0 Kudos
3 Replies
felix_reinhold
Returning Responder

Da wir das Problem wenn möglich zeitnah lösen müssen, erlaube ich mir mal, den Beitrag nochmal zu pushen 😉

Hat niemand eine Idee?

0 Kudos

Eine Möglichkeit für andere Benutzer Bookmarks anzulegen gibt es nicht. Eventuell wird es in einer kommenden Version von FirstSpirit "globale Bookmarks" geben, aber darauf zu warten ist wohl keine Option Smiley Wink

Du kannst aber über ein JavaClientPermanentPlugin (und/oder WebeditPermanentPlugin) die Funktionalität selber implementieren.

Dafür brauchst du einen eigenen Storage für die Bookmarks (über einen Service oder eine geeignete Stelle im Projekt, z.B. eine Datei im Mediastore).

Im "setUp(..)" des Plugins kannst du dann die Bookmarks des aktuellen Benutzers damit abgleichen.

Peter
0 Kudos

Hallo Peter,

danke für die Antwort, habe ich mir fast gedacht 🙂

Dann werde ihc mal schauen, ob sich eine eigene Implmentierung lohnt,

oder ob wir das organisatorisch lösen.

Besten Dank und Gruß

Felix

0 Kudos