nil_mon
Occasional Observer

GidAgent adaptGid in Skript

Jump to solution

Moin moin,

ich habe gerade ein Script in der Hand, mit dem Redakteure Metadaten von Dateien Ordnerweise bearbeiten können. Die Dateien des Ordners werden in eine Liste gesteckt und in eine temporäre Datenbank gespeichert.

Ich habe im Rahmen der Umstellung von FS-List auf FS-Index das Script bearbeiten müssen und muss deshalb über den GID-Agent den Einträgen eine GID zuweisen. Das tue ich über

gidAgent = context.requireSpecialist(GidAgent.TYPE);

gidAgent.adaptGid(mediumDatasource.getSchema(), Collections.singletonList(mediumEntity), true);

DataAccessSession<Dataset> dataAccessSession = mediumList.createSession(context);

String identifier = dataAccessSession.getIdentifier(mediumDatasource.getDataset(mediumEntity));

Index.Record record = mediumList.create(identifier );

mediumList.add(record);

Leider funktioniert das nur als Admin-Benutzer. Dem Redakteur wird eine Fehlermeldung geworfen:

SecurityException: Access not allowed ....

Gibt es eine Möglichkeit, hier als Redakteur eine GID zu erstellen? Bzw., im Rahmen der Ausführung des Skriptes eine Admin-Rolle anzunehmen?

Mit besten Grüßen
Nils Knudsen

1 Solution

Accepted Solutions
nil_mon
Occasional Observer

Konnte den Fehler lösen, indem ich ein .commit() nach der erzeugung der Entity auf der basierenden Session aufrufe. So brauche ich GidAgent nicht.

Aber was mich ggf. noch interessiert ist, ich kann eine Verbindung über den ConnectionManager aufbauen und mir dann requireSpecialist aufrufen. Hole ich mir hierüber den GidAgent, kriege ich nur null zurück.

Gibt es eine Möglichkeit sich den Agenten zu holen oder zu erstellen?

View solution in original post

0 Kudos
2 Replies
nil_mon
Occasional Observer

Konnte den Fehler lösen, indem ich ein .commit() nach der erzeugung der Entity auf der basierenden Session aufrufe. So brauche ich GidAgent nicht.

Aber was mich ggf. noch interessiert ist, ich kann eine Verbindung über den ConnectionManager aufbauen und mir dann requireSpecialist aufrufen. Hole ich mir hierüber den GidAgent, kriege ich nur null zurück.

Gibt es eine Möglichkeit sich den Agenten zu holen oder zu erstellen?

0 Kudos

Hallo Nils,

ich vermute das liegt in dem Fall daran, dass du keinen projektgebundenen broker nutzt - den musst du dir erst noch besorgen. Wie das geht siehst du z.B. hier:

Re: WorkflowAgent in Modul

Viele Grüße

Michael