Probleme bei Gruppenausschluß in Workflows
Author: sarahfinkel
Publication Date: 7/16/2015 8:05
Liebe Community,
bei unserem Workflow "Freigabe anfordern" haben wir folgende Anforderung.
Wird eine Freigabe angefordert, so soll die E-Mail nur an die zugehörigen Chefredakteure, die das Recht "Freigabe" auf dem entsprechenden Element besitzen, gesendet werden.
Dies wurde gelöst, indem die E-Mail an den "Bearbeiter" gesendet wird, da für die folgende Tranistion zum Prüfen der Freigabeanforderung das benötigte Recht "Freigabe" am Zielobjekt gesetzt ist.
Allerdins ist es nun so, dass die Gruppe "Administrators" auf alle Elemente das Freigabe-Recht besitzt und deswegen bei einer Freigabeanforderung auch immer die entsprechenden E-Mail bekommt. Die E-Mail soll aber nur an die zugehörigen Chefredakteure gehen, die Administratoren sollen aber das Recht auf Freigabe behalten.
Wir haben versucht dies über den Gruppenausschluß der Transition zu lösen:

Leider wird die E-Mail trotzdem noch an die Administrators-Gruppe gesendet (die Gruppe wird ebenfalls noch als nächster Bearbeiter im Arbeitsablauf angezeigt).
Geht die Anforderung überhaupt über den Gruppenausschluß? Geht diese Anforderung überhaupt? :smileywink:
Über Eure Hilfe würde ich mich sehr freuen!
Herzliche Grüße
Sarah Münich
-
Author: rednoss - 8/11/2015 9:21
Hallo Sarah,
Du kannst Dein Anwendungsfall mit einem zwischengeschalteten Skript lösen. Du ermittelst alle in Deinem Projekt existierenden Gruppen und prüfst mit Hilfe der getPermission(Group group) Methode welche Gruppen auf Deinem freizugebenden Element das Recht 'CAN_RELEASE' haben. Anschließend sendest du den Gruppenmitgliedern eine E-Mail. Das könnte dann in etwa wie folgt aussehen:
//!Beanshell
import de.espirit.firstspirit.access.Connection;
import de.espirit.firstspirit.access.project.Project;
import de.espirit.firstspirit.access.project.Group;
import de.espirit.firstspirit.access.store.Permission;
element = context.getElement();
connection = context.getConnection();
project = connection.getProjectById(11);
groups = project.getGroups();
for(Group group : groups) {
if (element.getPermission(group).canRelease()) {
context.logInfo(group.getName() + " canRelease = true");
}
}
// TODO E-Mail
EDIT: Die Gruppe Administrator solltest Du dann natürlich ausschließen. :smileyhappy:
Viele Grüße
Rene
0
Vous devez vous connecter pour laisser un commentaire.
Commentaires
1 commentaire